Zabbix云告警

前面的文章里,我们已经配置好了Server和Agent,并且server能够自动发现agent。

邮件告警的前提:你已经配置好了server和agent之间的关系,server能够从agent抓取数据(能够监控到客户端)

 

在zabbix的使用中,最重要的一点就是完善的报警机制,作为监控平台,需要时刻关注机器和服务的运行状态,更重要的是发现故障之后需要及时的报警给相关人员,早点发现问题,将隐患消除在未然阶段。这样才能保证服务的稳定运行。

报警的方式是多种多样的,微信、短信和邮件报警是我们比较常见的方式。而且报警的频率和策略直接影响着运维人员的重视程度和检错效率。如果整个报警列表中都是一些无关痛痒的提示、轻度警告。而他们的发送频率又特别的高,则非常容易错过真正关键的报警。
报警涉及的触发器(trigger)一般包括以下几个方面:
(1)服务器的基本状态:磁盘容量、内存大小、cpu的负载;
(2)基础服务状态:web服务器(nginx、apache)的状态,数据库的状态(mysql、oracle、nosql等);
(3)应用服务器状态:应用服务器的可用性以及负载状态;

由于zabbix-server配置在虚拟机上。所以物理机需要设置MASQUERADE开启保证虚拟机可以上网。

[root@foundation81 kiosk]# iptables -t nat -I POSTROUTING -s 172.25.81.0/24 -j MASQUERADE

 虚拟机上添加网关

 

面对成千的服务器告警消息,一个平台的管理尤为重要。这里实验选用OneAlert云告警平台。OneAlert 将多种监控的告警信息集中处理,对告警消息有效区分,合理的告警处理流程以及事后可靠的告警分析,让团队的工作效率提升明显。

<1>通过查看zabbix_server.conf文件找到AlertScriptsPath参数

<2>下载oneitsm_zabbix_release-1.2.0.tar.gz软件并解压到上述目录下面

<3>安装该软件

登录OneAlert页面,在配置-->应用下添加zabbix应用。

添加完之后可以找到应用key

 

[root@zabbix-server alertscripts]# cd oneitsm

[root@zabbix-server oneitsm]# cd bin/

[root@zabbix-server bin]# ./install.sh e4d325d1-d4bc-d15b-011f-15d329906d31   安装,后面跟的是zabbix的应用key
./log.sh: line 6: /usr/lib/zabbix/alertscripts/oneitsm/bin/oneitsm.conf: No such file or directory
start to create config file...
Zabbix管理地址: http://172.25.81.11/zabbix
Zabbix管理员账号: Admin
Zabbix管理员密码:

 

<4>在zabbix监控网页上进行配置:

禁用除了oneitsm media之外的报警媒介

管理-->报警媒介类型

可以在onnealert页面设置告警通知策略,默认第一时间微信通知

微信通知必须绑定公众号以接收微信告警通知

测试:

关闭任一个zabbix-agent端的服务

在zabbix的web端可以监测到该问题:

微信可以收到告警通知:

认领该通知并解决:

onnealert页面也可以查看该告警的处理情况:

 

### 配置 Zabbix 使用阿里云进行电话告警 #### 修改Zabbix Server配置文件 为了使Zabbix能够调用自定义的通知脚本,在服务器上编辑`zabbix_server.conf`文件,指定通知脚本路径。对于此操作,需打开该配置文件并找到对应选项取消注释以及调整其值指向实际存储脚本的位置。 ```bash [root@localhost alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts //第466行,去除注释并修改 ``` 确保上述更改已保存,并重启Zabbix服务以便应用新的设置[^1]。 #### 安装依赖库和支持工具 由于计划利用Python编写发送请求给Aliyun API的程序来触发语音呼叫警告,因此先安装必要的软件包: ```bash yum install python-y pip install aliyun-python-sdk-core pip install aliyun-python-sdk-dysmsapi ``` 这些命令会下载并安装处理HTTP请求所需的Python模块以及其他必需的支持组件[^2]。 #### 编写发送电话告警的Shell/Python脚本 创建一个新的Python脚本来构建向阿里云发起API调用来执行电话提醒的功能。下面是一个简单的例子说明如何完成这项工作;请注意替换其中占位符为真实的AccessKey ID, Access Key Secret 和其他参数。 ```python #!/usr/bin/env python3 import json from aliyunsdkcore.client import AcsClient from aliyunsdkdysmsapi.request.v20170525.SingleCallByTtsRequest import SingleCallByTtsRequest def send_telephone_alert(phone_numbers, tts_code): client = AcsClient('<your-access-key-id>', '<your-access-key-secret>', 'cn-hangzhou') request = SingleCallByTtsRequest() request.set_accept_format('json') request.set_PhoneNumbers(phone_numbers) request.set_TtsCode(tts_code) response = client.do_action_with_exception(request).decode() return json.loads(response) if __name__ == "__main__": result = send_telephone_alert("<target-phone-number>", "<tts-template-code>") print(result) ``` 这段代码实现了通过阿里云的服务拨打特定号码并向接收者播放预设好的语音消息的能力。记得赋予这个新编写的脚本可执行权限,并将其放置于之前所设定的`AlertScriptsPath`目录下。 #### 设置媒体类型和动作规则 登录到Web界面下的Zabbix前端控制台,导航至“Configuration -> Media types”,点击右上方绿色加号按钮添加一种新型媒介形式——即刚才开发出来的用于打电话报警的方法。填写名称、类型选择“Script”,接着输入刚刚建立的那个Python脚本的名字作为命令字段的内容。 之后转到“Configuration -> Actions”页面去新建或编辑现有的响应策略,关联起先前定义过的媒体种类与目标联系人列表中的成员们。当满足一定条件时就会自动激活这套机制从而达到预期效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值