一、安装
1、前置条件
在安装logstash之前,需要先安装Java,因为logstash是基于Java开发的,对于Java的版本要求比较宽松,建议使用Java 8。
sudo apt-get update sudo apt-get install openjdk-8-jdk
2、安装logstash
Logstash的安装使用apt-get即可。步骤如下:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - sudo apt-get install apt-transport-https echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list sudo apt-get update sudo apt-get install logstash
二、配置
1、Logstash配置文件结构
Logstash的配置文件采用YAML格式,一个配置文件通常包含三个部分:
- 输入input:指定数据来源
- 过滤filter:对来源数据进行处理
- 输出output:最终数据输出
在配置文件中用“{}”表示一项配置,例如:
input { stdin {} }
上述代码表示从标准输入读取数据。
2、输入设置
logstash的输入支持多种方式,包括:
- file:从文件中读取数据,可以是原始文件或者是经过压缩文件
- stdin:从标准输入读取数据
- syslog:从syslog服务器读取数据
- http:从HTTP接口读取数据
以读取文件为例,设置方法如下:
input { file { path => "/var/log/syslog" # 读取文件路径 start_position => "beginning" # 从文件头部开始读取数据 } }
3、过滤设置
Logstash的过滤插件可以处理输入数据,并将其转化为可供输出使用的格式。常见过滤插件包括:
- grok:根据正则表达式将输入数据解析为结构化数据
- metrics:收集各种指标并输出
- dns:解析域名
以发现syslog输入中错误信息为例,设置方法如下:
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOG5424SD} %{GREEDYDATA:message}" } } if "error" in [message] { # 从日志中发现错误信息 mutate { add_tag => ["syslog_error"] } } } }
4、输出设置
Logstash的输出插件可以将处理后的数据输出到不同的目的地,常见插件包括:
- stdout:输出至标准输出
- file:将数据写入本地文件系统
- kafka:将数据写入kafka消息队列
- redis:将数据写入redis key-value数据库
以输出到Elasticsearch索引为例,设置方法如下:
output { elasticsearch { hosts => ["localhost:9200"] # Elasticsearch服务器地址 index => "syslog-%{+YYYY.MM.dd}" # 索引格式 } }
三、运行logstash
完成了配置文件的编写,可以启动logstash进行处理,执行如下命令:
sudo /etc/init.d/logstash start # 启动 sudo /etc/init.d/logstash stop # 停止 sudo /etc/init.d/logstash status # 查看状态