zabbix5.0安装,配置邮件报警,钉钉报警
1.二进制安装zabbix5.0,在虚拟机本地部署
环境:
本地虚拟机为zabbix-server
阿里云39.98.190.144 安装zabbix-agent
注意:
需要打开常用端口和实验涉及到的端口,都关闭防火墙,selinux啥的
zabbix-agent的配置文件中需要填写zabbix-server的公网IP地址,才能使zabbix-agent将数据主动上传到server,可以设置多个server-active,server
虚拟机环境:
zabbix-server:192.168.236.128,安装zabbix-server
[root@master ~]# date
2020年 06月 18日 星期四 16:06:20 CST
[root@master ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
确保关闭selinux,firewalld
1.1 选择安装环境,以zabbix官网为标准,安装可参考官网
具体安装官网已呈现,有几个步骤比较模糊,记录下
1.2 装 zabbix rpm 源,
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all
可设置阿里云zabbix源,下的快
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
启用 zabbix 前端源,修改/etc/yum.repos.d/zabbix.repo,将[zabbix-frontend]下的 enabled 改为 1
为前端配置PHP,修改 zabbix 的 php 配置文件的时区,为亚洲上海 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
其他按照官网的就因该可以了
--------------------------
安装之后页面:
二.
1.实验nginx挂了将告警信息发送到邮箱
2.实验nginx挂了将告警信息发送到钉钉
---
1.1添加主机到zabbix-server,,并添加nginx模板
1.2添加报警媒介,类型为Email,这里查了很多博客,全是以mailx为主的,需要配置脚本,其实我觉得直接用zabbix自己的email就可以,以163邮箱为例,先在web界面上创建一个email报警媒介,
详细信息:
163授权码:
点击更新,在点击测试,给自己发个邮件,如果完全正确的话,会显示邮件发送成功,
发邮件,给自己发个测试
看看邮箱
1.3.现在是这样的,以nginx为例,假设nginx服务停止了,我们要通过配置里面的动作选项,经过动作里面的设置,让指定用户通过报警媒介发送邮件给指定负责人,刚刚配置好了报警媒介,现在配置动作:
配置操作:
操作和恢复操作是一样的:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
1.4 现在配置好了动作,最后需要配置指定用户发送邮件给负责人,指定用户在动作选项已经选择超级管理员Admin,现在选择user setting配置
1.5在agent上配置安装nginx,
~]# yum install nginx -y
重新启动,等一会儿在关闭,给zabbix缓冲时间
~]# systemctl restart nginx
~]# systemctl stop nginx
查看界面
查看邮箱:
successssssssssssssssssssssss
2.实验nginx挂了将告警信息发送到钉钉
先添加钉钉机器人, 将Webhook复制,填写到下面脚本中,,,
还需设置安全设置,我这只把zabbix-server地址填进去,这样就禁止其他IP使用webhook
这里使用的python脚本,初学python不熟,抄的别人的,无呵呵
2.1 配置钉钉机器人脚本,钉钉Webhook代码:
#!/usr/bin/python # -*- coding: utf-8 -*- import requests,json,sys,os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "webhook地址" def msg(text): json_text= { "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ "186..." #需要@群里谁 ], "isAtAll": True #是否全部@,True为是,False为否 } } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text)
在zabbix-server的配置文件找到 ,进入对应的文件目录/usr/lib/zabbix/alertscripts,这里是存放zabbix脚本的地方,web端可以通过执行此目录修下的脚本,将脚本内容copy到dingding.py,给他执行权限 chmod +x dingding.py
记住脚本放置位置:
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@master alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@master alertscripts]# ll
总用量 8
-rwxr-xr-x 1 root root 1008 6月 18 15:02 dingding.py
2.2 测试钉钉脚本:
查看钉钉:
2.3配置报警媒介
在web端配置钉钉脚本媒介
脚本参数:
{ALERT.MESSAGE}
2.4配置动作
接下来就是配置动作,和邮件一样,只需要更改报警媒介为创建好的“钉钉报警”,最后添加User setting中的报警媒介,和之前一样,在添加一个顶顶报警的
2.5配置用户
配置用户Admin发送邮件:
测试:
在监控的客户端停止nginx
node1 ~]# systemctl stop nginx
等一小会儿,查看面板报警信息
确认已经报警
查看钉钉报警信息:
------------
随便记得,可能有错。多次修改