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
- 以下内容参考资料Logstash将数据导入至MYSQL, 并在linux发行版本Red Hat 4.8.5-11的基础上操作
- 在Red Hat 4.8.5-11上正确安装lostash 6.5 (参考上面)。
- 在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
- 配置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配置文件
- 启动logstash , 此时应该会报错:missing class: com.xx.HikariCP
- 由于output-jdbc-master中,有一个 logstash-output-jdbc.gemspec 文件, 打开后,可以发现器配置了com.xx.HikariCP , 并指定了具体的版本号2.7.2 ,需要去私服上下载该版本的jar, 然后放在logstash-core/lib/jars下即可
- 安装logstash-output-jdbc插件