一、Zabbix监控nginx
1、安装nginx配置ngixn_status
在server2中:
[root@server2 ~]# rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpm
[root@server2 ~]# cd /etc/nginx/cd conf.d/
[root@server2 conf.d]# vim default.conf
12 location /status {
13 stub_status on;
14 access_log off;
15 }
在网页访问172.25.3.2/status
设定只允许本机访问
[root@server2 conf.d]# vim default.conf
12 location /status {
13 stub_status on;
14 access_log off;
15 allow 127.0.0.1;
16 deny all ;
17 }
[root@server2 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@server2 conf.d]# nginx ##打开nginx
[root@server2 conf.d]# curl http://172.25.3.2/status
[root@server2 conf.d]# curl http://127.0.0.1/status
2、添加自定义key配置文件
[root@server2 conf.d]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
10 10 11
Reading: 0 Writing: 1 Waiting: 0
[root@server2 conf.d]# cd /etc/zabbix/
[root@server2 zabbix]# cd zabbix_agentd.d/
[root@server2 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
##复制一个nginx.conf文件
测试是否可以拿到key值
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | grep Active | awk '{print $NF}'
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 |awk '{print $3}'
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 |awk '{print $2}'
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 |awk '{print $1}'
写到配置文件
[root@server2 zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $NF}'
UserParameter=nginx.accepts,curl -s http://127.0.0.1/status | awk NR==3 |awk '{print $1}'
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk NR==3 |awk '{print $2}'
UserParameter=nginx.requests,curl -s http://127.0.0.1/status | awk NR==3 |awk '{print $3}'
[root@server2 zabbix_agentd.d]# chkconfig zabbix-agent on
###设置zabbix-agent开机自启动
[root@server2 zabbix_agentd.d]# /etc/init.d/zabbix-agent start
###打开zabbix-agent服务
在配置文件中允许自定义key值
[root@server2 zabbix]# pwd
/etc/zabbix
[root@server2 zabbix]# vim zabbix_agentd.conf
##将286行改为等于1
[root@server2 zabbix]# /etc/init.d/zabbix-agent restart
3、在server端安装zabbix-get查看能否拿到key值
在server1中:
[root@server1 ~]# rpm -ivh zabbix-get-3.4.6-1.el7.x86_64.rpm
[root@server1 ~]# zabbix_get -s 172.25.3.2 -p 10050 -k 'nginx.accepts'
[root@server1 ~]# zabbix_get -s 172.25.3.2 -p 10050 -k 'nginx.handled'
[root@server1 ~]# zabbix_get -s 172.25.3.2 -p 10050 -k 'nginx.requests'
4、在web监控端,点击监控的serevr2创建监控项
将之前我们拿到的4个key值都添加到监控项
(1)添加nginx_active监控项
(2)添加nginx_accepts监控项
(3)添加nginx_handled监控项
(4)添加nginx_requests监控项
完成添加后,点击图形,创建图形,加入之前添加的监控项
选择之前创建的图形nginx_status,再点击预览
二、zabbix使用percona的模板来监控mysql
1、在agent端安装zabbix-percona-templates
server1中:
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
执行完这一步会生成两个目录
分别是/var/lib/zabbix/percona/scripts和
/var/lib/zabbix/percona/templates
拷贝userparameter_percona_mysql.conf 文件到被监控的mysql服务器上
[root@server1 scripts]# cd /var/lib/zabbix/percona/templates/
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d
查看过滤应该是190个监控项
[root@server1 templates]# cd /etc/zabbix/zabbix_agentd.d/
[root@server1 zabbix_agentd.d]# vim userparameter_percona_mysql.conf
[root@server1 zabbix_agentd.d]# cat userparameter_percona_mysql.conf | wc -l
190
[root@server1 zabbix_agentd.d]# cd /var/lib/zabbix/percona/scripts/
建立percona的php配置文件
[root@server1 scripts]# vim ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';
[root@server1 scripts]# mysql -p ##登录查看是否有数据库
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 686
Server version: 5.5.52-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> Bye
4、测试获取数据是否成功
[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
测试结果只要有值就行
[root@server1 scripts]# cd /tmp/
[root@server1 tmp]# ls
localhost-mysql_cacti_stats.txt
systemd-private-47d219fa9c9c4e649ae3f601b4489fc3-httpd.service-6FdRoJ
systemd-private-47d219fa9c9c4e649ae3f601b4489fc3-mariadb.service-DDtNNS
[root@server1 tmp]# cat localhost-mysql_cacti_stats.txt
[root@server1 tmp]# rm -fr localhost-mysql_cacti_stats.txt
在server端,get测试
[root@server1 ~]# vim ~zabbix/.my.cnf
[client]
user = root
password = redhat
[root@server1 ~]# systemctl restart zabbix-agent ##重启
5、在web端导入percona-mysql模版
点击配置,主机,点击右上角的导入,添加上聚合图形
然后在agent模版界面链接此模版即可
点击选择,选择percona
查看此时的监控项为239个
三、zabbix使用JMX监控tomcat
1、在agent端配置tomcat
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server2 ~]# tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ln -s apache-tomcat-7.0.90/ tomcat
[root@server2 local]# cd /usr/local/tomcat/bin/
[root@server2 bin]# vim catalina.sh
配置catalina.sh
[root@server2 bin]# ./startup.sh ###启动脚本
[root@server2 bin]# netstat -antlp | grep :8888 查看端口
2.下载java-gateway
在server1中:
yum install zabbix-java-gateway-3.4.6-1.el7.x86_64.rpm -y
[root@server1 ~]# systemctl start zabbix-java-gateway
[root@server1 ~]# cd /etc/zabbix/
[root@server1 zabbix]# vim zabbix_server.conf
[root@server1 zabbix]# systemctl restart zabbix-server
zabbix_server.conf 文件配置为:
在zabbix网页中:
给server2主机添加一个JMX接口
添加java JMX模板
查看主机:
四、zabbix的告警系统
首先让虚拟机可以上网
在真机中:
[root@foundation3 Desktop]# iptables -t nat -I POSTROUTING -s 172.25.3.0/24 -j MASQUERADE
在server1中:
[root@server1 zabbix]# route add default gw 172.25.3.250 ##添加网关
[root@server1 zabbix]# route -n ##查看添加
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.3.250 0.0.0.0 UG 0 0 0 eth0
172.25.3.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
[root@server1 zabbix]# vim /etc/resolv.conf
nameserver 114.114.114.114
[root@server1 zabbix]# ping baidu.com ##能够ping通就行
在server1中的操作
[root@server1 zabbix]# cd /usr/lib/zabbix/alertscripts
注意一定要在此目录进行下面操作,这是zabbix的告警目录
[root@server1 alertscripts]#tar zxf oneitsm_zabbix_release-1.2.0.tar.gz
[root@server1 alertscripts]#cd oneitsm/bin/
[root@server1 bin]# ./install.sh 39cfc2c3-36a5-acd1-722c-a15fae4f4ea2
./log.sh: line 6: /usr/lib/zabbix/alertscripts/oneitsm/bin/oneitsm.conf: No such file or directory
start to create config file...
Zabbix管理地址: http://172.25.3.1/zabbix
Zabbix管理员账号: Admin
Zabbix管理员密码: 为zabbix
在执行./install.sh时,后面跟的key值在onealert网站中添加zabbix就会看见
在zabbix的web界面中添加告警媒介
管理—–>用户->Admin->报警媒介->添加
.排除别的可以触发告警的告警源(在该实验环境下,我们监控的mysql数据库,没有slave,所以禁用)
因为这里没有用到其他3种方式,所以禁用掉
告警的通知策略
测试:在server2中关闭掉zabbix-agent,5分钟后会发送告警通知,如果绑定手机微信则会在微信通知,等待认领告警
认领告警后,打开server2的zabbix-agent,它会记录并通知是否恢复
告警详情