系统架构:
1、 logstash 安装
安装目录: /home/service
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.13.4-linux-x86_64.tar.gz
tar zvxf logstash-7.13.4-linux-x86_64.tar.gz
ln -sf logstash-7.13.4 logstash
mkdir /home/service/logstash/monitor
修改配置:
vim config/logstash.yml ,开放几个配置:
pipeline.workers: 2
pipeline.batch.size: 125
pipeline.batch.delay: 50
创建 monitor/monitor.conf ,内容例如:
input {
beats {
port => "5044"
type => "logstash_error_log"
}
}
filter {
if [message] !~ /.*\sERROR\s.*/ {
drop {}
}
}
output {
if [fields][service] == "error_log"{
#stdout { codec => rubydebug }
if [type] == "logstash_error_log" {
kafka {
bootstrap_servers => "kafka-ip:9092"
topic_id => "logstash_error_log"
batch_size => 1
codec => "json"
}
}
}
}
- filter 正则匹配: \sERROR\s
filter {
if [message] !~ /.*\sERROR\s.*/ {
drop {}
}
}
启动,使用Supersivor管理进程
/home/service/logstash/bin/logstash -f /home/service/logstash/monitor/monitor.conf --config.reload.automatic
--config.reload.automatic 参数是热加载 -f 配置文件。
2、安装filebeat
安装机器:需要监控日志的机器
安装目录: /home/service
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.4-linux-x86_64.tar.gz
tar zvxf filebeat-7.13.4-linux-x86_64.tar.gz
ln -sf filebeat-7.13.4-linux-x86_64 filebeat
修改 /home/service/filebeat/filebeat.yml 配置
- type: log # 都设置为log,不能随意修改类型,否则filebeat启动会报错。
enabled: true
paths:
- /data/service/xx/logs/*.log # 需要监控的日志路径
# 不以 yyyy-mm-dd 开头的,自动跟前一行合并
multiline.type: pattern
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
fields.service: error_log # 日志类型名。在flink程序中用此字段标记发送的警告类型,以及使用的alert template名。
tags: ["ip"] # 配置所在机器的ip地址。
# ------------------------------ Logstash Output -------------------------------
output.logstash:
# Logstash安装地址以及端口号
hosts: ["ip:5044"]
启动,使用Supervisor管理进程
/home/service/filebeat/filebeat -e --path.config /home/service/filebeat/
tips: filebeat 读取监控的文件时,会记录offset,测试的时候,若想重复读取文件,只需要删除记录即可: rm -rf /home/service/filebeat/data/registry/*