zabbix监控logstash日志
准备工作
zabbix:192.168.0.6logstash:192.168.0.7
server1
安装zabbix
# yum -y install zabbix-server zabbix-web zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get mariadb mariadb-server httpd
登录mysql创建mysql
create database zabbix charset utf8;grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';flush privileges;
初始化zabbix数据库
zcat /usr/share/doc/zabbix-server-mysql-4.2.8/create.sql.gz | mysql -uzabbix -pzabbix zabbix
上传simkai.ttf字体到/usr/share/zabbix/assets/fonts/并修改字体
cd /usr/share/zabbix/assets/fonts/mv simkai.ttf graphfont.ttf
修改时区
# vim /etc/php.inidate.timezone = Asia/Shanghai # 878行
开启zabbix
# systemctl start zabbix-server zabbix-agent httpd
访问zabbix
浏览器打开192.168.0.6/zabbix
-> 添加主机(192.168.0.7)
-> 创建模板
-> 创建应用集
-> 创建监控项(选择采集器,归属到刚才创建的应用集)
-> 监测
-> 最新数据(主机选择l92.168.0.7)
-> 历史记录
server2
安装zabbix-agent
# yum -y install zabbix-agent
修改zabbix-agent配置
# vim /etc/zabbix/zabbix_agent.conf
Server=192.168.0.6 # 98行 zabbix-server ipServerActive=192.168.0.6 # 139行 zabbix-server ip
开启zabbix-agent
# systemctl start zabbix-agent
zabbix-server主机测试zabbix-agent是否正常
zabbix-get -s 192.168.0.7 -k agent.ping
1# 测试成功
安装jdk
rpm -ivh jdk-8u131-linux-x64_.rpm
安装logstash
# unzip logstash-7.9.2.zip# mv logstash-7.9.2 /usr/local/logstash
安装插件
# yum -y install wget unzip# /usr/local/logstash/bin/logstash-plugin install logstash-output-zabbix# /usr/local/logstash/bin/logstash-plugin install logstash-integration-jdbc# wget https://github.com/logstash-plugins/logstash-input-beats/archive/master.zip -O /usr/local/logstash/master.zip# unzip /usr/local/logstash/master.zip
配置logstash
# vim /usr/local/logstash/config/zabbix.conf
input {file {path => ["/var/log/secure"] # 文件位置type => "system" # 类型add_field => [ "[zabbix_key]", "oslogs" ] # zabbix键值add_field => [ "[zabbix_host]", "192.168.0.7" ] # logstash主机start_position => "beginning"}}output{stdout { codec => rubydebug } # 调试信息zabbix {zabbix_host => "[zabbix_host]"zabbix_key => "[zabbix_key]"zabbix_server_host => "192.168.0.6" # zabbix-server ipzabbix_server_port => "10051" # zabbix-server portzabbix_value => "message" # 日志字段}}
测试:
/usr/local/logstash/bin/logstash -f /usr/local/logstash/config/zabbix.conf
开启成功提示下方信息
Sending Logstash logs to /usr/local/logstash/logs which is now configured via log4j2.properties[2020-10-08T20:37:47,334][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"7.9.2", "jruby.version"=>"jruby 9.2.13.0 (2.5.7) 2020-08-03 9a89c94bcc Java HotSpot(TM) 64-Bit Server VM 25.131-b11 on 1.8.0_131-b11 +indy +jit [linux-x86_64]"}[2020-10-08T20:37:47,923][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified[2020-10-08T20:37:50,204][INFO ][org.reflections.Reflections] Reflections took 42 ms to scan 1 urls, producing 22 keys and 45 values[2020-10-08T20:37:51,436][INFO ][logstash.javapipeline ][main] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>250, "pipeline.sources"=>["/etc/logstash/conf.d/zabbix.conf"], :thread=>"#<Thread:0x2ef7b133 run>"}[2020-10-08T20:37:52,520][INFO ][logstash.javapipeline ][main] Pipeline Java execution initialization time {"seconds"=>1.06}[2020-10-08T20:37:52,766][INFO ][logstash.inputs.file ][main] No sincedb_path set, generating one based on the "path" setting {:sincedb_path=>"/usr/local/logstash/data/plugins/inputs/file/.sincedb_730aea1d074d4636ec2eacfacc10f882", :path=>["/var/log/secure"]}[2020-10-08T20:37:52,830][INFO ][logstash.javapipeline ][main] Pipeline started {"pipeline.id"=>"main"}[2020-10-08T20:37:52,921][INFO ][filewatch.observingtail ][main][5ffcc74b3b6be0e4daa892ae39a07dc20fdbc1d05bd5cedc4b4290930274f61e] START, creating Discoverer, Watch with file and sincedb collections[2020-10-08T20:37:52,963][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}[2020-10-08T20:37:53,369][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
使用ssh命令连接logstash主机,故意输错密码查看输出
{"type" => "system","path" => "/var/log/secure","host" => "localhost.localdomain","message" => "Oct 8 20:43:31 localhost sshd[112359]: Accepted passwh2","zabbix_key" => "oslogs","@timestamp" => 2020-10-09T00:43:56.940Z,"zabbix_host" => "192.168.0.7","@version" => "1"}{"type" => "system","path" => "/var/log/secure","host" => "localhost.localdomain","message" => "Oct 8 20:43:31 localhost sshd[112359]: pam_unix(sshd:(uid=0)","zabbix_key" => "oslogs","@timestamp" => 2020-10-09T00:43:56.966Z,"zabbix_host" => "192.168.0.7","@version" => "1"}{"type" => "system","path" => "/var/log/secure","host" => "localhost.localdomain","message" => "Oct 8 20:43:36 localhost sshd[112359]: pam_systemd(ssterrupted system call","zabbix_key" => "oslogs","@timestamp" => 2020-10-09T00:43:56.967Z,"zabbix_host" => "192.168.0.7","@version" => "1"}...
正常输出,CTRL+C退出
如果日志中存在报错:
[2020-10-08T09:06:42,311][WARN ][logstash.outputs.zabbix ][main][630c433ba0be0739e8ee72ca91d03f00695f05873b64e12c7488b8f2c32a8e05] Zabbix server at 192.168.0.6 rejected all items sent. {:zabbix_host=>"192.168.0.6"}
表示zabbix主机拒绝了所有的连接
解决方法:
设置防火墙规则
查看配置文件zabbix地址与logstash地址
[2020-10-08T20:41:45,154][WARN ][logstash.outputs.zabbix ][main][cf6b448e829beca8b4ffbd64e71c6e510108015eec5933f7b4675d79d5f09f03] Field referenced by 192.168.0.7 is missing
缺少引用的字段
解决方法:
添加带有message字段的信息到secure日志中
展示:
关闭输出并后台运行
/usr/local/logstash/bin/logstash -f /usr/local/logstash/config/zabbix.conf &> /dev/null &
生成日志信息并使用zabbix查看
-> 监测
-> 最新数据
-> 历史记录

浙公网安备 33010602011771号