zabbix web配置
模版 定义监控项、触发器、过滤器
定义触发器动作,针对特定的触发条件,发送到对应用户的媒介
定义媒介类型,比如飞书IM,邮件电话等等
定义用户通知的消息,比如飞书的webhook地址,哪个用户对应哪个群聊
触发器
模版 VMware Guest
CPU 使用率超过 90%
min(/VMware Guest/vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}],5m) >90
内存使用率超过95%
min(/VMware Guest/vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}],5m) > 95
自动发现里面定义 {#FSNAME} 分区磁盘使用率不足10%
| VMware Guest | Mounted filesystem discovery |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m) < 10
模版
CPU 使用率超过 90%
min(/zabbix-linux-agent/system.cpu.util,5m) > 90
内存使用率超过 95%
min(/zabbix-linux-agent/vm.memory.utilization,5m) > 95
| zabbix-linux-agent | Linux by Zabbix agent: Get filesystems: Mounted filesystem discovery |
分区 [{#FSNAME}]: 空间不足90%
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}
触发器动作
配置24h告警一次,无限循环告警
24h 1-0 0
配置1h告警一次,无限循环高告警
1h 1-0 0
配置1h告警一次,之后不再告警
1h 1-1 0
发送到固定群组
单独配置触发器动作
操作一栏选择哪个主机组,或者哪个主机
媒介
这里参考:https://www.txisfine.cn/archives/471fea0d
飞书webhook定义
To参数即为 webhookurl参数
// To : FeishuBot Key
// Message : {ALERT.MESSAGE}
// HTTPProxy
try {
var params = JSON.parse(value),
req = new HttpRequest(),
response;
if (params.HTTPProxy) {
req.setProxy(params.HTTPProxy);
}
if (params.Message === 'test') {
var data = {
"msg_type": "interactive",
"card": {
"type": "template",
"data": {
"template_id": "ctp_AAVPnuaz6F8I",
"template_variable": {
"event_name": "{EVENT.NAME}",
"event_id": "{EVENT.ID}",
"event_date": "{EVENT.DATE}",
"event_time": "{EVENT.TIME}",
"host_name": "{HOST.NAME}",
"event_severity": "{TRIGGER.SEVERITY}",
"message_url": "",
"trigger_name": "{TRIGGER.NAME}",
"problem_item_name": "{ITEM.NAME}",
"problem_item_value": "{ITEM.VALUE}",
"host_ip": "{HOST.IP}",
"from": "ZABBIX"
}
}
}
};
} else {
var data = JSON.parse(params.Message);
}
req.addHeader('Content-Type: application/json');
Zabbix.log(4, '[ FeishuBot WebHook ] Webhook request with value=' + value);
response = req.post(params.To, JSON.stringify(data));
Zabbix.log(4, '[ FeishuBot WebHook ] Responded with code: ' + req.getStatus() + '. Response: ' + response);
try {
response = JSON.parse(response);
}
catch (error) {
if (req.getStatus() < 200 || req.getStatus() >= 300) {
throw 'Request failed with status code ' + req.getStatus();
}
else {
throw 'Request success, but response parsing failed.';
}
}
if (req.getStatus() !== 200 || response.msg !== 'success') {
throw response.msg;
}
return 'OK';
}
catch (error) {
Zabbix.log(3, '[ FeishuBot WebHook ] Sending failed. Error: ' + error);
throw 'Failed with error: ' + error;
}
消息模版定义
问题
{
"msg_type": "interactive",
"card": {
"type": "template",
"data": {
"template_id": "ctp_AAVTQ2mY3Fsz",
"template_variable": {
"event_name": "{EVENT.NAME}",
"event_id": "{EVENT.ID}",
"event_date": "{EVENT.DATE}",
"event_time": "{EVENT.TIME}",
"host_name": "{HOST.NAME}",
"event_severity": "{TRIGGER.SEVERITY}",
"message_url": "https://iit-zabbix.anker-in.com/zabbix.php?action=dashboard.view&dashboardid=1",
"trigger_name": "{TRIGGER.NAME}",
"problem_item_name": "{ITEM.NAME}",
"problem_item_value": "{ITEM.VALUE}",
"host_ip": "{HOST.IP}",
"from": "ZABBIX"
}
}
}
}
问题恢复
{
"msg_type": "interactive",
"card": {
"type": "template",
"data": {
"template_id": "ctp_AAVPnuaz6F8I",
"template_variable": {
"event_name": "{EVENT.NAME}",
"event_id": "{EVENT.ID}",
"event_date": "{EVENT.DATE}",
"event_time": "{EVENT.TIME}",
"host_name": "{HOST.NAME}",
"event_severity": "{TRIGGER.SEVERITY}",
"message_url": "https://iit-zabbix.anker-in.com/zabbix.php?action=dashboard.view&dashboardid=1",
"trigger_name": "{TRIGGER.NAME}",
"problem_item_name": "{ITEM.NAME}",
"problem_item_value": "{ITEM.VALUE}",
"host_ip": "{HOST.IP}",
"from": "ZABBIX",
"event_duration": "{EVENT.DURATION}"
}
}
}
}
浙公网安备 33010602011771号