在实际使用中,通常我们会对一些端口进行监控,比如nginx,mariadb,php等。要完成一个端口监控是简单容易的。
net.tcp.listen[80]
如上,既可对tcp 80获取状态,而后配置Triggeres做告警处理即可
{HOST.NAME} nginx is not running {nginx_80_port:net.tcp.listen[80].last()}<>1 Enabled
但是,现在。我要说的并不是这个。在一个环境中一般来讲会有负载均衡和HA冗余,就不能避免的要使用VIP,顾名思义就是虚拟IP。通过操作虚拟IP的飘逸来完成故障后的IP上业务的切换。通常而言,每个VIP都会伴随一个端口。如: lvs,haproxy,nginx。
阅读这篇文章,你将了解如何监控VIP:PORT。尤为提醒的是,通过某一台机器添加一次模板就可以对VIP和VIP端口进行检查。
创建模板
1,Configuration->Templates->Create template
输入名称即可。如:Template App Telnet VIP
2,并且Create application ,如:Telnet VIP
3,创建Items
- type: Simple check
为什么是Simple check,而不是telent?
相比较telnet与 Simple check,后者要比前者好用的多,在我看来,不需要写脚本,简单配置就能够完成我们需求。所以,我们这里仍然使用的是: net.tcp.service。推荐阅读官网的service_check_details与simple_checks
- Key: net.tcp.service[tcp,10.10.195.99,9200]
意思为:获取10.10.10.195.99ip地址的tcp 9200端口状态
在Applications中选择Telnet VIP
除此之外,创建Triggers
创建Triggers
0 - 服务停止,1 - 服务正在运行 ,由此,我们的触发器就如下:
{Template App Telnet VIP:net.tcp.service[tcp,10.10.195.99,9200].last(#3)}=0
如果最新三次回去的值都是0就触发告警。如下图即可:
到此,使用zabbix简单监控ip和端口已经完成。
自动发现
参考自动发现基于zabbix4.2 zabbix Discovery 教程
延伸阅读
service_check_detailssimple_checks
阅读更多
- zabbix监控教程
- docker教程
- zabbix-complete-works
- linuxea:Zabbix-complete-works之Zabbix基础安装配置
- linuxea:zabbix4.2新功能之TimescaleDB数据源测试