配置文件

1
2
3
4
5
6
7
8
9
10
LogFile=/usr/local/zabbix/zabbix_server.log
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpwd
DBPort=3306
Timeout=30
AlertScriptsPath=/usr/local/zabbix/alertscripts ##触发脚本放置位置
ExternalScripts=/usr/local/zabbix/externalscripts
LogSlowQueries=3000
  • 定义监控项:进入配置 -> 主机 -> node1 -> 监控项(items)-> 创建监控项
  • 定义触发器:进入配置 -> 主机 -> none1 -> 触发器(trigger)-> 创建触发器
  • 定义动作(action):进入配置 -> 动作 -> 创建动作(选择事件源为触发器)

    邮件环境

    1
    2
    3
    4
    5
    6
    7
    8
    9
    yum -y install mailx

    vim /etc/mail.rc
    '//末尾添加'
    set from=邮箱
    set smtp=smtp.qq.com
    set smtp-auth-user=邮箱
    set smtp-auth-password=邮箱授权码
    set smtp-auth=login
    echo “hello tomorrow” | mail -s “test” 邮箱

    发送邮件

    Shell 脚本

    vi /usr/lib/zabbix/alertscripts/mailx.sh
    1
    2
    3
    4
    5
    6

    #!/bin/bash
    #send mail
    messages=`echo $3 | tr '\r\n' '\n'`
    subject=`echo $2 | tr '\r\n' '\n'`
    echo "${messages}" | mail -s "${subject}" $1 >> /app/temp/mailx.log 2>&1
    创建日志文件并修改权限并测试
    1
    2
    3
    4
    5
    touch /app/temp/mailx.log
    chown -R zabbix.zabbix /app/temp/mailx.log
    chmod +x mailx.sh
    chown -R zabbix.zabbix /usr/lib/zabbix/
    sh mailx.sh 邮箱 zabbix "this is test"

    Python 脚本

    vi /usr/local/zabbix/alertscripts/zabbix_sendmail.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from email.mime.text import MIMEText
    from email.header import Header
    from smtplib import SMTP_SSL
    import sys

    smtpaddr = 'smtp.qq.com'
    myemail='327627448@qq.com' ##发送邮件的QQ
    password='mypassword' ##填写登陆客户端的授权码,在邮箱里生成同时需要打开POP3,IMAP服务
    #f = open('/usr/local/zabbix/.passwd','r')
    #password = f.readline().strip()

    recvmail=sys.argv[1] ##发送邮件给谁
    subject=sys.argv[2] ## 发送的主题
    content=sys.argv[3] ##发送的内容

    msg = MIMEText("""%s"""%(content), "plain", "utf-8") ##发送的内容
    msg['Subject'] = Header(subject, 'utf-8').encode()
    msg['From'] = myemail
    msg['To'] = recvmail

    try:
    smtp = SMTP_SSL( smtpaddr )
    smtp.login(myemail, password)
    smtp.sendmail(myemail, recvmail.split(','), msg.as_string())
    smtp.quit()
    print("success")
    except Exception as e:
    print("fail: "+str(e))
    ##增加执行权限,测试脚本是否运行正常能发送邮件
    /usr/local/zabbix/alertscripts/zabbix_sendmail.py 1065236572@qq.com 'zabbix disk' 'content: disk > 90%'
    报警媒介设置邮件告警

    脚本放置的名字,注意是放置在/usr/local/zabbix/alertscripts 目录下,添加三个接受的参数,发送给谁,主题是什么,内容是什么 这地方需要添加三个参数
    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}

添加需要发送的用户媒介设置
创建触发器动作在模板或者主机里
设置触发器触发之后的动作(action)
出问题发送的内容用户,执行的脚本
故障恢复之后动作 发送一封恢复的邮件