满城建设局官方网站,读书网站排名,wordpress 动态解析,建设行业网站大概需要都少钱一、环境配置
1、配置zabbix服务端
2、配置监控主机监控项监控模板
zabbix配置安装_this page is used to test the proper operation of _疯飙的蜗牛的博客-CSDN博客
二、触发器
触发器的本质就是一个条件判断#xff0c;对于不同的监控数据来说#xff0c;我…
一、环境配置
1、配置zabbix服务端
2、配置监控主机监控项监控模板
zabbix配置安装_this page is used to test the proper operation of _疯飙的蜗牛的博客-CSDN博客
二、触发器
触发器的本质就是一个条件判断对于不同的监控数据来说我们要设置不同的触发器。如一个监控项不关联触发器将不会提示错误也不会触发告警动作。 触发器trigger: 触发器实际是一个条件判断表达式,如判断硬盘使用率超过80% 当触发条件发生后会触发事件用于某个动作 动作 (action: 触发器的条件被触发时候的具体操作 可以是发送邮件、执行远程命令。可以单独设置也可以相互配合。 1、创建触发器 2、触发器表达式 表达式格式 {server:key.function(parameter)}operatorconstant {主机名监控key.函数(参数)}表达式常数 这个表达式在zabbix中是不需要手动编写的可以在zabbix配置页面选择
3、表达式函数
大多数函数使用秒作为参数使用#代表不同含义avgcountlastmin and max 函数支持额外的第二个参数time_shift时间偏移量这个参数允许从过去一段时间内引用数据
三、配置报警媒介
发送通知有多种方式邮件、短信、钉钉、微信、企微、飞书等。
发送通知就是发送消息消息的载体我们称为媒介所以要执行发送通知动作需要先创建一个报警媒介当现有媒介不能满足需求的时候。
1、媒介之邮件 2、媒介之钉钉告警微信等 钉钉微信飞书等都是通过 类型为脚本 的方式设置媒介类型
脚本参数参考如下 {ALERT.SENDTO} 消息的接收者 {ALERT.SUBJECT} 消息主题 {ALERT.MESSAGE} 告警信息 四、告警信息模板
信息模板根据不同的消息类型信息模板的内容也有不同。
1、配置模板 2、内容参数说明 故障信息参数 #####默认标题 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! #####消息内容 告警主机: {HOSTNAME1} 主机IP: {HOST.IP} 告警时间: {EVENT.DATE} {EVENT.TIME} 告警等级: {TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 监控取值: {ITEM.LASTVALUE} 告警项目: {TRIGGER.KEY1} 问题详情: {ITEM.NAME}:{ITEM.VALUE} 当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID: {EVENT.ID} 故障恢复信息参数 #####默认标题 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME} 已恢复 ! #####消息内容 告警主机: {HOSTNAME1} 主机IP: {HOST.IP} 恢复时间: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持续时间: {EVENT.AGE} 告警等级: {TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 监控取值: {ITEM.LASTVALUE} 告警项目: {TRIGGER.KEY1} 问题详情: {ITEM.NAME}:{ITEM.VALUE} 当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID: {EVENT.ID} 五、配置用户群组及用户
用户与报警媒介相关联只有用户对服务器群组有读取权限才能发送告警通知。
通过用户群组配置相关服务器群组读、写权限用户继承群组权限。
1、用户群组 2、用户 六、配置动作
1、动作 2、动作步骤配置说明
默认的步骤是1-3,也即是从1开始到3结束。一旦故障发生就执行脚本发送给群组成员的用户。即使是故障持续1小时也只发送3此告警时间间隔为0秒
如果改成1-0 0表示无限制 无限制发送告警
间隔时间是默认持续时间60秒也就是1分钟1次如持续1小时发送60次告警。
如设置成3-5也就是持续3次也就是默认3*60180秒后才发送告警给用户。
七、脚本
1、钉钉脚本
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import osheaders {Content-Type: application/json;charsetutf-8}
#api_url https://oapi.dingtalk.com/robot/send?access_token 这里填写钉钉机器人地址 #填入刚刚复制的webhook
api_url sys.argv[1]
def msg(text):json_text {msgtype: text,text: {content: text},at: {atMobiles: [15901402212 #填入号码会相应号码的人],isAtAll: True # True会所有人}}print requests.post(api_url,json.dumps(json_text),headersheaders).contentif __name__ __main__:text sys.argv[2]msg(text)2、企微脚本
[rootzabbix-server alertscripts]# cat EN-WeChat.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import osheaders {Content-Type: application/json;charsetutf-8}
api_url sys.argv[1]
def msg(text):json_text {msgtype: text,text: {content: text},}print requests.post(api_url,json.dumps(json_text),headersheaders).contentif __name__ __main__:text sys.argv[2]msg(text)3、微信脚本
注需要建立相关redis服务、微信告警服务等直接使用脚本是不成功的。
[rootzabbix-server alertscripts]# cat weixin.sh
#!/bin/bash
cd /etc/zabbix/alertscripts/
to$1
str$2
body$3
hostecho $str |awk -F [:] {print $2}
keycat /proc/sys/kernel/random/uuid
echo $0 /etc/zabbix/alertscripts/1.log
echo $to /etc/zabbix/alertscripts/1.log
echo $str /etc/zabbix/alertscripts/1.log
echo $body /etc/zabbix/alertscripts/1.log
echo $host /etc/zabbix/alertscripts/1.log
echo $key /etc/zabbix/alertscripts/1.log
#/bin/sh /etc/zabbix/alertscripts/send-alarm.sh 2 告警主机$host\n告警主题: $str\n告警内容$body zabbix $1 $key 0 $str
./send-alarm.sh 2 告警主机$host\n告警主题: $str\n告警内容$body yunwei-zabbix $1 $key 0 zabbix-test9 告警内容:test-11199[rootzabbix-server alertscripts]# cat send-alarm.sh
#!/bin/shredisclient/usr/bin/redis-cli
#redisclient/data/server/redis/bin/redis-cli
#redisclient/usr/bin/redis-cli
redis_slave_server
redis_slave_port
redis_master_server
redis_master_portfunction UpdateRedisSlaveAddr(){local s_addr$1local s_port$2for ser in ${sentinel_addr[]}dolocal info${redisclient} -h $s_addr -p $s_port SENTINEL slaves mymasterredis_slave_serverecho $info | awk -F {print $4}redis_slave_portecho $info | awk -F {print $6}if [ -n $redis_slave_server ]thenbreakfidone
}function UpdateRedisMasterAddr(){local s_addr$1local s_port$2for ser in ${sentinel_addr[]}dolocal info${redisclient} -h $s_addr -p $s_port SENTINEL get-master-addr-by-name mymasterredis_master_serverecho $info | awk -F {print $1}redis_master_portecho $info | awk -F {print $2}if [ -n $redis_master_server ]thenbreakfidone
}#{notifyType:3,level:1,host:10.0.333333333,subType:cost,detail:告警时间2018-06-07 17:45:918\n广告主测试更新流\n计划测试审核Bann555554er\n订单test\n告警内容目标值已达到10.0%(7990)目标值已达到10.0%(7990),department:1,title:order 190999 cost 告警,key:20180621113123,status:0}if [ $# ! 8 ]
thenecho Parameter Erorr!echo eg: $0 NOTIFYTYPE LEVEN SUBTYPE DEPARTMENT KEY STATE TITLE DETAILexit
fidatedatenotify_type$1
level1
sub_type$3
depart$4
key$5
state$6
title$7
detail$2
hosthostname
echo $detail /data/z.log;
echo $detail /etc/zabbix/alertscripts/detail.log
sed -i s/\r//g /etc/zabbix/alertscripts/detail.log
detail_file/etc/zabbix/alertscripts/detail.log
# keyword4ec | awk -F 告警内容 {print $2} | awk -F \\\r\\\n {print $1} | awk -F : {print $2}keyword4cat $detail_file | awk -F 告警内容 {print $1} |awk -F : {print $3}keyword3cat $detail_file | awk -F 告警时间: {print $2} | awk -F 告警 {print $1}keyword1cat $detail_file | awk -F 告警等级: {print $2} | awk {print $1}keyword5cat $detail_file | awk -F 告警信息: {print $2} | awk -F 告警 {print $1}keyword2cat $detail_file | awk -F 当前状态: {print $2} | awk {print $1} | awk -F : {print $1}#detail_info\keyword1\:\${keyword1}\,\keyword2\:\${keyword2}\,\keyword3\:\${keyword3}\,\keyword4\:\${keyword4}\,\keyword5\:\${keyword5}\
detail_info\detailLevel\:\${keyword1}\,\detailType\:\${keyword2}\,\detailTime\:\${keyword3}\,\detailPostion\:\${keyword4}\,\detailBusiness\:\${keyword5}\
#detail\\
####info####
#故障等级{{keyword1.DATA}}
#故障类型{{keyword2.DATA}}
#故障时间{{keyword3.DATA}}
#故障定位{{keyword4.DATA}}
#所属业务{{keyword5.DATA}}
############ #info{\notifyType\:$notify_type,\level\:$level,\host\:\$host\,\subType\:\$sub_type\,\detail\:\$detail\,\department\:$depart,\title\:\$title\,\key\:\$key\,\status\:$state}
info{\notifyType\:$notify_type,\level\:$level,\host\:\$host\,\subType\:\$sub_type\,$detail_info,\department\:$depart,\title\:\$title\,\key\:\$key\,\status\:$state}
#info{\notifyType\:$notify_type,\level\:$level,\host\:\$host\,\subType\:\$sub_type\,\detail\:$detail,$detail_info,\department\:$depart,\title\:\$title\,\key\:\$key\,\status\:$state}
echo $info /data/z.logsentinel_addr(192.168.1.165 192.168.1.166 192.168.1.146)
UpdateRedisMasterAddr $sentinel_addr 26502
echo Get Master: $redis_master_server $redis_master_portkeyalarm:list
echo lpush $key $info
result${redisclient} -h $redis_master_server -p $redis_master_port lpush $key $info
echo $result /data/z.log