监控日志 - 3.Zabbix 监控(下)
自定义监控
以监控node3主机Nginx服务的当前请求数为例
安装Nginx
[ ]
...略
[ ]
配置自定义key
# 查看所有key,自定义的key不要与原本的key重复
[root@node3 ~]# zabbix_agentd -p
...略
[root@node3 ~]# vim /etc/zabbix/zabbix_agentd.conf +318
[root@node3 ~]# grep web_requests /etc/zabbix/zabbix_agentd.conf
UserParameter=web_requests,netstat -an | grep 10.0.0.13:80 | wc -l
[root@node3 ~]# systemctl restart zabbix-agent
获取这个key的值
[ ]
...略
[ ]
0
通过压力测试工具ab,批量请求node3的Nginx Web服务
[ ]
...略
[ ]
...略
-n 请求次数
-c 并发数
立即获取自定义key的值
[ ]
10000
创建item
创建graph
查看图表
配置邮件报警
这里使用qq邮箱发送,163邮箱接收
先进入qq邮箱开启服务,并生成授权码
配置邮件媒介,注意密码填写的是上面生成的授权码,不是邮箱登陆密码
配置完成可以测试发送邮件,成功即配置正确
创建用户
给该用户添加Media
授权
创建Trigger,node3 的web在3分钟之内被请求数大于10000,报警级别为High
创建Action,注意Event source选择Triggers
Action条件
Action操作,发送邮件给"开源Ops"用户
恢复动作的操作,这里重启node3上面的Nginx服务
请求测试
[root@node4 ~]# vim http_get_node3.sh
[root@node4 ~]# cat http_get_node3.sh
TARGET_URL=http://10.0.0.13/
n=0
while((${n}<30))
do
n=${n}+1
COUNT=$((RANDOM%20000+10000))
ab -n $COUNT -c 100 $TARGET_URL
sleep 10s
done
[root@node4 ~]# sh http_get_node3.sh
...略
查看图表
查看邮件
成功收到报警邮件。
分布式监控
通过Zabbix proxy 收集数据,然后汇报给Zabbix server,可以分担Zabbix server的压力;
Zabbix proxy 是一个数据收集器,不支持计算触发器、处理事件和发送报警;
1)准备
node1作为server处理数据,node2安装proxy收集数据,node3作为agent节点;
将所有节点恢复到初始状态;
按照第1节安装server;
2)安装proxy
这里不另外安装mysql了,在node1的mysql上面创建数据库
[root@node1 ~]# mysql -u root -p
Enter password:
...略
set utf8 collate utf8_bin; create database zabbix_proxy character
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix_proxy.* to 'zabbix'@'10.0.0.%' identified by 'Zabbix111!';
Query OK, 0 rows affected, 1 warning (0.00 sec)
在node2上安装proxy
[root@node2 ~]# yum install -y zabbix-proxy-mysql mysql-community-client
...略
[root@node2 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-4.4.10/schema.sql.gz | mysql -u zabbix -p -h 10.0.0.11 zabbix_proxy
Enter password:
[root@node2 ~]# vim /etc/zabbix/zabbix_proxy.conf
[root@node2 ~]# cat /etc/zabbix/zabbix_proxy.conf
...略
ProxyMode=0
...略
Server=10.0.0.11
...略
Hostname=node2
...略
DBHost=10.0.0.11
...略
DBPassword=Zabbix111!
...略
[root@node2 ~]# systemctl start zabbix-proxy
[root@node2 ~]# systemctl enable zabbix-proxy
添加proxy到server
3)添加agent客户端
配置agent
[root@node3 ~]# yum install -y zabbix-agent
...略
[root@node3 ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@node3 ~]# cat /etc/zabbix/zabbix_agentd.conf
...略
Server=10.0.0.12
...略
ServerActive=10.0.0.12
...略
Hostname=node3
...略
HostMetadataItem=system.uname
...略
[root@node3 ~]# systemctl start zabbix-agent
[root@node3 ~]# systemctl enable zabbix-agent
创建Host
注意,Monitored by proxy要选择刚刚添加的proxy
添加模板
查看Hosts
如果ZBX标志一直不亮,可以尝试按server -> proxy -> agent的顺序重启一下。
查看node3的图表