【三】Zabbix监控并且实现各种报警(详细)

每个被监控节点安装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

image

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))

image
[root@zabbix-master alertscripts]# chmod +x mail.py

image

4)配置好脚本后,用命令发送邮件测试

image
image
邮箱发送完成!

5)创建报警媒介

默认的报警媒介类型有3种,我们可以创建一个名为“邮箱”的媒介类型,以脚本的方式进行创建,脚本名称为mail.py。

脚本参数添加两项一个是{ALERT.SENDTO}发送给谁的,{ALERT.SUBJECT},还有一个是{ALERT.MESSAGE}发送的内容。

image

image

image

给用户添加报警媒介时指定严重性级别

image

image

创建邮件报警就已经完成初步阶段,触发报警请往下看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'))

image

3)测试发送微信信息

[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-master alertscripts]# ./weixin.py 企业微信号 'test'

4)添加报警媒介类型

创建一个名为“微信报警”的媒介类型,以脚本的方式进行创建,脚本名称为 weixin.py。

脚本参数添加两项一个是{ALERT.SENDTO}发送给谁的,还有一个是{ALERT.MESSAGE}发送的内容。

image

image

注:将两个常用报警方式添加好之后,接下来就可以创建触发器和动作来实现报警。

创建主机及web主页监控

这是我们前面配置好的nginx高可用反向代理的web主页,直接监测VIP。

image

先创建一台被监控主机

image

image

添加一个web场景

image
image
image

创建触发器

image
image

创建动作
注:当条件满足触发器时——实现的动作

image
image
image

注:我们这里选择的是微信报警方式,邮件报警则选择“仅送到:邮件报警”

image

测试报警

然后我们查看一下监控的数据(检测中->web检测),当我们看到响应代码为200时表示检测成功了。

image

接下来模拟主页访问不了,是否触发报警。

[root@web1 html]# rm -rf index.html

image

当HTTP状态码不是200时,则触发报警,请自行了解HTTP状态码。

image

此时告警信息已经发送到我们的企业微信里了,恢复之后也会发送一条恢复信息,请自行实验。

image

到此就完成了邮件(邮件自行测试)和微信报警。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现监控Nginx并发送邮件报警,需要进行以下步骤: 1. 在Nginx服务器上安装zabbix-agent; 2. 在zabbix服务器上配置Nginx监控项; 3. 在zabbix服务器上设置触发器,并将触发器关联到操作; 4. 在zabbix服务器上配置邮件报警操作。 具体步骤如下: 1. 在Nginx服务器上安装zabbix-agent 在Nginx服务器上执行以下命令安装zabbix-agent: ``` sudo apt-get update sudo apt-get install zabbix-agent ``` 然后编辑zabbix-agent的配置文件`/etc/zabbix/zabbix_agentd.conf`,修改以下参数: ``` Server=<zabbix_server_ip> ServerActive=<zabbix_server_ip> Hostname=<nginx_server_hostname> ``` 其中,`<zabbix_server_ip>`为zabbix服务器的IP地址,`<nginx_server_hostname>`为Nginx服务器的主机名。 修改完成后,重启zabbix-agent服务: ``` sudo systemctl restart zabbix-agent ``` 2. 在zabbix服务器上配置Nginx监控项 在zabbix服务器上进入Web界面,在“配置”->“主机”中添加Nginx服务器,并在“模板”中选择“Template Nginx”。 然后在“配置”->“模板”中找到“Template Nginx”,进入模板详情页,在“应用”中添加一个新的应用,名称为“Nginx”。 在“Nginx”应用中添加一个新的监控项,名称为“Nginx status”,键值为“nginx.status[active]”。 保存配置后,等待一段时间,zabbix服务器会自动发现Nginx服务器,并开始监控Nginx状态。 3. 在zabbix服务器上设置触发器,并将触发器关联到操作 在“配置”->“触发器”中添加一个新的触发器,使用以下表达式: ``` {<nginx_server_hostname>:nginx.status[active].last()}=0 ``` 其中,`<nginx_server_hostname>`为Nginx服务器的主机名。 保存触发器后,进入触发器详情页,在“操作”中添加一个新的操作,选择“发送邮件”为动作。 4. 在zabbix服务器上配置邮件报警操作 在“管理”->“报警媒介类型”中添加一个新的媒介类型,类型为“Email”,并填写SMTP服务器、端口、用户名、密码等信息。 然后在“配置”->“动作”中编辑之前创建的触发器操作,选择“默认收件人”为收件人,并在“消息”中填写邮件内容。 保存配置后,当Nginx状态异常时,zabbix服务器会自动发送邮件报警

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值