每个被监控节点安装zabbix客户端
1)下载并安装zabbix源:
[root@nginx-master ~]# rpm -ivh https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
2)安装zabbix-agent代理软件:
[root@nginx-master ~]# yum install zabbix-agent -y
3)更改配置文件:
[root@nginx-slave ~]# vim /etc/zabbix/zabbix_agentd.conf ------------------------- 配置信息-------------------------------- 97 Server=192.168.115.0/24 #zabbix_server的IP 138 ServerActive=192.168.115.0/24 #zabbix_server的IP 149 Hostname=nginx-master #重要:主机名
4)启动zabbix客户端
[root@nginx-master ~]# systemctl start zabbix-agent [root@nginx-master ~]# systemctl enable zabbix-agent
注:这里只演示一个节点,其余的节点同理!
触发器实现邮件报警和微信报警
触发器的介绍
报警流程:定义条件---满足条件----马上触发---实现报警
实现邮件报警
1)过滤zabbix主配置文件
[root@zabbix-master ~]# grep '^[^#].*' /etc/zabbix/zabbix_server.conf
2)找到并进入AlertScriptsPath所对应的目录
[root@zabbix-master ~]# vim /etc/zabbix/zabbix_server.conf
3)在此目录下创建一个Python脚本
[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts [root@zabbix-master alertscripts]# vim mail.py
脚本信息如下:
#!/usr/bin/python #coding:utf-8 from email.mime.text import MIMEText from email.header import Header import smtplib import sys # 个人邮件信息,在邮箱设置里必须开启SMTP smtpaddr = 'smtp.163.com' myemail = 'xxxxx@163.com' # 注意:此密码是授权码如果是163的话 password = 'xxxx' # 第一是接收的邮件是什么,第二是邮件的主题,第三是正文(内容) recvmail = sys.argv[1] subject = sys.argv[2] content = sys.argv[3] msg = MIMEText("""%s"""%(content),"plain","utf-8") msg['Subject'] = Header(subject,'utf-8').encode() msg['From'] = myemail msg['to'] = recvmail try: server = smtplib.SMTP() server.connect(smtpaddr,"25") server.login(myemail,password) server.sendmail(myemail,recvmail.split(','),msg.as_string()) server.quit print("success") except Exception as e: print("fail:"+str(e))
[root@zabbix-master alertscripts]# chmod +x mail.py
4)配置好脚本后,用命令发送邮件测试
邮箱发送完成!
5)创建报警媒介
默认的报警媒介类型有3种,我们可以创建一个名为“邮箱”的媒介类型,以脚本的方式进行创建,脚本名称为mail.py。
脚本参数添加两项一个是{ALERT.SENDTO}发送给谁的,{ALERT.SUBJECT},还有一个是{ALERT.MESSAGE}发送的内容。
给用户添加报警媒介时指定严重性级别
创建邮件报警就已经完成初步阶段,触发报警请往下看web主页监测
实现微信报警
注:请自行创建企业微信,这里已经创建好了。
1)找到并进入AlertScriptsPath所对应的目录
[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts
2)在此目录下创建一个Python脚本
[root@zabbix-master alertscripts]# vim weixin.py ------------------------------脚本信息---------------------------- #!/usr/bin/env python # encoding: utf-8 import json import sys import urllib,urllib2 #需要三个变量corpid、corpsecret、agentid agentid = '企业微信的AgentId' corpid = '企业ID' corpsecret = '企业微信的Secret' #获取tocken,存在my_tocken里面 gettoken_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret token_file = urllib2.urlopen(gettoken_url) token_data = token_file.read().decode('utf-8') token_json = json.loads(token_data) my_token = token_json['access_token'] #利用获取到的tocken发送微信信息 touser=sys.argv[1] content=sys.argv[2] post_content={ "touser":touser, "agentid":agentid, "msgtype": "text", "text": { "content":content, } } json_content = json.dumps(post_content) url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' +my_token response = urllib2.urlopen(url,json_content) print(response.read().decode('utf-8'))
3)测试发送微信信息
[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts [root@zabbix-master alertscripts]# ./weixin.py 企业微信号 'test'
4)添加报警媒介类型
创建一个名为“微信报警”的媒介类型,以脚本的方式进行创建,脚本名称为 weixin.py。
脚本参数添加两项一个是{ALERT.SENDTO}发送给谁的,还有一个是{ALERT.MESSAGE}发送的内容。
注:将两个常用报警方式添加好之后,接下来就可以创建触发器和动作来实现报警。
创建主机及web主页监控
这是我们前面配置好的nginx高可用反向代理的web主页,直接监测VIP。
先创建一台被监控主机
添加一个web场景
创建触发器
创建动作
注:当条件满足触发器时——实现的动作
注:我们这里选择的是微信报警方式,邮件报警则选择“仅送到:邮件报警”
测试报警
然后我们查看一下监控的数据(检测中->web检测),当我们看到响应代码为200时表示检测成功了。
接下来模拟主页访问不了,是否触发报警。
[root@web1 html]# rm -rf index.html
当HTTP状态码不是200时,则触发报警,请自行了解HTTP状态码。
此时告警信息已经发送到我们的企业微信里了,恢复之后也会发送一条恢复信息,请自行实验。
到此就完成了邮件(邮件自行测试)和微信报警。
来源:https://www.cnblogs.com/l-hh/p/12530889.html