首先我们了解一下:
当我们监控50/100/200台甚至更多的机器的话我们该用什么方案呢?
解决思路:
(1)克隆监控模板
(2)自动注册和自动发现
(3)使用zabbix的api接口,利用curl语言,或者开发自己的编程脚本如python等
我们日常使用的各种软件,都是提供API接口,给开发人员进行修改以及获取数据的。
监控实施方案(部分服务):
一.自动发现:
概念:
Zabbix自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是Zabbix Server端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服务器添加至Zabbix监控平台,省去人工手动频繁的添加,节省大量的人力成本。
自动发现两个弊端:
(1). 海量的机器中不一定都是一个网段,可能会是N个网段中的N个机器。
(2)大量网段的自动发现触发大量的进程,耗时较久,且压力大,会加速服务器的死亡
1.准备好一台客户端机器。
systemctl is-active zabbix-agent2 //查看agent2服务是否正常运行
2.打开server端。
zabbix_get -s '192.168.148.123' -p 10050 -k 'agent.ping' //查看客户机是否存活
3.配置hosts解析,编辑所有主机的/etc/hosts文件:
vim /etc/hosts
192.168.148.122 node1
192.168.148.123 agent01
192.168.148.121 agent02
4.自动发现配置(这里有现有的模板,我们可以直接使用)。
只用修改发现的IP范围即可,
5.添加动作
6.点击进入主机(查看自动发现是否存在):
7.点击更新,过10s后查看(发现添加成功):
二,自动注册
即zabbix-agent2主动上报自己的信息,你来注册且满足我条件我就给你监控。
缺点:
可能agent找不到server.(配置文件写错,和网络不通都有可能造成这样的结果)
1.准备机器:
server /agent01/agent02
2.修改agent01/02的配置文件去掉HostnameItem=system.hostname前面的#号
vim /etc/zabbix/zabbix_agent2.conf
[root@agent01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.148.122 #服务端地址
ServerActive=192.168.148.122 #服务端地址
Hostname=agent01 #agent主机名
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
3.重启服务:
systemctl restart zabbix-agent2
4.去服务端验证是否能ping通
5.进入页面进入配置:
6.切换成功点击创建动作
7.添加动作信息:
8.添加操作信息:
9.确保server端能够ping通主机名
10.点击主机进行验证: