一、 更改主机名
[root@localhost ~]# hostnamectl set-hostname zabbix.bystp.com
二、 关闭防护墙及SELINUX
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
编辑/etc/selinux/config文件关闭SELINUX
三、 配置阿里源及软件源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
创建zabbix源repo文件
四、 安装zabbix,mariadb
[root@zabbix ~]# yum install zabbix-server-mysql zabbix-get
[root@zabbix ~]# yum install mariadb-server mariadb
四、 开启mariadb服务
[root@zabbix ~]# systemctl start mariadb-server
[root@zabbix ~]mysql_secure_installation
五、 创建数据库
create database zabbix charset 'utf8';
grant all on zabbix. to zabbix@localhost identified by '123456';
flush privileges;
六、 导入数据库
[root@zabbix ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-4.2.1
/usr/share/doc/zabbix-server-mysql-4.2.1/AUTHORS
/usr/share/doc/zabbix-server-mysql-4.2.1/COPYING
/usr/share/doc/zabbix-server-mysql-4.2.1/ChangeLog
/usr/share/doc/zabbix-server-mysql-4.2.1/NEWS
/usr/share/doc/zabbix-server-mysql-4.2.1/README
/usr/share/doc/zabbix-server-mysql-4.2.1/create.sql.gz
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix
[root@zabbix ~]# cp /usr/share/doc/zabbix-server-mysql-4.2.1/create.sql.gz create.sql.gz
[root@zabbix ~]# gunzip create.sql.gz
[root@zabbix ~]ls
anaconda-ks.cfg create.sql
[root@zabbix ~] mysql -uroot -p zabbix < create.sql
[root@zabbix ~]
七、 配置/etc/zabbix/zabbix_server.conf
ListenPort=10051
SourceIP=192.168.0.5
LogType=file
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
DebugLevel=3
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
八、开启服务
[root@zabbix ~] systemctl start zabbix-server
九、安装Zabbix web
[root@zabbix ~] yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml
[root@zabbix ~] yum install zabbix-web zabbix-web-mysql
十、 配置/etc/httpd/conf.d/zabbix.conf
[root@zabbix ~]# vi /etc/httpd/conf.d/zabbix.conf
Zabbix安装配置钉钉告警_第1张图片
十一、启动httpd
[root@zabbix ~]# systemctl start httpd
十二、访问http://192.168.0.5配置zabbix
十三、安装python库
[root@localhost alertscripts]# yum install epel-release
[root@localhost alertscripts]# yum install python-pip
[root@localhost alertscripts]# pip install requests
十四、配置python脚本
[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
[root@localhost alertscripts]# vi dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=e9f690a7e200ef36ee4015b9c2f5c64849baadc71d947d150e5be0b7d89d299a"
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/tmp/zabbix_dingding.log"):
f=open("/tmp/zabbix_dingding.log","a+")
else:
f=open("/tmp/zabbix_dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text))
f.close()
Zabbix安装配置钉钉告警_第2张图片
[root@localhost alertscripts]# chmod +x dingding.py
十五、测试python脚本
[root@zabbix alertscripts]# ./dingding.py asd 32d TEST
[root@zabbix alertscripts]
Zabbix安装配置钉钉告警_第3张图片
十六、配置python脚本权限
[root@localhost alertscripts]# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/dingding.py
[root@localhost alertscripts]# chmod +x /tmp/zabbix_dingding.log
[root@localhost alertscripts]# chown zabbix.zabbix /tmp/zabbix_dingding.log
十七、配置报警媒介类型
Zabbix安装配置钉钉告警_第4张图片
十八、配置用户报警媒介,收件人为手机号
Zabbix安装配置钉钉告警_第5张图片
十九、配置动作
Zabbix安装配置钉钉告警_第6张图片
Zabbix安装配置钉钉告警_第7张图片
Zabbix安装配置钉钉告警_第8张图片
Zabbix安装配置钉钉告警_第9张图片
操作:服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
消息内容:
{
报警主机:{HOST.NAME}
主机地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
报警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
报警信息:{TRIGGER.NAME}
报警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}

恢复操作
默认标题:服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
消息内容:
{
报警主机:{HOST.NAME}
主机地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
报警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
报警信息:{TRIGGER.NAME}
报警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
}

更新操作
默认标题:服务器:{HOST.NAME}: {TRIGGER.NAME}已更新!
消息内容:
更新人:{USER.FULLNAME}
时间:{ACK.DATE} {ACK.TIME}
更新信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
}