实践案例:Zabbix本地邮件服务+脚本实现故障邮件通知
source link: https://blog.51cto.com/shone/5341784
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
出现故障报警的时候,可以通过不同方式通知管理员进行故障处理,尽快恢复业务。Zabbix6.0.4 事件通知机制:邮件通知、短信通知、微信企业服务通知。
邮件通知又可分成多种方式:本地邮件服务器通知、本地邮件服务结合脚本通知、借助第三方提供的企业邮箱和授权码方式实现邮件通知等。但是目前好多第三方邮件服务商关闭了免费用户的Zabbix通知邮件发送转接功能,所以建议大家还是自建方式来完成,或者付费购买邮箱,要求服务商提供并保证授权码认证转发绝对可用,这样来保障实际生产环境中的Zabbix邮箱通知的稳定行和有效性。
本文在实验环境下实现本地邮件服务结合shell脚本实现Zabbix邮件通知。
1. 在Zabbix-Server上配置本地邮件服务
[root@CentOS84-IP18 ]#yum -y install mailx
[root@CentOS84-IP18 ]#mail -V
12.5 7/5/10
[root@CentOS84-IP18 ]#echo "zabbix test mail" | mail -s "zabbix" [email protected]
/usr/sbin/sendmail: No such file or directory
"/root/dead.letter" 9/223
. . . message not sent.
[root@CentOS84-IP18 ]#mail root
Subject: fdkafdla
Ctrl + D
Null message body; hope thats ok
/usr/sbin/sendmail: No such file or directory
"/root/dead.letter" 9/212
. . . message not sent.
#### 出现上面的错误是没有安装基本的postfix软件包或者没启动服务
[root@CentOS84-IP18 ]#yum -y install postfix
[root@CentOS84-IP18 ]#systemctl enable --now postfix
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
[root@CentOS84-IP18 ]#ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 100 127.0.0.1:25 0.0.0.0:*
LISTEN 0 100 [::1]:25 [::]:*
[root@CentOS84-IP18 ]#echo "zabbix test mail" | mail -s "zabbix" [email protected]
[root@CentOS84-IP18 ]#
2. 设置接收邮箱白名单
2.1 获取本地邮件服务和QQ接收邮箱通信信息
[root@CentOS84-IP18 ]#hostname
CentOS84-IP18
#### 特别提示,发两次这个邮件就会送到回复设备的邮件,内就有全部的发送邮箱格式可以提取出来!!!
[root@CentOS84-IP18 ]#echo "zabbix test mail" | mail -s "zabbix" [email protected]
[root@CentOS84-IP18 ]#echo "zabbix test mail" | mail -s "zabbix" [email protected]
You have new mail in /var/spool/mail/root
[root@CentOS84-IP18 ]#ll /var/spool/mail/root
-rw------- 1 root mail 6309 May 29 19:55 /var/spool/mail/root
## 下面这段有很多内容,稍微看下就能看到 [email protected] 是这台主机发出的带本地域名后缀的邮箱格式,这个地址可以加入到QQ邮箱白名单就可以接收到邮件了。
[root@CentOS84-IP18 ]#cat /var/spool/mail/root
........................
From MAILER-DAEMON Sun May 29 19:55:44 2022
Return-Path: <>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: by CentOS84-IP18.localdomain (Postfix)
id CC3738157C57; Sun, 29 May 2022 19:55:44 +0800 (CST)
Date: Sun, 29 May 2022 19:55:44 +0800 (CST)
From: [email protected] (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To: [email protected]
Auto-Submitted: auto-replied
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
boundary="A04BD8157C56.1653825344/CentOS84-IP18.localdomain"
Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>
............................
[root@CentOS84-IP18 ]#
2.2 设置白名单
为了后面Zabbix-server能正常发出邮件,QQ能收到,顺道一起加好zabbix账户的白名单
3. 告警脚本
3.1 脚本编写
/usr/lib/zabbix/alertscripts
[root@CentOS84-IP18 ]#find / -name zabbix_server.conf
/etc/zabbix/zabbix_server.conf
[root@CentOS84-IP18 ]#vim /etc/zabbix/zabbix_server.conf
### Option: AlertScriptsPath
# Full path to location of custom alert scripts.
# Default depends on compilation options.
# To see the default path run command "zabbix_server --help".
#
# Mandatory: no
# Default:
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@CentOS84-IP18 ]#vim /usr/lib/zabbix/alertscripts/mailx.sh
#!/bin/bash
#
#####################################################################
#Date: 2022-05-29
#FileName: /usr/lib/zabbix/alertscripts/mailx.sh
#Description: The Test Script
#Copyright (C):2022 All rights reserved
#####################################################################
MESSAGE=$(echo $2 | tr "\r\n" "\n")
SUBJECT=$(echo $3 | tr "\r\n" "\n")
MAILTO=$1
echo "$MESSAGE" | mail -s "$SUBJECT" $MAILTO
[root@CentOS84-IP18 ]#
[root@CentOS84-IP18 ]#chmod a+x /usr/lib/zabbix/alertscripts/mailx.sh
[root@CentOS84-IP18 ]#chown zabbix.zabbix /usr/lib/zabbix/alertscripts/mailx.sh
[root@CentOS84-IP18 ]#bash /usr/lib/zabbix/alertscripts/mailx.sh [email protected] "hello,shone welcome you Success!" "666666"
3.2 脚本发送邮件在接收端QQ邮箱验证
4. Zabbix -Server 的Web下配置
4.1 Zabbix Web创建报警媒介类型
报警媒介类型是一种给运维工程师发送消息通知的渠道,即当zabbix 的触发器触发一个事件后,怎么才能把这个 事件通过某些方式通知给运维工程师呢?那么媒介类型就起到这样的作用,媒介类型创建好之后,需要在每个账户 里面添加相应的收件配置,比如邮件类型的媒介类型要给zabbix账户添加邮箱,如果是微信类型的媒介类型那么就要在zabbix账户设置微信号,同样的到来,短信类型的媒介类型那就得给zabbix账户设置手机号用于接收报警消息内容。
管理-->报警媒介类型-->创建媒体类型
脚本名称:mailx.sh 也可以用phyton 路径是在zabbix-server的conf文件中对应好的。 脚本参数:与mailx.sh脚本需要的3个参数位对应:
- {ALERT.SENDTO} #接收方,使用的是在user中用户的联系方式,可以是电话号码、Email-address等
- {ALERT.SUBJECT} #邮件标题,使用的是在action中的subject主题
- {ALERT.MESSAGE} #邮件内容,使用的是在action中的message信息,包含operation和recovery operation
管理 ---- 用户名称 ------ 点击Admin(或自己想指定的用户) ------ 报警媒介 ---- 添加 -----(退回到上一个窗口)点击更新
4.3 创建动作
动作是对zabbix 触发器触发后生成的事件的具体处理操作,可以是远程执行命令,也可以是发送通知给指定的管 理员进行故障处理,发送命令是调用的上一步骤创建好的报警媒介类型。
配置 --> 动作 --> trigger actions动作 --> 创建动作
在zabbix5.0以上的版本,告警信息模板的统一可用的默认模板放到告警媒介类型内了,也可在动作里设置了个性化自定义的报警邮件格式模板
停掉IP88上的Nginx服务
监测 ---- 主机
QQ收到对应的三个邮件
邮件详细内容,是按照默认定义格式的
附录:可以按照下面方式进行自行修改报警模板
Recommend
-
34
SECURITY 03: 邮件服务TLS/SSL 、 总结和答疑 、 CA数字证书服务 day03部署CA服务器邮件加密网站加密+++++++++++++++++++++++++++++部署CA服务器 (54) 机构名称 tarenaa...
-
51
-
23
Leave Me Alone - 一个邮件服务,在一个页面里显示你的所有垃圾邮件、广告邮件,可一键取关 - NEXT
-
49
前言 spring boot 的项目放下小半个月没有更新了,终于闲下来可以开心的接着写啦。 之前我们配置好mybatis 多数据源的,接下来我们需要做一个邮件服务。比如你注册的时候,需要输入验证码来校验。这个验证码就可以通...
-
56
介绍 邮件服务是常用的服务之一,作用很多,对外可以给用户发送活动、营销广告等;对内可以发送系统监控报告与告警。 本文将介绍Springboot如何整合邮件服务,并给出不同邮件服务商的整合配置。 如图所示:
-
7
Spring Boot 邮件服务提供者依赖 pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x...
-
2
Maddy 自建邮件服务 返回 从白嫖 Yandex 域名邮箱到 FastMail 付费托管邮箱,一直在找适合自己的域名邮件服务,传统的自建方式模块过于分散,上手难度较大,后在 NickCao 老师推荐下尝试了 Maddy...
-
3
慢雾:使用 MailChimp 作为邮件服务的项目方需要警惕 • 11 小时前...
-
3
这段时间在考察几个比较有名的加密邮件服务商,本文系把自己的笔记简单扩充而成。分成两部分,第一部分以 ProtonMail 为例讨论了目前加密邮件服务的问题。第二部分简单对比了一下几家著名的加密邮件服务商。 以 ProtonMail 为例讨论加密邮件服务...
-
3
1. Zabbix监控MySQL的规划 在用Zabbix做监控,创建监控项之前要尽量规划好要监控什么、如何监控、监控数据如何存放、监控数据如何展现、异常情况报警、报警处置等。 本次实践采用自行编写的MySQL监控脚本( /etc/zabbix/zabbix_agentd.d/...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK