zabbix6.4告警配置(短信告警和邮件告警),脚本触发

server/2024/9/23 22:33:52/

目录

  • 一、前提
  • 二、告警配置
    • 1.邮件告警脚本配置
    • 2.短信告警脚本配置
    • 3.zabbix添加报警媒介
    • 4.zabbix创建动作
    • 4.给用户添加报警媒介

一、前提

  1. 已经搭建好zabbix-server
    在这里插入图片描述
  2. 在需要监控的mysql服务器上安装zabbix-agent2
    在这里插入图片描述
    上述安装步骤参考我的上篇文章:通过docker容器安装zabbix6.4.12图文详解(监控服务器docker容器)

二、告警配置

1.邮件告警脚本配置

  1. 进入zabbix-server-mysql容器内部
docker exec -it zabbix-server-mysql bash
  1. 进入zabbix-server-mysql容器中存放脚本文件的文件夹
cd /usr/lib/zabbix/alertscripts
  1. 在该文件夹下创建.sh的脚本文件
vi sendmail.sh 

如图所示:
在这里插入图片描述

  1. 添加脚本内容。注,该文件运行的时候在容器内部,不能使用curl调用url接口,需要使用wget

脚本内容如下:

#!/bin/bash  ## 指定脚本文件使用bash解释器来执行send_email() {mail_address=$1title=$2content=$3##这里修改成你自己的邮件api接口url='http://xxx.xxx.xxx.xxx:xxxx/ITExceptionV1/SendMail/SendToMail' data="{\"mailAddress\": \"$mail_address\", \"toTitle\": \"$title\", \"toInfo\": \"$content\"}"echo $data > temp.jsonresponse=$(wget -qO- --post-file=temp.json $url)if [ $? -eq 0 ]; thenecho 'SUCCESS'elseecho 'response.status_code=' $?echo 'FAIL'firm temp.json
}if [ "$#" -ne 3 ]; thenecho "Usage: $0 <mail_address> <title> <content>"
elsemail_address=$1title=$2content=$3send_email $mail_address "$title" "$content"
fi
  1. 添加完成后 :wq保存退出,并给文件赋予权限,文件才能运行,这边直接给文件赋予执行权限
chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh  #文件赋予执行权限
  1. 执行文件测试,看是否能收到邮件。能收到邮件说明脚本没有问题
./sendmail.sh  xxx@xxx.com "email title" "email content"

2.短信告警脚本配置

前面步骤跟邮件告警一样,参考上文内容,下面直接从创建脚本开始。

  1. 进入zabbix-server-mysql容器中存放脚本文件的文件夹alertscripts创建一个脚本文件sendSMS.sh
vi sendSMS.sh
  1. 添加脚本内容如下。
#!/bin/bashsend_sms() {## 替换成你自己的短信api接口url='http://xxx.xx.xxx.xxx/api/ms/dm/sms/send'content=$(urlencode "$1")phone_number=$(urlencode "$2")smsPsw='7121@byd'smsUid='7121'response=$(wget -qO- "$url?content=$content&nodeld=2&phoneNumber=$phone_number&smsPsw=$sif [ $? -eq 0 ]; thenecho 'SUCCESS'elseecho 'FAIL'fi
}urlencode() {# ...... awk ...... URL ......echo -n "$1" | awk '{ gsub(/[^a-zA-Z0-9\/:._-]/, c); print }'
}if [ "$#" -ne 2 ]; thenecho "Usage: $0 <phone_number> <message>"
elsephone_number=$1message=$2send_sms "$message" $phone_number
fi
  1. 然后执行以下命令进行测试,能收到短信表示脚本无问题
./sendSMS.sh 181XXXXX "message content"

在这里插入图片描述

zabbix_126">3.zabbix添加报警媒介

  1. 告警——媒介——创建媒介类型
    在这里插入图片描述

1 )邮件配置

名称:随意填写

类型:脚本

脚本名称:填写你刚才创建的脚本名称

脚本参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

在这里插入图片描述

2)短信配置
名称:随意填写

类型:脚本

脚本名称:填写你刚才创建的脚本名称

脚本参数
{ALERT.SENDTO}
{ALERT.MESSAGE}

在这里插入图片描述

如下表示创建成功:
在这里插入图片描述

zabbix_161">4.zabbix创建动作

以下只介绍邮件告警动作配置,短信动作配置同理,选择不同的报警媒介即可。

  1. 告警——动作——触发器动作——创建动作
    在这里插入图片描述

1)动作配置
名称:随意
条件:根据自己的需求添加,比如选择“主机群组”等于“zabbix servers”的主机(群组是在配置主机时添加的)

在这里插入图片描述

2)操作配置
(1)操作

  • 点击添加
  • 选择发送的用户组和用户
  • 仅送到:选择刚刚创建的报警媒介
  • 勾选自定义消息类型内容

主题添加如下内容:

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

消息添加如下内容:

告警主机:{HOSTNAME1}<br>
告警时间:{EVENT.DATE} {EVENT.TIME}<br>
告警等级:{TRIGGER.SEVERITY}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}

在这里插入图片描述

(2)恢复操作

  • 点击添加
  • 选择发送的用户组和用户
  • 仅送到:选择刚刚创建的报警媒介
  • 勾选自定义消息类型内容
    主题添加如下内容:
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

消息添加如下内容:

告警主机:{HOSTNAME1}<br>
告警时间:{EVENT.DATE} {EVENT.TIME}<br>
告警等级:{TRIGGER.SEVERITY}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}

在这里插入图片描述

4.给用户添加报警媒介

  1. 用户——用户——点击需要添加报警媒介的用户——报警媒介——添加——选择对应的报警媒介类型——收件人:邮箱号或手机号,点击添加即可
    在这里插入图片描述
  2. 给用户添加邮件报警
    在这里插入图片描述
  3. 给用户添加短信报警

在这里插入图片描述

在仪表盘页面如果出现zabbix监控到服务器出现问题,则会触发邮件告警和短信告警动作,正常发送会显示绿色,如果没发送成功则是红色。

在这里插入图片描述

如下为收到告警邮件:

在这里插入图片描述


http://www.ppmy.cn/server/19271.html

相关文章

【论文解读】End-to-End Autonomous Driving through V2X Cooperation

UniV2X 摘要引言方法Sparse-Dense Hybrid Data GenerationCross-View Data Fusion (Agent Fusion)Temporal Synchronization with Flow PredictionSpatial Synchronization with Rotation-Aware Query TransformationCross-View Query Matching and FusionEgo Identification a…

Go语言第二篇-基本数据类型与转义字符

-———————————————————————————— 随便记录没什么顺序&#xff1a; ———————————————————————————— &#x1f523;本部分内容记录了以下知识点&#xff1a; &#x1f30f;转义字符的使用 &#x1f30f;基本数据类型的使…

C++ Primer Plus

第一章 初始C #include <iostream> //#:预处理int main(void) //void:无参数 {using namespace std;int carrots; //定义声明语句:开辟内存空间&#xff0c; int:整型 cout << "how many corrots do you have?" << endl; //cout:输出流(out) end…

django结合smartchart实现系统的数据看板页面

1、安装smartchart pip3 install smartchart 2、在你的setting.py的INSTALL_APPS中加入’smart_chart.echart 3、MIDDLEWARE 中注释掉XFrameOptionsMiddleware 4、检查确保在Templates的设定处有DIRS的相关设定 TEMPLATES = [{BACKEND: django.template.backends.django.…

端点安全管理系统干什么用的 有哪些好用?

你听说过&#xff1a; 端点安全管理系统吗&#xff1f; 我们一起来了解一下啊 一、什么是端点安全管理系统&#xff1f; 端点安全管理系统&#xff08;Endpoint Security Management System&#xff09;是一种专门用于保护企业内部网络终端设备的综合性安全解决方案。 这些终…

table表格导出为excel文件并设置样式

table表格导出为excel文件并设置样式 安装xlsx、xlsx-style-medalsoft 的 npm 包&#xff1a; npm i xlsx xlsx-style-medalsoft设置全局&#xff1a; Vue.prototype.$XLSX XLSX; // 设置全局 Vue.prototype.$XLSXStyle XLSXStyle; // 设置全局具体代码实现&#xff1a; …

洛谷 P3806 [模板] 点分治 1 题解

【模板】点分治 1 题目描述 给定一棵有 n n n 个点的树&#xff0c;询问树上距离为 k k k 的点对是否存在。 输入格式 第一行两个数 n , m n,m n,m。 第 2 2 2 到第 n n n 行&#xff0c;每行三个整数 u , v , w u, v, w u,v,w&#xff0c;代表树上存在一条连接 u …

大模型咨询培训老师叶梓:利用知识图谱和Llama-Index增强大模型应用

大模型&#xff08;LLMs&#xff09;在自然语言处理领域取得了显著成就&#xff0c;但它们有时会产生不准确或不一致的信息&#xff0c;这种现象被称为“幻觉”。为了提高LLMs的准确性和可靠性&#xff0c;可以借助外部知识源&#xff0c;如知识图谱。那么我们如何通过Llama-In…