1、部署Zabbix 3.4
添加源配置
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
安装相关软件
yum install zabbix-server zabbix-web zabbix-server-mysql zabbix-web-mysql mariadb-server mariadb -y 注:如果Server端也需要监控则需要安装zabbix-agent
修改zabbix的PHP前端配置文件
#vi /etc/httpd/conf.d/zabbix.conf <IfModule mod_php5.c> php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 php_value date.timezone Asia/Shanghai </IfModule>
初始化数据库配置
注意:创建数据库时务必指定character,否则可能导致告警信息中文显示乱码
shell> mysql -uroot -p<root_password> mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>'; mysql> quit;
导入模型和数据
zcat /usr/share/doc/zabbix-server-mysql-3.4.2/create.sql.gz | mysql -uzabbix -D zabbix -p zabbix
修改zabbix配置文件,编辑数据库信息
# vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=<password>
启动zabbix server并设置开机启动
# systemctl start zabbix-server # systemctl enable zabbix-server
启动httpd服务
# systemctl start httpd
浏览器访问,并进行安装
http://ipaddr:80/zabbix
2、自定义机器人
钉钉提供了一个 webhook 地址,https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx。
在钉钉中,点击机器人管理,申请机器人,并与通知群绑定,保存webhook地址即可
3、插件下载
[url href=http://pan.cloudcared.cn/f/463e194e1592416aa327]个人网盘[/url]
全站密码:cloudcared.cn
下载完成后,您可以直接在Linux中执行该程序进行测试。
通过下面方法,可以快速验证自定义机器人是否可以正常工作:
./golang-zabbix-robot-64 -webhook=https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx
4、部署程序
解压该插件后,给予x执行权限,重命名为dingding,并移动至zabbix存放脚本的目录
unzip golang-zabbix-robot-64.zip mv unzip golang-zabbix-robot-64 dingding && chmod +x dingding
查看zabbix存放脚本的位置:
cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath=
将脚本移动至zabbix目录
mv /root/dingding /usr/lib/zabbix/alertscripts/
创建/tmp/dingding.log 并更改属主为zabbix
5、创建报警媒介
添加钉钉告警脚本,并添加脚本参数
-webhook=https://oapi.dingtalk.com/robot/send?access_token=03bf84cbcc6f2869f1b57e7a5ff8ec72f7af157b2682c4e1fd608d2db0f10bd6 -msg={ALERT.MESSAGE} -url=http://172.20.8.12/zabbix -log=/tmp/dingding.log
其中
-webhook:为钉钉机器人的webhook
-msg:为zabbix定义的告警message
-url:为zabbix的调用url
-log:为记录日志,对应与zabbix server的日志文件
6、创建动作
默认告警信息及恢复消息
<?xml version="1.0" encoding="UTF-8" ?> <root> <from>{HOSTNAME1}</from> <time>{EVENT.DATE} {EVENT.TIME}</time> <level>{TRIGGER.SEVERITY}</level> <name>{TRIGGER.NAME}</name> <key>{TRIGGER.KEY1}</key> <value>{ITEM.VALUE}</value> <now>{ITEM.LASTVALUE}</now> <id>{EVENT.ID}</id> <ip>{HOST.IP}</ip> <url>这里是点击报警消息可以访问的链接地址</url> <age>{EVENT.AGE}</age> <status>{EVENT.STATUS}</status> <acknowledgement> {EVENT.ACK.STATUS} </acknowledgement> <acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory> </root>
<?xml version="1.0" encoding="UTF-8" ?> <root> <from>{HOSTNAME1}</from> <time>{EVENT.DATE} {EVENT.TIME}</time> <level>{TRIGGER.SEVERITY}</level> <name>{TRIGGER.NAME}</name> <key>{TRIGGER.KEY1}</key> <value>{ITEM.VALUE}</value> <now>{ITEM.LASTVALUE}</now> <id>{EVENT.ID}</id> <ip>{HOST.IP}</ip> <color>FF4A934A</color> <url>http://zabbix.gogen.cn</url> <age>{EVENT.AGE}</age> <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime> <status>OK</status> </root>