LogStash plugins-inputs-file介绍(三)

官方文档 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html

重要参数:

  • path # 文件路径
  • sincedb_path # 隐藏文件,记录读取文件的位置,默认在启动用户的目录下,如root用户在/root下
  • start_position # 默认从文件尾开始读取记录,可以设置从文件头开始读取,类似tail -f
  • type # 类型,可以通过if进行判断

一.logstash配置文件使用

通过yum安装默认路径/etc/logstash/conf.d,配置文件存放路径

1.1 编写demo.conf文件,通过配置文件实现标准输入、两个输出:标准输出插件和elasticsearch插件

vim /etc/logstash/conf.d/demo.conf
input{
   stdin{}
}
 
filter{
}
 
output{
    elasticsearch {
        hosts => ["10.0.0.22:9200"]
        index => "logstash-%{+YYYY.MM.dd}"
    }
    stdout{
        codec => rubydebug
    }
}

 备注:配置文件中#表示注释。 

启动配置文件

[root@saltstack02 ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/demo.conf

2.2  使用logstash配置文件收集messages日志

[root@linux-node1 ~]# vim /etc/logstash/conf.d/system.conf
input {
  file {
    path => "/var/log/messages"     #日志路径
    type => "systemlog"                 #类型
    start_position => "beginning"    #logstash 从什么位置开始读取文件数据,默认是结束位置,也就是说 logstash 进程会以类似 tail -F 的形式运行。如果你是要导入原有数据,把这个设定改成"beginning",logstash 进程就从头开始读取,类似 less +F 的形式运行。
    stat_interval => "2"             #logstash 每隔多久检查一次被监听文件状态(是否有更新) ,默认是 1 秒。
  }
}
output {
  elasticsearch {
    hosts => ["10.0.0.22:9200"]      #指定hosts
    index => "logstash-systemlog-%{+YYYY.MM.dd}"    #索引名称
  }

}
  
[root@saltstack02 ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/system.conf -t #检测配置文件是否有语法错误
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults
Could not find log4j2 configuration at path /usr/share/logstash/config/log4j2.properties. Using default config which logs errors to the console
Configuration OK

1.3修改日志的权限,防止报错

[root@linux-node1 ~]# ll /var/log/messages 
-rw-------. 1 root root 791209 12月 27 11:43 /var/log/messages
#这里可以看到该日志文件是600权限,而elasticsearch是运行在elasticsearch用户下,这样elasticsearch是无法收集日志的。所以这里需要更改日志的权限,否则会报权限拒绝的错误。在日志中查看/var/log/logstash/logstash-plain.log 是否有错误。
[root@linux-node1 ~]# chmod 644 /var/log/messages 
[root@linux-node1 ~]# systemctl restart logstash

 1.4 执行

[root@saltstack02 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/system.conf 

 

posted @ 2018-06-20 18:15  jimmy_xuli  阅读(420)  评论(0编辑  收藏  举报