Logstash 基础8

2022-02-10 20:33:31 浏览数 (2)

关闭步骤

关闭一个正在运行的 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]#

0 人点赞