logstash的简单使用

logstash介绍


logstash安装

  • 前提条件: 服务器需要安装jdk1.8+

  • 官网下载 此处下载的是 Logstash 6.5.0版本,另外服务器是centos

  • 下载后上传到服务器 /home/program/logstash/ 文件夹下

  • 解压 tar -zxvf ./logstash-6.5.0.tar.gz

  • cd ./logstash-6.5.0/conf ,并新建配置文件my-logstash.conf

  • 配置my-logstash.conf:

    • input:

      input{
           beats {
                port => 12044
                   }
              }  #配置日志来源于网络,传输端口12044
      
    • filter:

    • output:

             file{
                      path=>"/home/logstash-logs/%{[fields][ip]}/%{+yyyy-MM-dd_HH}/log.log"
      # %{},获取参数的表达式,对于日期需要使用%{+ } 。 fiels:ip 为filebeat自定义的KV,参见filebeat的配置
              }
              stdout{
                  codec=>json   #将日志直接在控制台打印出来
              }       
      
  • 启动: 进入bin目录, 执行 ./logstash -f ../config/my-logstash.conf 等待片刻,会有启动成功的提示


logstash输出到DB

上面的配置,已经可以将filebeat发送过来的日志进行保存到文件了,现在我们需要将日志同时保存到数据库,测试使用的是mysql数据库

logstash-output-jdbc

  1. 在Red Hat 4.8.5-11上正确安装lostash 6.5 (参考上面)。
  2. 在Red Hat 4.8.5-11上安装mysql(以8.0版本为例)
    • oracle官网下载对应的版本,此处下载red heat 8.0 为例,操作系统选择linux-generic
    • 下载后,上传至服务器/home/program下
    • 安装(由于我下载的是tar.xz格式的,所以下面的命令或许会有所差异,具体的根据下载的后缀进行更改命令来安装)
      • 执行 xz -d mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
      • 执行 tar -xvf ./mysql-8.0.13-linux-glibc2.12-x86_64.tar -C /usr/local
      • 进入解压目录, 并重命名 cd /usr/local/ mv mysql-8.0.13-linux-glibc2.12-x86_64/ mysql
      • 添加配置文件: vim /etc/my.cnf
        [client]
        port=3306
        socket=/tmp/mysql/mysql.sock
        
        [mysqld]
        port=3306
        user=mysql
        socket=/tmp/mysql/mysql.sock
        basedir=/usr/local/mysql
        datadir=/usr/local/mysql/data
        log-error=error.log
        
      • 初始化mysql: mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

https://blog.csdn.net/github_39533414/article/details/80144890

  1. 配置logstash
    • 安装logstash-output-jdbc插件
      • 下载 压缩包
      • 解压, 并放在服务器任意文件夹 比如:/home/program/logstash/logstash-6.5.0/bin/logstash-output-jdbc-master
      • 进入logstash安装目录 : /home/program/logstash/logstash-6.5.0
      • 修改logstash下的Gemfile文件 vim ./Gemfile, 在最后,添加一行 gem "logstash-output-jdbc", :path => "/home/program/logstash/logstash-6.5.0/bin/logstash-output-jdbc-master"
      • 安装output-jdbc插件 bin/logstash-plugin install --no-verify
      • 查看是否安装成功: bin/logstash-plugin list
    • 下载connect的jar包 地址
    • 在logstash的bin/logstash-output-jdbc-master目录下 , 新建/vendor/jar-dependencies/runtime-jars` , 并将刚才下载的jar包上传到此目录下
    • 配置logstash
      • 打开logstash配置文件 vim ./config/my-logstash.conf,并添加如下内容:
      filter{
          grok{ 
           match=>{
             "message"=>"(?<JSON>{.*?})"
                  }
              }
          json{
             source=>"JSON"
             }
         }
      output{
         jdbc {
          driver_jar_path => "/home/program/logstash/logstash-6.5.0/bin/logstash-output-jdbc-master/vendor/jar-dependencies/runtime-jars/mysql-connector-java-8.0.12.jar"
         driver_class => "com.mysql.jdbc.Driver"
         connection_string => "jdbc:mysql://数据库IP:数据库端口/数据库名称?user=数据库的用户名&password=数据库的密码"
         statement => [ "INSERT INTO test (name, age) VALUES(111, ?)",  "age" ]
          } 
         }
      
    • 启动logstash , 此时应该会报错:missing class: com.xx.HikariCP
      • 由于output-jdbc-master中,有一个 logstash-output-jdbc.gemspec 文件, 打开后,可以发现器配置了com.xx.HikariCP , 并指定了具体的版本号2.7.2 ,需要去私服上下载该版本的jar, 然后放在logstash-core/lib/jars下即可

转载于:https://my.oschina.net/u/3713666/blog/3034767

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值