企业级日志分析系统ELK(如果事与愿违那一定另有安排)(三)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 企业级日志分析系统ELK(如果事与愿违那一定另有安排)(三)

5.3 Logstash 部署


Logstash 一般部署在需要监控其日志的服务器。在本案例中,Logstash 部署在 Apache 服务器上,用于收集 Apache 服务器的日志信息并发送到 Elasticsearch。


5.3.1 安装Apahce服务

hostnamectl set-hostname apache
su
yum -y install httpd
systemctl start httpd




5.3.2 安装Java环境

yum -y install java
java -version


5.3.3 安装logstash

#上传软件包 logstash-5.5.1.rpm 到/opt目录下
cd /opt
rpm -ivh logstash-5.5.1.rpm                           
systemctl start logstash.service                      
systemctl enable logstash.service
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/


5.3.4测试 Logstash

Logstash 命令常用选项:

选项

说明

-f

通过这个选项可以指定 Logstash 的配置文件,根据配置文件配置 Logstash 的输入和输出流。

-t

测试配置文件是否正确,然后退出。

-e

从命令行中获取,输入、输出后面跟着字符串,该字符串可以被当作 Logstash 的配置(如果是空,则默认使用 stdin 作为输入,stdout 作为输出)。

5.3.4.1定义输入和输出流

#输入采用标准输入,输出采用标准输出(类似管道)
logstash -e 'input { stdin{} } output { stdout{} }'
......
www.baidu.com   #键入内容(标准输入)
#输出结果(标准输出)
{    
          "host" => "apache",
       "message" => "www.baiduwww.baidu.com",
      "@version" => "1",
    "@timestamp" => 2022-07-03T12:39:45.980Z
}
www.sina.com.cn   #键入内容(标准输入)
#输出结果(标准输出)
{
          "host" => "apache",
       "message" => "www.sina.com.cn",
      "@version" => "1",
    "@timestamp" => 2022-07-03T12:40:05.494Z
//执行 ctrl+c 退出


#使用 rubydebug 输出详细格式显示,codec 为一种编解码器
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
......
www.baidu.com          #键入内容(标准输入)
{
      "@version" => "1",     #输出结果(处理后的结果)
          "host" => "apache",
       "message" => "www.baidu.com",
    "@timestamp" => 2022-07-03T12:44:24.176Z
}


#使用 Logstash 将信息写入 Elasticsearch 中
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.109.135:9200"] } }'
    输入    输出    对接
......
www.baidu.com          #键入内容(标准输入)
www.sina.com.cn          #键入内容(标准输入)
www.google.com          #键入内容(标准输入)


结果不在标准输出显示,而是发送至 Elasticsearch 中,可浏览器访问 http://192.168.109.135:9100/ 查看索引信息和数据浏览。


5.3.4.2 定义 logstash配置文件

Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)。

                                                           说明 

input 表示从数据源采集数据,常见的数据源如Kafka、日志文件等
filter 表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式
output 表示将Logstash收集的数据经由过滤器处理之后输出到Elasticsearch。
#格式如下:
input {...}
filter {...}
output {...}
#在每个部分中,也可以指定多个访问方式。例如,若要指定两个日志来源文件,则格式如下:
input {
  file { path =>"/var/log/messages" type =>"syslog"}
  file { path =>"/var/log/httpd/access.log" type =>"apache"}
}


#修改 Logstash 配置文件,让其收集系统日志/var/log/messages,并将其输出到 elasticsearch 中。
chmod +r /var/log/messages      #让 Logstash 可以读取日志
vim /etc/logstash/conf.d/system.conf
input {
    file{
        path =>"/var/log/messages"      #指定要收集的日志的位置
        type =>"system"         #自定义日志类型标识
        start_position =>"beginning"      #表示从开始处收集
    }
}
output {
    elasticsearch {          #输出到 elasticsearch
        hosts => ["192.168.109.135:9200","192.168.109.137:9200"]  #指定 elasticsearch 服务器的地址和端口
        index =>"system-%{+YYYY.MM.dd}"     #指定输出到 elasticsearch 的索引格式
    }
}
systemctl restart logstash


浏览器访问 http://192.168.109.135:9100/ 查看索引信息



5.4 Kiabana 部署


5.4.1 安装 Kiabana

#上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录
cd /opt
rpm -ivh kibana-6.7.2-x86_64.rpm


5.4.2 设置 Kibana 的主配置文件

vim /etc/kibana/kibana.yml
--2--取消注释,Kiabana 服务的默认监听端口为5601
server.port: 5601
--7--取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"
--28--取消注释,配置es服务器的ip,如果是集群则配置该集群中master节点的ip
elasticsearch.url:  "http://192.168.109.135:9200","http://192.168.109.137:9200"
--30--取消注释,设置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"
--86--取消注释,配置kibana的日志文件路径(需手动创建),不然默认是messages里记录日志
logging.dest: /var/log/kibana.log



5.4.3 创建日志文件,启动 Kibana 服务

touch /var/log/kibana.log
chown kibana:kibana /var/log/kibana.log
systemctl start kibana.service
systemctl enable kibana.service
netstat -natp | grep 5601


第一次登录需要添加一个 Elasticsearch 索引:
Index name or pattern
//输入:system-*   #在索引名中输入之前配置的 Output 前缀“system”
单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
数据展示可以分类显示,在“Available Fields”中的“host”,然后单击 “add”按钮,可以看到按照“host”筛选后的结果

将 Apache 服务器的日志(访问的、错误的)添加到 Elasticsearch 并通过 Kibana 显示

vim /etc/logstash/conf.d/apache_log.conf
input {
    file{
    #指定真确目录位置
        path => "/etc/httpd/logs/access_log"  
        type => "access"
        start_position => "beginning"
    }
    file{
    #指定错误日志目录
        path => "/etc/httpd/logs/error_log"   
        type => "error"
        start_position => "beginning"
    }
}
output {
    if [type] == "access" {
        elasticsearch {
            hosts => ["192.168.109.135:9200","192.168.109.137:9200"]
            index => "apache_access-%{+YYYY.MM.dd}"
        }
    }
        if [type] == "error" {
        elasticsearch {
            hosts => ["192.168.109.135:9200","192.168.109.137:9200"]
            index => "apache_error-%{+YYYY.MM.dd}"
        }
    }
}
cd /etc/logstash/conf.d/
/usr/share/logstash/bin/logstash -f apache_log.conf



浏览器访问 http://192.168.109.135:9100 查看索引是否创建



浏览器访问 http://192.168.109.138:5601 登录 Kibana


单击“Index Pattern -> Create Index Pattern”按钮添加索引, 在索引名中输入之前配置的 Output 前缀 apache_access-*,并单击“Create”按钮。在用相同的方法添加 apache_error-*索引。
选择“Discover”选项卡,在中间下拉列表中选择刚添加的 apache_access-* 、apache_error-* 索引, 可以查看相应的图表及日志信息。



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
9天前
|
Windows Python
如何反向读取Windows系统日志EVTX文件?
以下是如何反向读取Windows系统日志EVTX文件
21 2
|
18天前
|
存储 监控 安全
|
15天前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
16 2
|
27天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
48 1
|
1月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
46 3
|
1月前
|
监控 应用服务中间件 网络安全
#637481#基于django和neo4j的日志分析系统
#637481#基于django和neo4j的日志分析系统
35 4
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
55 0
|
2月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
3月前
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志
|
3月前
|
运维 监控 Ubuntu
一键启动日志魔法:揭秘ELK自动安装脚本的神秘面纱!
【8月更文挑战第9天】在数据驱动时代,高效处理日志至关重要。ELK Stack(Elasticsearch、Logstash、Kibana)是强大的日志分析工具,但其复杂的安装配置常让初学者望而却步。本文介绍如何编写ELK自动安装脚本,简化部署流程。脚本适用于Ubuntu系统,自动完成ELK下载、安装及基本配置,包括依赖项安装、服务启动及自启设置,极大降低了使用门槛,助力运维人员和开发者轻松构建日志分析平台。
155 6