vlambda博客
学习文章列表

监控日志 - 3.Zabbix 监控(下)

  • 自定义监控

以监控node3主机Nginx服务的当前请求数为例


安装Nginx

[root@node3 ~]# yum install -y nginx...略[root@node3 ~]# systemctl start 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.confUserParameter=web_requests,netstat -an | grep 10.0.0.13:80 | wc -l[root@node3 ~]# systemctl restart zabbix-agent


获取这个key的值

[root@node1 ~]# yum install -y zabbix-get...略[root@node1 ~]# zabbix_get -s node3 -k web_requests0


通过压力测试工具ab,批量请求node3的Nginx Web服务

[root@node4 ~]# yum install -y httpd-tools...略[root@node4 ~]# ab -n 10000 -c 100 http://10.0.0.13/...略

-n  请求次数

-c  并发数


立即获取自定义key的值

[root@node1 ~]# zabbix_get -s node3 -k web_requests10000


创建item


创建graph

监控日志 - 3.Zabbix 监控(下)

查看图表

监控日志 - 3.Zabbix 监控(下)


  • 配置邮件报警

这里使用qq邮箱发送,163邮箱接收

先进入qq邮箱开启服务,并生成授权码

监控日志 - 3.Zabbix 监控(下)


配置邮件媒介,注意密码填写的是上面生成的授权码,不是邮箱登陆密码

监控日志 - 3.Zabbix 监控(下)


配置完成可以测试发送邮件,成功即配置正确

监控日志 - 3.Zabbix 监控(下)


创建用户

监控日志 - 3.Zabbix 监控(下)


给该用户添加Media

监控日志 - 3.Zabbix 监控(下)


授权

监控日志 - 3.Zabbix 监控(下)


创建Trigger,node3 的web在3分钟之内被请求数大于10000,报警级别为High

监控日志 - 3.Zabbix 监控(下)


创建Action,注意Event source选择Triggers

监控日志 - 3.Zabbix 监控(下)


Action条件

监控日志 - 3.Zabbix 监控(下)


Action操作,发送邮件给"开源Ops"用户

监控日志 - 3.Zabbix 监控(下)


恢复动作的操作,这里重启node3上面的Nginx服务

监控日志 - 3.Zabbix 监控(下)


请求测试

[root@node4 ~]# vim http_get_node3.sh[root@node4 ~]# cat http_get_node3.sh#!/bin/bash
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 10sdone[root@node4 ~]# sh http_get_node3.sh...略


查看图表

监控日志 - 3.Zabbix 监控(下)


查看邮件

监控日志 - 3.Zabbix 监控(下)

成功收到报警邮件。


  • 分布式监控

通过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 -pEnter password: ...略mysql> create database zabbix_proxy character set utf8 collate utf8_bin;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_proxyEnter 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.Zabbix 监控(下)


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

监控日志 - 3.Zabbix 监控(下)


注意,Monitored by proxy要选择刚刚添加的proxy


添加模板

监控日志 - 3.Zabbix 监控(下)


查看Hosts

如果ZBX标志一直不亮,可以尝试按server -> proxy -> agent的顺序重启一下。


查看node3的图表


开源Ops 发起了一个读者讨论 各位有建议或者疑问都可在此讨论