Centos7.0 安装Zabbix4.0对接钉钉消息报警完整详细

目录

 

Centos7.0 安装Zabbix4.0对接钉钉消息报警

配置zabbix的yum源

1.rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

 

更换zabbix的清华源

安装zabbix-server、mysql、zabbix-agent

 

找到vim/etc/zabbix_server.conf里alertscripts的路径

/usr/lib/zabbix/alertscripts


前言

随着科技的进步,运维监控在软件中已经变的非常重要的一个环节,自动监控已经取代人为的监控,可以第一时间收到报警信息,解决问题。

Centos7.0 安装Zabbix4.0对接钉钉消息报警

配置zabbix的yum源

1.rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

 

更换zabbix的清华源

[zabbix]
name=Zabbix Official Repository - $basearch
#baseurl=http://repo.zabbix.com/zabbix/3.4/rhel/7/$basearch/
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

#[zabbix-non-supported]
#name=Zabbix Official Repository non-supported - $basearch 
#baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
#enabled=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
#gpgcheck=1    

2.yum clean all

3.yum makecache

安装zabbix-server、mysql、zabbix-agent

4.依赖环境:yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 javacc.noarch  javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*

yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash

注意:安装时若没有安装PHP环境,会自动安装PHP相关的包和httpd,因为zabbix的Web管理页面是PHP写的

5.yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

6.安装出现问题如下对应执行

出现fping 执行 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
出现libiksemel.so.3 执行yum install -y http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/iksemel-1.4-6.sdl7.x86_64.rpm

 7.进入MySQL数据库并设置开机启动,创建数据库实例,授权

 8.mysql -u root -p 输入密码进入mysql数据库

 9.select user,host from mysql.user;   #有空用户名称占用导致本地无法登录远程可登录

drop user ''@localhost;  #删除空用户  
password
mysql> create database zabbix character set utf8 collate utf8_bin;  # 创建一个数据库
            CREATE USER 'zabbix'@'%' IDENTIFIED BY '123456'

mysql> grant all privileges on *.* to 'zabbix'@'%';# 授权zabbix用户拥有zabbix数据库的所有权限
mysql>alter user 'zabbix'@'%' identified with mysql_native_password by '123456';修改密码
mysql>flush privileges;  # 刷新数据库权限表     

mysql> quit

10.导入初始模式和数据

mysql -u zabbix -p zabbix < zabbix.sql  mysql导入表
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p

Zabbix导入MySQL数据库报错ERROR 1046 (3D000) at line 1: No database selected

解决办法:
编辑要导入的数据库文件
vim /usr/share/doc/zabbix-server-mysql-4.0.7/create.sql.gz

# 在第一行加上
use zabbix;
 

11.配置zabbix-server的配置文件zabbix_server.conf

vim /etc/zabbix/zabbix_server.conf

# DBPassword=password(124行)

DBHost=localhost         # 数据主机名
DBName=zabbix           # 数据库实例
DBUser=zabbix             # 数据库里创建的用户名
DBPassword=zabbix     # 数据库里创建的密码
 

12.编辑Apache的配置文件,设置正确的时区

vim /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga(20行)
改成 php_value date.timezone Asia/Shanghai

编辑httpd
vi /etc/httpd/conf/httpd.conf
ServerName www.zabbixyk.com      #修改为主机名
DirectoryIndex index.html index.php   # 添加首页支持格式 

编辑配置php,配置中国时区
vi /etc/php.ini
date.timezone = PRC   # 配置时区
systemctl start httpd   #启动并加入开机自启动httpd
systemctl enable httpd

13.重新启动 zabbix-server、zabbix-agent 和 httpd 并设置为开机自启动

systemctl restart zabbix-server zabbix-agent httpd

systemctl enable zabbix-server zabbix-agent httpd

在浏览器输入地址http://服务器ip/zabbix/setup.php,出现欢迎界面,点击下一步,进行 zabbix 的页面初始化配置

14.输入用户名密码:Admin 密码:zabbix 登录zabbix界面设置,如下是登录界面

15.修改语言,改成中文,如下图

16.添加主机 

17.创建应用集 

18.创建监控项

19.创建触发器 

20. 添加报警媒介

21.发送消息设置

22. 添加报警媒介类型 (这里脚本名称dingding.py和服务器配置里/usr/lib/zabbix/alertscripts下面配置的脚本名称要一致)

23.创建动作器

24.添加操作模板,设置操作

25.恢复操作设置模板

26.更新操作设置模板

27.服务器添加钉钉脚本

找到vim/etc/zabbix_server.conf里alertscripts的路径

/usr/lib/zabbix/alertscripts

#!/usr/bin/python
# -*- coding: utf-8 -*-
#zabbix钉钉报警
#!/usr/bin/env python
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
#api_url后跟告警机器人的webhook
api_url = "这里地址是下图钉钉Webhook:地址,复制到这里就可以"
def msg(text):
   json_text= {
    "msgtype": "text",
    "text": {
        "content": text
    }
   }
   print(requests.post(api_url,json.dumps(json_text),headers=headers).content)
if __name__ == '__main__':
   text = sys.argv[1]
   msg(text)

28.创建好后执行chmod+x dingding.py给予执行权限,然后输入./dingding.py测试会提示发送失败,提示里面有个IP需要复制到钉钉群IP管理如下 图,添加好后,再次发送./dingding.py测试,群里会收到如下信息,

前面用到的模板在zabbix界面添加钉钉报警的模板

报警媒介,脚本类型
{ALERT.MESSAGE}
[ZABBIX标题:报警触发] 当前状态:{TRIGGER.STATUS},服务器:{HOSTNAME1} 发生:{TRIGGER.NAME}故障!

ZABBIX告警通知
告警状态:【{TRIGGER.STATUS}】
告警主机:【{HOST.NAME}】
主机地址:【{HOST.IP}】
告警时间:【{EVENT.DATE} {EVENT.TIME}】
告警等级:【{TRIGGER.SEVERITY}】
告警名称:【{TRIGGER.NAME}】
当前状态:【{ITEM.NAME}:{ITEM.KEY}={ITEM.VALUE}】
事件代码:【{EVENT.ID}

报警恢复] 当前状态:OK,服务器zabbix_server 人员 瓦斯 数据更新恢复!

ZABBIX告警恢复
恢复状态:【{TRIGGER.STATUS}】
恢复主机:【{HOST.NAME}】
主机地址:【{HOST.IP}】
恢复时间:【{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}】
告警等级:【{TRIGGER.SEVERITY}】
告警名称:【{TRIGGER.NAME}】
当前状态:【{ITEM.NAME}:{ITEM.KEY}={ITEM.VALUE}】
事件代码:【{EVENT.ID}】

29.zabbix4.0 agent 客户端安装(如果监控的是本机就不用另外安装客户端了,如果不是本机需要在监控的主机上安装客户端,监控的如果是Windows系统,需要在Windows系统主机上安装Windows版的客户端安装默认就可以,设置跟linux设置一样)

下载rpm安装包

rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

下载rpm安装包

yum install zabbix-agent -y 

修改zabbix-agent配置文档

vim /etc/zabbix/zabbix_agentd.conf
 
PidFile=/var/run/zabbix/zabbix_agentd.pid    #pid文件的存放位置
LogFile=/var/log/zabbix/zabbix_agentd.log    #日志存放的路径
LogFileSize=10                               #10表示日志大小为10M时,进行日志切割
Server=proxy的IP地址                         # agent被动模式下,指向proxy或server地址,
ServerActive=                                # agent主动模式下,指向proxy或server地址
Hostname=zabbix-proxy                        # Hostname必须与主机名一致

设置开机启动:
systemctl enable zabbix-agent

30.如果配置成功后点击最新数据输入主机 应用集可以查到添加的监控项最新数据,历史记录,如果监控到数据断传就会触发报警。

总结,本教程是监控数据采集情况,通过文件更新时间来监控触发报警,教程中有不懂的可以随时咨询我,希望能够给你们带来帮助。

猜你喜欢

转载自blog.csdn.net/qq_37796113/article/details/114252912