关闭步骤
关闭一个正在运行的 logstash 包含以下三步
- 停止所有的 input, filter 和 output 插件
- 完成所有的正在处理的事件
- 停止 Logstash 进程
使用 --allow-unsafe-shutdown
开启 Logstash 可以在中途强制关闭 Logstash ,会丢失数据
详细可以参考 Stalled Shutdown Detection
流水线模型
当前的 Logstash 是这样的处理模型
代码语言:javascript复制input threads | filter worker threads | output worker
Filter 是可选项,如果没关于 Filter 的定义 ,就是如下模型
代码语言:javascript复制input threads | output worker
处理系统日志
可以在配置中加入判断与处理逻辑
代码语言:javascript复制[root@h102 etc]# vim logstash-syslog.conf
[root@h102 etc]# cat logstash-syslog.conf
input {
tcp {
port => 5000
type => syslog
}
udp {
port => 5000
type => syslog
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:[%{POSINT:syslog_pid}])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}
[root@h102 etc]# /opt/logstash/bin/logstash -f logstash-syslog.conf -t
Configuration OK
[root@h102 etc]#