开源日志分析系统建设(三)
字数 1006 2025-08-18 11:37:27
Logstash日志分析系统详细教程
一、Logstash简介
Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数据,然后将数据发送到存储库中。它是ELK(Elasticsearch、Logstash、Kibana)技术栈中的重要组成部分。
主要功能组件:
- Input:从数据源采集数据
- Filter:修订/格式化处理选择的数据(可选)
- Output:输出数据到其他软件
二、安装Logstash
1. 前置条件
- 需要先安装JDK(Java Development Kit)
2. 安装方式
在线安装
# 基于YUM的系统
yum -y install logstash
# 基于APT的系统
apt-get install logstash
离线安装(以Ubuntu为例)
dpkg -i logstash.deb
三、运行测试
1. 基本测试
测试Logstash是否正常运行:
/usr/share/logstash/bin/logstash -e 'input{stdin{}}output{stdout{}}'
输入"hello world"后,预期输出:
{
"@timestamp" => 2018-07-24T07:18:14.165Z,
"message" => "hello world",
"host" => "ubuntu",
"@version" => "1"
}
说明:
-e:通过命令行实现Logstash配置ctrl+D:终止任务
2. 解析日志文件
准备工作
-
下载测试日志样本:
https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz -
安装配置Filebeat
修改filebeat.yml配置文件:
filebeat.prospectors:
- type: log
paths:
- /path/to/file/logstash-tutorial-dataset
output.logstash:
hosts: ["192.168.18.130:9200"]
启动Filebeat:
Filebeat -e -c filebeat.yml -d "publish"
配置Logstash管道
创建first-pipeline.conf配置文件:
input {
beats {
port => "9200"
}
}
filter {
}
output {
stdout {
codec => rubydebug
}
}
验证配置文件:
/usr/share/logstash/bin/logstash -f first-pipeline.conf --config.test_and_exit
成功验证后运行:
/usr/share/logstash/bin/logstash -f first-pipeline.conf --config.reload.automatic
说明:--config.reload.automatic表示动态加载配置文件而无需重启
四、使用Grok插件处理日志
1. Grok基础
Grok可以将非结构化日志数据解析为结构化格式。例如解析Apache访问日志:
示例日志:
83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
配置示例:
input {
beats {
port => "5044"
}
}
filter {
grok {
match => {"message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
output {
elasticsearch {
hosts => ["192.168.18.130:9200"]
}
}
2. 调试Grok模式
使用Kibana中的Grok Debugger工具(位于Dev Tools中)来测试和调试Grok模式。
3. 清除Filebeat状态
如果需要重新处理日志文件:
rm -rf /var/lib/filebeat/registry
# 如果找不到,使用find命令查找
然后重新启动Filebeat:
filebeat -e -c filebeat.yml -d "publish"
五、查看和分析结果
- 在Kibana中创建索引模式
- 在"Discover"页面查看格式化后的日志
- 在"Visualize"页面创建可视化图表
六、高级功能
Logstash支持自定义插件开发,可以扩展其功能以满足特定需求。
七、总结
本教程详细介绍了:
- Logstash的基本概念和架构
- 安装和基本配置方法
- 与Filebeat的集成
- 使用Grok插件解析非结构化日志
- 结果查看和分析方法
Logstash作为ELK技术栈中的数据收集和处理核心,提供了强大的日志处理能力,通过灵活的插件系统可以满足各种日志分析需求。