zabbix server
//docker zabbix-appliance
//docker run --name my-zabbix-server -p 80:80 -p 10051:10051 -e PHP_TZ="Asia/Shanghai" -d zabbix/zabbix-appliance:ubuntu-4.4.4
//docker exec -i -t my-zabbix-server /bin/bash
docker network create zabbix_net
docker run --name zabbix-server -t -e DB_SERVER_HOST="10.0.75.1" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="1" --network=zabbix_net -p 10051:10051 --restart unless-stopped -d zabbix/zabbix-server-mysql:centos-5.2-latest
docker run --name zabbix-web -t -e DB_SERVER_HOST="10.0.75.1" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="1" -e ZBX_SERVER_HOST="zabbix-server" -e PHP_TZ="Asia/Shanghai" --network=zabbix_net -p 80:8080 -d zabbix/zabbix-web-nginx-mysql:centos-5.2-latest
zabbix agent
//docker centos
docker run -d --name my_centos --privileged centos:7.5.1804 /sbin/init
docker exec -i -t my_centos /bin/bash
//zabbix源
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
//客户端
yum install zabbix-agent
systemctl enable zabbix-agent
systemctl start zabbix-agent
//docker zabbix agent
docker run --name zabbix-agent-centos1 -e ZBX_HOSTNAME="zabbix-agent1" -e PHP_TZ="Asia/Shanghai" -e ZBX_SERVER_HOST="172.17.0.2" -d zabbix/zabbix-agent:centos-4.4.4
server 配置腾讯云短信
//alpine
apk update
apk install py2-pip
//centos
yum install epel-release
yum install python2-pip
//ubuntu
apt-get install python-pip
//安装其他库
pip install qcloudsms_py
pip install pytz
zabbix配置
报警媒介类型:脚本tencent-sms.py,参数{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE}
动作:触发消息内容
{
"eventType":"action",
"eventName":"{EVENT.NAME}",
"hostName":"{HOST.NAME}",
"eventDate":"{EVENT.DATE}",
"eventTime":"{EVENT.TIME}",
"eventLevel":"{EVENT.SEVERITY}"
}
恢复消息内容
{
"eventType":"recovery",
"eventName":"{EVENT.NAME}",
"hostName":"{HOST.NAME}",
"eventDate":"{EVENT.RECOVERY.DATE}",
"eventTime":"{EVENT.RECOVERY.TIME}",
"eventLevel":"{EVENT.SEVERITY}"
}
python脚本()
位置:/usr/lib/zabbix/alertscripts/tencent-sms.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import json
import datetime
from pytz import timezone
from qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
phone = sys.argv[1]
title = sys.argv[2]
message = sys.argv[3]
jsonData = json.loads(message)
eventType = jsonData['eventType']
eventName = jsonData['eventName']
hostName = jsonData['hostName']
eventLevel = jsonData['eventLevel']
eventDateTime = jsonData['eventDate'] + " " + jsonData['eventTime']
# eventDate= jsonData['eventDate']
# eventTime = jsonData['eventTime']
utc = timezone('UTC')
beijing = timezone('Asia/Shanghai')
date_time = datetime.datetime.strptime(eventDateTime,'%Y.%m.%d %H:%M:%S')
time_utc = utc.localize(date_time)
time_beijing = time_utc.astimezone(beijing)
date_time_str = time_beijing.strftime('%H:%M:%S')
'''
with open ('/aa/1.txt', 'a') as file:
file.write('phone:' + phone + '\ntitle:' + title + '\nmessage:' + message
+ '\neventType:' + eventType + '\nhostName:' + hostName + '\neventName:' + eventName
+ '\neventDateTime:' + eventDateTime + '\nformatTime:' + date_time_str + '\neventLevel:' + eventLevel +'\n')
file.close()
'''
smsDate = date_time_str
smsServer = hostName
smsLevel = eventLevel
smsReason = eventName
if eventType == "action" :
template_id = 111
elif eventType == "recovery" :
template_id = 222
else :
template_id = 1111
appid = 111111
appkey = "abababababab"
phone_number = phone
sms_sign = "签名"
ssender = SmsSingleSender(appid, appkey)
params = [smsServer, smsDate, smsLevel, smsReason]
try:
result = ssender.send_with_param(86, phone_number,
template_id, params, sign=sms_sign, extend="", ext="")
except HTTPError as e:
print(e)
except Exception as e:
print(e)