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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 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日志并进行多维度分析。
目录
相关文章
|
2月前
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
243 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
29 0
|
3月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
3月前
|
消息中间件 数据可视化 关系型数据库
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
152 0
|
9天前
|
JavaScript Java 测试技术
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
32 3
|
17天前
|
消息中间件 存储 运维
更优性能与性价比,从自建 ELK 迁移到 SLS 开始
本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。
54834 136
|
26天前
|
C++
QT实现一个简单的日志打印系统
QT实现一个简单的日志打印系统
|
1月前
|
存储 SQL Serverless
Serverless 应用引擎常见问题之应用下的【应用事件】以及企业级特性下的【事件中心】没有日志如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
34 0
|
2月前
|
存储 监控 关系型数据库
ELK架构监控MySQL慢日志
ELK架构监控MySQL慢日志
|
2月前
|
调度 数据库 数据安全/隐私保护
ABAP 系统里使用事务码 SM21 查看系统日志的技巧介绍
ABAP 系统里使用事务码 SM21 查看系统日志的技巧介绍
48 0