一、安装
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 # 查看状态