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}故障!

告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

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

等一小会儿,查看面板报警信息

 

确认已经报警

 查看钉钉报警信息:

 ------------

随便记得,可能有错。多次修改

 

posted @ 2020-06-18 16:57  5444de  阅读(5900)  评论(0编辑  收藏  举报