zabbix監控之同時向多人郵件報警

腫諏遜汲發表於2020-09-21

  zabbix做為一款監控軟體,報警是必不可少的,該文章主要介紹zabbix向多人郵件報警的配置過程。

  zabbix郵件報警配置步驟說明:

  1、  準備一個傳送郵件的指令碼

  2、  修改zabbix配置檔案中指定的指令碼路徑

  3、關聯指令碼名稱

  4、使用者設定收件郵箱與報警時間

  5、配置報警觸發器

  6、新增多個使用者,同時給多個人發郵件

  7、郵件接收測試

  1、準備一個傳送郵件的指令碼

  傳送郵件有很多方法,自己寫指令碼的話,只要遵循zabbix傳參的格式即可。

  zabbix傳送郵件傳參格式:./sendmail.py 收件人  標題  郵件內容

  python傳送郵件指令碼如下:

  cat /usr/local/zabbix/share/zabbix/alertscripts/sendmail_qs.py

  #!/usr/bin/python

  # -*- coding:utf-8 -*-

  import smtplib

  import sys

  from email.mime.text import    MIMEText

  import time

  #reload(sys)

  #sys.setdefaultencoding('utf8')

  current_time=time.strftime('%Y-%m-%d%H:%M',time.localtime(time.time()))

  mail_host ='smtp.exmail.qq.com'

  mail_user ='yangrong@qssec.com'

  mail_pwd = '******'

  def send_email( content,mailto, get_sub ):

  #msg = MIMEText( content.encode('utf8'),_subtype = 'html', _charset = 'utf8')

  msg = MIMEText(content,_subtype='plain',_charset='gb2312')

  msg['From'] = mail_user

  msg['Subject'] =get_sub

  msg['To'] = ",".join( mailto )

  try:

  s = smtplib.SMTP_SSL( mail_host, 465)

  s.login(mail_user, mail_pwd )

  s.sendmail(mail_user, mailto,msg.as_string())

  s.close()

  except Exception as e:

  print 'Exception: ', e

  title=sys.argv[2]

  cont="""

  ---------------------------------

  摘要:  %s

  ---------------------------------

  時間:  %s

  ---------------------------------

  """%(sys.argv[3],current_time)

  to_list = [

  '%s'%(sys.argv[1]),

  ]

  with    open('/tmp/sendmail_qs.log','ab') as f:

  f.write('%s  Receive address:  %s Title: %s \n'%(current_time,sys.argv[1],title))

  send_email( cont, to_list,title)

  #該python指令碼最後把傳送郵件的日誌記錄到/tmp/sendmail.log中。

  #如若自己使用,修改上方mail_host,mail_user,mail_pwd即可。

  2、修改zabbix配置檔案中指定的指令碼路徑

  echo  'AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts'  >>/usr/local/zabbix/etc/zabbix_server.conf

  /etc/init.d/zabbix_serverrestart

  本例安裝zabbix安裝目錄在/usr/local/zabbix,不同路徑手動修改即可。

  3、關聯指令碼名稱

  【zabbix主皮膚à管理à示警媒介型別à建立媒體型別】

  輸入指令碼名稱和/usr/local/zabbix/share/zabbix/alertscripts下的名稱一致。

  wKiom1PyL8HCvKoxAAG6A110IL4944.jpg

  4、使用者設定收件郵箱與報警時間

  【zabbix主皮膚à管理à使用者à點選使用者】

  wKioL1PyMNmh43vGAAHc8MYsLQQ203.jpg

  配置使用者對應的郵箱

  wKioL1PyMY_D8HMeAADko0AJD4o971.jpg

  5、配置報警觸發器

  【zabbix主皮膚à組態à動作à建立動作】  配置報警資訊

  wKiom1PyL8PRvCBZAAMSWbcmK9Q825.jpg

  配置報警觸發條件

  wKioL1PyMN3iQguLAAICe_vaWu0045.jpg

  配置觸發條件後的接收使用者

  wKiom1PyL8bRaeD_AAGhrBMCNHI272.jpg

  6、新增多個使用者,同時給多個人發郵件

  首先在【管理】à【使用者】à建立普通使用者

  然後把普通使用者提升為超級管理員。如果不提升為超級管理員,普通使用者是沒有傳送郵件的許可權的!

  wKioL1PyMN-CLpy1AAGwXJRr3ug580.jpg

  在【組態】à【動作】中新增新的接收使用者。

  wKiom1PyL8iDMUh4AAHGhYxlhhU815.jpg

  7、郵件接收測試

  down掉client節點的zabbix_agentd程式。等待郵件報警,預設agent發郵件是5分鐘,即5次沒有獲取到資料則報警。

  經測試,zabbix給多個人員傳送郵件時,並不是採取併發郵件的方式。而是執行兩次傳送郵件的指令碼,即每一次一個收件人,而不是一次性有多個收件人。

  所以若收件人數量多的話,直接把收件人全部寫到上述python發郵件指令碼中,即不呼叫zabbix傳過來的收件人,缺點就是收件人變更時也需要手動來改python指令碼,而不是改zabbix使用者配置。

  wKiom1PyL8nh5JyPAAEiYU1jo10645.jpg

  wKioL1PyMOKCcr9fAAGTQPp-TZ8101.jpg

  到此zabbix多人郵件報警配置完成。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69920892/viewspace-2722830/,如需轉載,請註明出處,否則將追究法律責任。

相關文章