• zabbix发送报警的脚本


    zabbix报警媒介:自定义脚本Custom alertscripts

    邮件报警准备工作:安装sendEmail

    zabbix-server 的 配置文件 /etc/zabbix/zabbix_server.conf 中的参数 “AlertScriptsPath=/usr/lib/zabbix/alertscripts” 指zabbix-server可以调用的脚本

    编写zabbix发送报警的脚本:[root@localhost data]# vim /usr/lib/zabbix/alertscripts/sendmail.sh 

    #!/bin/bash 
    SMTP_server='smtp.test.com' # SMTP服务器
    username='yunwei@test.com' # 发件人邮箱用户名
    password='qweryyui' # 发件人邮箱密码
    from_email_address='yunwei@test.com' # 发件人Email地址
    to_email_address="$1" # 收件人Email地址,zabbix传入的第一个参数
    message_subject_utf8="$2" # 邮件标题,zabbix传入的第二个参数
    message_body_utf8="$3" # 邮件内容,zabbix传入的第三个参数
    # 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
    message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
    $message_subject_utf8
    EOF`
    [ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
    # 转换邮件内容为GB2312
    message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
    $message_body_utf8
    EOF`
    [ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
    # 发送邮件
    sendEmail='/usr/bin/sendEmail'
    $sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$messa
    ge_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
    echo "`date +"%F %T"` send to $to_email_address" >> /tmp/send.log

    zabbix媒介类型包括mail、sms、自定义脚本,我们用的最多的还是脚本媒介,再次我们就不讲另外两个媒介了。当事件通知到脚本,会传递三个参数它,分别为$1(发送给谁) $2(标题) $3(内容)。

    媒介配置
    点击administrator->media types->create media types

    zabbix媒介配置

    • Name:触发器名称
    • Type: 介质类型
    • script name:脚本名称(需要先定义AlertScriptsPath,mail.sh放在这个目录下,写绝对路径没用)
    • Enabled:状态

    配置AlertScriptsPath

    # mkdir /usr/local/zabbix/alertscripts
    # vim /usr/local/zabbix/etc/zabbix_server.conf
    AlertScriptsPath=/usr/local/zabbix/alertscripts 监控脚本路径这样设置一条记录。
    脚本编写
    # cd /usr/local/zabbix/alertscripts
    # vi mail.sh
         #!/bin/sh
         to=$1
         subject=$2
         body=$3
    #/usr/local/bin/sendEmail -f root@test.com -t "$to" -s mail.test.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu root@test.com -x root -m "$body" 2&gt;&gt;/tmp/sendmail.log

    注意脚本设置号以后要设置权限,否则无法执行:

    chown zabbix.zabbix mail.sh
    chmod +x mail.sh

    用户媒介
    给用户指定媒介:
    *点击Administration→Users->打开用户属性表单->在Media tab点击Add

    zabbix媒介配置
    参数介绍

    • Type: 选择媒介类型,这边选自定义媒介
    • Send to:发送到哪,例如705754153@qq.com,他就是脚本中的$1
    • When active:报警时间限定,我们设置24小时不间断监控。
    • Use if severity:严重性类型,只接收指定的类型,不想接受的,那我不勾选即可。
    • Status:媒介状态Enabled – 启用中.Disabled – 已禁用.
  • 相关阅读:
    仓位管理 – 1.理论篇
    作为首席架构师,我是如何选择并落地架构方案的?
    asp.net MVC 应用程序的生命周期
    微服务架构优缺点
    一位同事对 Rafy 框架的一些建议及我的回复
    .NET 版本区别,以及与 Windows 的关系
    MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)
    何时使用静态 API
    2011奥斯卡最佳纪录片《监守自盗(Inside Job)》小结
    Rafy 框架
  • 原文地址:https://www.cnblogs.com/carriezhangyan/p/11321633.html
Copyright © 2020-2023  润新知