一般来说,互联网公司项目都会有几个域名,这些域名里一些是网页,另一些是接口。而A记录的域名后面多半都会有一个ip地址,有时候我们需要监控这些域名里的端口是否正常,因为这些域名一旦失效,会造成比较大的影响。
比如,现在有一个域名是dvlpss.lechange.cn,现在对应的IP地址是118.178.3.148,如图:
而这个118.178.3.148是阿里云负载均衡的地址,里面监听了两个端口分别是9055和9054,如图:
要知道阿里云的负载均衡是不可能让我装一个zabbix-agent进去的,那么既然这样,除了阿里云自带的云监控之外要如何监控这个负载均衡的端口状态?
这个时候就要用zabbix的simple checks功能了,它可以使zabbix-server去主动探测目标域名(IP)的端口,然后返回值,这样通过检测网络通讯状态及端口状态来监控对象的存活情况。
首先,在zabbix-server的控制台里先建立一个新的host,名字就叫dvlpss.lechange.cn,给它归属到一个叫“Net monitor”的组里,在DNS那里不写IP地址,直接写域名,同时"connect to"选择DNS解析,如图:
然后给这个dvlpss.lechange.cn建立一个item,这个时候type要选择“Simple check”,Show value要选择"Service state",更新间隔请酌情填写,这里我写的是60秒,如图:
补充说说key,simple check的key类型是非常丰富的,不过比较通用的就几个:
1)icmpping[<target>,<packets>,<interval>,<size>,<timeout>] ,返回值为0表示ping失败,返回值为1表示可以ping通,其中interval是“两个连续数据包发送的时间间隔,以毫秒为单位”;
2)icmppingloss[<target>,<packets>,<interval>,<size>,<timeout>],代表丢失数据包的百分比,这个单位必须是float;
3)icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>],ICMP ping响应时间,这个单位必须是float;
4)net.tcp.service[service,<ip>,<port>],返回值为0表示ping失败,返回值为1表示可以tcp包是通,检查服务是否正在运行并接受TCP连接。
5)net.udp.service[service,<ip>,<port>],跟上面的差不多,只不过这个换成了udp的连接方式;
6)net.tcp.service.perf[service,<ip>,<port>],检查TCP服务的性能,zabbix 2.0之后开始支持https协议了;
item搞定了,下面就建立一个图像,看一下zabbix-server取到的值是多少,如图:
保存之后,来到graph一瞅,已经取到了数据而且都是“1”,可见当前这个域名的9055端口是OK的,剩下的就是配置一下告警。
如果你还用了金山云的负载均衡,但是要知道金山云的云监控是不带负载均衡的检查的,那么你可以用zabbix的simple check来监控金山的负载均衡,只不过在配置host那步不要选择DNS解析,直接填写IP地址就好。
最后再叮嘱一句,这里配置的端口是负载均衡的前端端口,可不是后端端口,后段端口是在挂载服务器上的。
参考资料:https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/simple_checks
最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文!
本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/2043567