加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.com/)- 应用安全、运维、云计算、5G、云通信!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

ELK收集日志之logstash使用

发布时间:2022-08-09 10:29:47 所属栏目:Linux 来源:互联网
导读:一、logstash使用 1.logstah收集文件日志 不难理解,我们的日志通常都是在日志文件中存储的,所以,当我们在使用INPUT插件时,收集日志,需要使用file模块,从文件中读取日志的内容,那么接下来讲解的是,将日志内容输出到另一个文件中,如此一来,我们可以
  一、logstash使用
  1.logstah收集文件日志
  不难理解,我们的日志通常都是在日志文件中存储的,所以,当我们在使用INPUT插件时,收集日志,需要使用file模块,从文件中读取日志的内容,那么接下来讲解的是,将日志内容输出到另一个文件中,如此一来,我们可以将日志文件统一目录,方便查找。
 
  注意:Logstash与其他服务不同,收集日志的配置文件需要我们根据实际情况自己去写。
  前提:需要Logstash对被收集的日志文件有读的,并且对要写入的文件,有写入的权限。
  2.配置logstash
  #默认配置文件
  [root@logstash ~]# vim /etc/logstash/logstash.yml
  #启动logstash回去读取conf.d下面的配置文件
  path.config: /etc/logstash/conf.d
  3.配置logstash收集文件日志到文件
  1)配置
  [root@logstash ~]# vim /etc/logstash/conf.d/message.conf
  input {
    file {
      path => "/var/log/messages"
      start_position => "beginning"
    }
  }
 
  output {
    file {
      path => "/tmp/message_%{+YYYY.MM.dd}.log"
    }
  }
  2)启动logstash
  #先检查语法
  [root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/message.conf -t
 
  #启动
  [root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/message.conf &
  3)查看新文件内容
  [root@logstash ~]# tail /var/log/messages
  Jul 17 15:01:01 logstash systemd: Started Session 448 of user root.
  Jul 17 15:05:01 logstash systemd: Started Session 449 of user root.
  [root@logstash ~]# tail /tmp/message_2020.07.17.log
  {"@version":"1","path":"/var/log/messages","message":"Jul 17 15:01:01 logstash systemd: Started Session 448 of user root.","@timestamp":"2020-07-17T07:05:42.341Z","host":"logstash"}
  {"@version":"1","path":"/var/log/messages","message":"Jul 17 15:05:01 logstash systemd: Started Session 449 of user root.","@timestamp":"2020-07-17T07:05:42.341Z","host":"logstash"}
  4.配置收集日志到ES
  1)配置
  [root@logstash tmp]# vim /etc/logstash/conf.d/message_es.conf
  input {
    file {
      path => "/var/log/messages"
      start_position => "beginning"
    }
  }
 
  output {
    elasticsearch {
      hosts => ["10.0.0.51:9200"]
      index => "messages_%{+YYYY-MM-dd}.log"
    }
  }
  2)启动logstash
  #先检查语法
  [root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/message.conf -t
 
  #启动
  [root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/message.conf &
  启动多个logstash进程需要配置多个data目录,否则会出现这样的报错
 
  [ERROR] 2020-07-20 11:59:22.363 [LogStash::Runner] Logstash - java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit
  5.启动logsstash多实例
  1)创建多实例数据目录
  [root@logstash ~]# mkdir /data/logstash/{message_file,secure_file} -p
  #授权目录logstash权限
  [root@logstash ~]# chown -R logstash.logstash /data/logstash/
  2)启动多实例
  #启动多实例要加一个参数 --path.data 指定多实例不同的数据目录
 
  [root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/message_es.conf --path.data=/data/logstash/message_file &
 
  [root@logstash tmp]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/secure_es.conf --path.data=/data/logstash/secure_file &
  6.单个进程收集多个日志
  1)停掉原来的进程删掉索引
  2)配置方式一:
  [root@logstash ~]# vim /etc/logstash/conf.d/double_es.conf
  input {
    file {
      type => "messages_log"
      path => "/var/log/messages"
      start_position => "beginning"
    }
    file {
      type => "secure_log"
      path => "/var/log/secure"
      start_position => "beginning"
    }
  }
 
  output {
    if [type] == "messages_log" {
      elasticsearch {
        hosts => ["10.0.0.51:9200"]
        index => "messages_%{+YYYY-MM-dd}.log"
      }
    }
    if [type] == "secure_log" {
      elasticsearch {
        hosts => ["10.0.0.51:9200"]
        index => "secure_%{+YYYY-MM-dd}.log"
      }
    }
  }

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读