• logstash5.x安装及简单运用


    Logstash requires Java 8. Java 9 is not supported.

    1、检测是否安装了java环境

    [root@node3 ~]# java -version
    java version "1.8.0_144"
    Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
    Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
    

    2、安装logstash,这里采用rpm安装

      https://artifacts.elastic.co/downloads/logstash/logstash-5.6.1.rpm

      yum install logstash

    查看生成了哪些文件,查看logstash的执行文件位置:

    /etc/logstash/conf.d
    /etc/logstash/jvm.options
    /etc/logstash/log4j2.properties
    /etc/logstash/logstash.yml
    /etc/logstash/startup.options
    /usr/share/logstash/CHANGELOG.md
    /usr/share/logstash/CONTRIBUTORS
    /usr/share/logstash/Gemfile
    /usr/share/logstash/Gemfile.jruby-1.9.lock
    /usr/share/logstash/LICENSE
    /usr/share/logstash/NOTICE.TXT
    /usr/share/logstash/bin/cpdump
    /usr/share/logstash/bin/ingest-convert.sh
    /usr/share/logstash/bin/logstash
    /usr/share/logstash/bin/logstash-plugin
    /usr/share/logstash/bin/logstash-plugin.bat
    /usr/share/logstash/bin/logstash.bat
    /usr/share/logstash/bin/logstash.lib.sh
    /usr/share/logstash/bin/ruby
    /usr/share/logstash/bin/setup.bat
    /usr/share/logstash/bin/system-install
    /usr/share/logstash/data
    

     配置文件:

    1、配置jvm

    /etc/logstash/jvm.options
    2、logstash的一些配置
    /etc/logstash/logstash.yml
    3、环境变量一些的配置
    /etc/logstash/startup.options
    4、日志与log4j2的配置
    /etc/logstash/log4j2.properties
     
    开始第一个任务:
    [root@node3 conf.d]# /usr/share/logstash/bin/logstash -e 'input { stdin {} } output { stdout {} }'
    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
    

     提示warning,解决办法:

    mkdir -p /usr/share/logstash/config/
    ln -s /etc/logstash/* /usr/share/logstash/config
    chown -R logstash:logstash /usr/share/logstash/config/
    bin/logstash -e 'input { stdin { } } output { stdout {} }'
    

     如果logstash不适用命令行执行,而是作为一个服务:

      logstash启动:
      /etc/init.d/logstash start
      systemctl start logstash.service
     
    开始编写配置文件进行logstash解析:
    1、input插件中file插件的使用
    [root@node3 conf.d]# cat file.conf 
    input {
        file {
            path => ["/var/log/messages"]
            start_position => "beginning"
        }
    }
    
    output {
        stdout {
            codec => rubydebug
        }
    }
    [root@node3 conf.d]# /usr/share/logstash/bin/logstash -f file.conf 
    

     2、多个log日志的输入、

    [root@node3 conf.d]# cat file_more_choose.conf 
    input {
        file {
            path => ["/var/log/messages"]
            start_position => "beginning"
        }
        file {
            path => ["/var/log/elasticsearch/my-elastic.log"]
            start_position => "beginning"
        }
    }
    
    output {
        stdout {
            codec => rubydebug
        }
    }
    [root@node3 conf.d]# /usr/share/logstash/bin/logstash -f file_more_choose.conf

     但是发现只打印出elastic的日志,message的日志没有stdout,收集的日志是增量的,之前收集的日志已经存在sincedb中了,所以会默认从之后开始存

    Path of the sincedb database file (keeps track of the current position of monitored log files) that will be written to disk. The default will write sincedb files to <path.data>/plugins/inputs/file NOTE: it must be a file path and not a directory path,这是一段sincedb_path的解释

    检查配置文件的语法是否正确:
    -t, --config.test_and_exit    Check configuration for valid syntax and then exit.
                                       (default: false)
    -r, --config.reload.automatic Monitor configuration changes and reload
                                      whenever it is changed.
                                      NOTE: use SIGHUP to manually reload the config
                                       (default: false)
    [root@node3 conf.d]# /usr/share/logstash/bin/logstash -f file.conf -t
    Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties
    Configuration OK
    

     3、以elasticsearch插件输出:

    input {
        file {
            path => ["/var/log/logstash/logstash-plain.log"]
            start_position => "beginning"
            type => "logstash"
        }
    }
    
    
    output {
        elasticsearch {
            hosts => ["192.168.44.134:9200"]
            index => "logstash-log"
            codec => rubydebug
        }
    }
    

      

    4、根据插件type来定义输出插件:

    [root@node3 conf.d]# cat type.conf 
    input {
        file {
           path  => ["/var/log/logstash/logstash-plain.log"]
           start_position => "beginning"
           type => "logstash_2"
        }
        file {
           path => ["/var/log/messages"]
           start_position => "beginning"
           type => "system"
        }
    }
    
    
    output {
        if [type] == "logstash_2" {
            elasticsearch {
                hosts => ["192.168.44.134:9200"]
                index => "logstash_2"
                codec => rubydebug
            }
        }
        if [type] == "system" {
             stdout {
                codec => rubydebug
             }
        }
    } 
    

     现在向messages日志中echo一段话:

    echo "`date +%F`" >> /var/log/messages
    

     然后开始执行:

    [root@node3 conf.d]# /usr/share/logstash/bin/logstash -f type.conf 
    Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties
    {
          "@version" => "1",
              "host" => "node3",
              "path" => "/var/log/messages",
        "@timestamp" => 2017-09-20T08:19:05.782Z,
           "message" => "2017-09-20",                这是刚刚echo新增的内容
              "type" => "system"
    }
    

     查看es中的索引是否有生成:

  • 相关阅读:
    IDEA 配置Springboot项目热部署
    一文读懂类加载机制
    面试必问的MySQL锁与事务隔离级别
    工作中遇到的99%SQL优化,这里都能给你解决方案(三)
    谁有好的oracle数据库学习书籍,麻烦提供一下,感激不尽
    静态资源上传至远程ftp服务器,ftp工具类封装
    进程和线程,并发和并行,同步和异步,高并发和多线程,理一理概念
    使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题
    曾经天真的以为单例只有懒汉和饿汉两种!原来单例模式还能被破解!!!
    了解一下zookeeper,搭建单机版和集群版的环境玩玩,需要手稿的,留下邮箱
  • 原文地址:https://www.cnblogs.com/jsonhc/p/7562412.html
Copyright © 2020-2023  润新知