【监控】 zabbix 添加Shell脚本监控
需求描述
主机 172.16.7.135 网络不稳定,经常出现baidu不能访问的情况,利用zabbix对该主机的网络状态进行监控,检测baidu能否正常访问,出现异常时,飞书进行通知
如果百度正常访问,其返回的状态码为200;这里实现的思路为:编写php脚本检测curl baidu后的状态码是否为200,不是返回false,正常则返回true,zabbix-server端用zabbix-get 执行zabbix-agent 端脚本,如果可以正常执行,在web界面根据键值进行监控
检测百度是否正常的PHP脚本
<?php
// 创建一个cURL句柄
$ch = curl_init();
// 设置cURL选项
curl_setopt($ch, CURLOPT_URL, 'https://www.baidu.com'); // 要访问的网页URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回响应数据而不直接输出
curl_setopt($ch, CURLOPT_HEADER, true); // 包括响应头信息
// 执行cURL请求
$response = curl_exec($ch);
// 获取HTTP响应状态码
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 关闭cURL句柄
curl_close($ch);
// 打印HTTP响应状态码
if($httpStatusCode=="200")
{
echo 'true';
}else
{
echo 'false';
}
?>
本地测试
[root@test ~]$ php /var/www/html/test.php
true
[root@test ~]$ /usr/bin/php /var/www/html/test.php
true
[root@test ~]$
手动修改主机的host 文件 模拟百度不能使用的情况,脚本正常执行,返回false
[root@iZuf65wxtpyt9a8dedg53lZ ~]$ tail -n 2 /etc/hosts
1.1.1.4 www.baidu.com
[root@iZuf65wxtpyt9a8dedg53lZ ~]$ php /var/www/html/test.php
false
[root@iZuf65wxtpyt9a8dedg53lZ ~]$
将脚本绑定上键值
测试执行
[root@iZuf65wxtpyt9a8dedg53lZ zabbix_agentd.d]$ /usr/local/zabbix/bin/zabbix_get -s 172.16.7.135 -k https_code
false
[root@iZuf65wxtpyt9a8dedg53lZ zabbix_agentd.d]$
执行成功说明 键值已经成功与脚本进行绑定
zabbix web界面添加监控项
监控项-> 触发器 -> 动作(飞书通知管理员)
添加触发器
添加动作通知飞书
测试成功