zabbix 邮件告警(下)

1、分级告警

当出现报警后,一般会根据组织的重要级别,按时间逐级分层向上报警,如下面常见分层报警

初级运维/指定运维组--高级运维工程师/业务运维-—->架构师--->总监/CTO

要实现分级告警,必须确保有多个用户,并分别指定不同的邮箱

1.1、配置Admin用户的邮箱

图片[1]-zabbix 邮件告警(下)-李佳程的个人主页
图片[2]-zabbix 邮件告警(下)-李佳程的个人主页

1.2、lijiacheng用户使用不同邮箱

图片[3]-zabbix 邮件告警(下)-李佳程的个人主页
图片[4]-zabbix 邮件告警(下)-李佳程的个人主页

1.3、配置操作指定不同的步骤发邮件给不同的用户

图片[5]-zabbix 邮件告警(下)-李佳程的个人主页
图片[6]-zabbix 邮件告警(下)-李佳程的个人主页
{ESC.HISTORY} 宏放在在自定义消息里
该宏将包含关于此升级之前执行的所有步骤的信息,例如:发送的通知和执行的命令。
自定义消息如下示例:
主题:Problem:{EVENT.NAME}
告警主机:{HOST.NAME1}
告警服务: {ITEM.NAME1}
告警Key1: {ITEM.KEY1}:{ITEM.VALUE1}
告警Key2: {ITEM.KEY2}:{ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}
此前步骤:{ESC.HISTORY}
图片[7]-zabbix 邮件告警(下)-李佳程的个人主页
图片[8]-zabbix 邮件告警(下)-李佳程的个人主页
图片[9]-zabbix 邮件告警(下)-李佳程的个人主页

1.4、模拟故障测试验证分级告警

停止 nginx 服务,查看结果

图片[10]-zabbix 邮件告警(下)-李佳程的个人主页
图片[11]-zabbix 邮件告警(下)-李佳程的个人主页
图片[12]-zabbix 邮件告警(下)-李佳程的个人主页

2、利用脚本方式进行邮件告警

利用 sendemail 工具实现邮件脚本

#!/bin/bash

email_send='18961236318@163.com'
email_passwd='EGNASQTFJWXIRWYM'
email_smtp_server='smtp.163.com'

. /etc/os-release

msg_error() {
    echo -e "\033[1;31m$1\033[0m"
  }
msg_info() {
    echo -e "\033[1;32m$1\033[0m"
  }
msg_warn() {
    echo -e "\033[1;33m$1\033[0m"
  }

color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $" OK "
    elif [ $2 = "failure" -o $2 = "1" ] ;then
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
        ${SETCOLOR_NORMAL}
	echo -n "]"
        echo
	}


install_sendemail () {
    if [[ $ID =~ rhel|centos|rocky ]];then
        rpm -q sendemail &> /dev/null || yum install -y sendemail
    elif [ $ID = 'ubuntu' ];then
        dpkg -l |grep -q sendemail || { apt update; apt install -y libiosocket-ssl-perl libnet-ssleay-perl sendemail ; }
    else
        color "不支持此操作系统,退出!" 1
    exit
    fi
}

send_email () {
    local email_receive="$1"
    local email_subject="$2"
    local email_message="$3"
    sendemail -f $email_send -t $email_receive -u $email_subject -m $email_message -s $email_smtp_server -o message-charset=utf-8 -o tls=yes -xu $email_send -xp $email_passwd
    [ $? -eq 0 ] && color "邮件发送成功!" 0 || color "邮件发送失败!" 1
}

if [ $# -ne 3 ];then
    color "脚本参数不正确!" 1
    msg_info "Usage: `basename $0` <mail_address> <subject> <message>"
    exit 1
fi

install_sendemail

send_email "$1" "$2" "$3"

root@zabbix-server:~# chmod +x /usr/lib/zabbix/alertscripts/mail.sh

创建邮件报警媒介类型

脚本参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
图片[13]-zabbix 邮件告警(下)-李佳程的个人主页

将报警媒介关联用户

图片[14]-zabbix 邮件告警(下)-李佳程的个人主页

创建动作和操作

图片[15]-zabbix 邮件告警(下)-李佳程的个人主页
图片[16]-zabbix 邮件告警(下)-李佳程的个人主页
图片[17]-zabbix 邮件告警(下)-李佳程的个人主页

验证邮件告警

图片[18]-zabbix 邮件告警(下)-李佳程的个人主页
图片[19]-zabbix 邮件告警(下)-李佳程的个人主页
图片[20]-zabbix 邮件告警(下)-李佳程的个人主页

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享