> 백엔드 개발 > 파이썬 튜토리얼 > Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

高洛峰
풀어 주다: 2017-03-23 15:40:12
원래의
2040명이 탐색했습니다.

1. 스크립트가 저장된 기본 경로를 찾습니다. (저는 기본 경로 아래에 넣었습니다. 다른 경로로 변경하고 싶다면 zabbix_server.conf 구성 파일을 수정하세요.)

/usr/local /zabbix-server/ share/zabbix/alertscripts 스크립트 저장 경로

2. 디렉터리에 새 mail.py 파일을 만듭니다. 스크립트 참조:

cd /usr/local/zabbix-server /share/zabbix/alertscripts

vim mail.py

#!/usr/bin/python

#coding:utf-8

#author : itnihao

#메일: itnihao@qq.com

#url: https://github.com/itnihao/zabbix-book/edit/master/06-chapter/zabbix_sendmail_v2.py 스크립트를 직접 다운수정해서 복사해도 됩니다 포맷문제가 발생합니다~

import smtplib

from email.mime.text import MIMEText

import os

import argparse

로깅 가져오기

날짜/시간 가져오기

#QQ enterprise

#smtp_server = 'smtp.exmail.qq.com'

#smtp_port = 25

#smtp_user = 'itnihao_zabbix@itnihao.com'

#smtp_pass = '1234567890'

#163 메일

#smtp_server = 'smtp.163.com'

#smtp_port = 25

#smtp_user = 'itnihao_zabbix@163.com'

#smtp_pass = '1234567890'

#QQ 메일

SMTP_SERVER = 'SMTP.QQ.com'

SMTP_PORT = 25

SMTP_USER ='ITNIHAO_ZABBIX@qq.com '

SMTP_PASS =' 1234567890 ' > def send_mail(mail_to,subject,content):

msg = MIMEText(content,_subtype='plain', _charset='utf-8')

msg['제목'] = unicode(제목,'UTF-8')

msg['From'] = smtp_user

msg['to'] = mail_to

전역 sendstatus

전역 senderr

시도:

if smtp_port == 465:

smtp = smtplib.SMTP_SSL()

else:

smtp = smtplib.SMTP()

smtp.connect(smtp_server,smtp_port)

smtp.login(smtp_user,smtp_pass)

smtp.sendmail(smtp_user,mail_to ,msg.as_string())

smtp.close()

print 'send ok'

sendstatus = True

제외 예외,e:

senderr=str(e)

senderr 인쇄

sendstatus = False

def logwrite(sendstatus,mail_to,content) :

logpath='/var/log/zabbix/alert'

sendstatus가 아닌 경우:

content = senderr

os.path가 아닌 경우. isdir(logpath):

os.makedirs(logpath)

t=datetime.datetime.now()

daytime=t.strftime('%Y-%m -%d')

daylogfile=logpath+'/'+str(daytime)+'.log'

login.basicConfig(filename=daylogfile,level=logging.DEBUG)

os.system( 'chown zabbix.zabbix {0}'.format(daylogfile))

logging.info('*'*130)

logging.debug(str( t)+' 메일을 {0}(으)로 보냅니다. 내용은 :n {1}'.format(mail_to,content))

if __name__ == "__main__":

파서 = argparse .ArgumentParser(description='zabbix 경고를 위해 사용자에게 메일 보내기')

parser.add_argument('mail_to',action="store", help='사용자에게 보내는 이메일 주소 ' )

parser.add_argument('subject',action="store", help='이메일 제목')

Parser.add_argument('content',action=" store", help='이메일 내용')

args = parser.parse_args()

mail_to=args.mail_to

subject=args.subject

content =args.content

send_mail(mail_to,subject,content)

logwrite(sendstatus,mail_to,content)

3, 권한 수정 스크립트

# chown zabbix.zabbix mail.py

# chmod 775 mail.py

4, zabbix 웹 구성

미디어 유형 선택 구성에서 미디어 유형을 생성합니다

Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

다음 정보를 입력하고 선택 스크립트를 입력하고 zabbix3.0에 대해 다음 3가지 매개변수를 입력해야 합니다.

Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

관리자에서 사용자 생성 또는 알람 설정

Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

여기에 추가되는 내용은 이후입니다. a실패 이메일을 통보받은 이메일이 수신자입니다.

Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

configuration-Action-create 액션에서 이메일 알람을 구현하는 액션을 생성하세요

(내 사진은 아래 템플릿과 다릅니다. 추천 템플릿을 사용하세요. 제가 사용하는 서버가 중국이 아니기 때문에 이메일 제목이 모두 깨져서 이 사진에서는 제목을 줄였습니다.)

Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

이름:

.

작업-이메일

기본 제목:

오류 {TRIGGER.STATUS}, 서버: {HOSTNAME1} 발생: {TRIGGER.NAME} 오류!

기본 메시지:

알람 호스트: {HOSTNAME1}

알람 시간: {EVENT.DATE} {EVENT.TIME}

알람 레벨: {TRIGGER.SEVERITY}

알람 정보: {TRIGGER.NAME}

알람 항목: {TRIGGER.KEY1}

문제 세부 정보: {ITEM.NAME}:{ITEM.VALUE}

현재 상태: {TRIGGER.STATUS}:{ITEM.VALUE1}

이벤트 ID: {EVENT.ID}

Montoring-Events에서 자세한 내용을 확인하세요.

복구 제목:

{TRIGGER.STATUS} 복구, 서버: {HOSTNAME1}: {TRIGGER.NAME}이(가) 복구되었습니다!

복구 메시지:

알람 호스트: {HOSTNAME1}

알람 시간: {EVENT.DATE} {EVENT.TIME}

알람 레벨: {TRIGGER.SEVERITY}

알람 정보: { TRIGGER.NAME}

알람 항목: {TRIGGER.KEY1}

문제 세부 정보: {ITEM.NAME}:{ITEM.VALUE}

현재 상태: {TRIGGER . STATUS}:{ITEM.VALUE1}

이벤트 ID: {EVENT.ID}

알람이 복원되었습니다. 안심하세요.

Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

여기서 작업 유형, 메시지 보내기 및 메시지 스크립트에 주의해야 합니다. 올바른 것을 선택하세요.

Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

5. zabbix를 테스트하여 이메일을 보냅니다.

에이전트 클라이언트를 찾아 중지하세요. 그럼 알람 메일을 보세요~

Kill이 성공적으로 발생한 것을 알 수 있습니다~

참고: Zabbix의 알람은 보통 5분에 한 번씩 전송됩니다. 예를 들어, 16시 20분에 중지되면 16시 25분에 오류 이메일을 받게 되고 16시 30분에 처리됩니다. 복구정보는 16시 35분부터 받아보실 수 있습니다~… 여기 시스템에서는 처음에는 mailx를 사용하여 보내려고 했지만 나중에 일부 라이브러리 파일을 설치할 수 없었고 다른 방법으로 전환하여 이메일을 받을 수 없었습니다. 결국 외부 Python 스크립트를 사용하기로 결정했습니다~· Ubuntu 시스템에는 자체 환경과 함께 제공되지 않는 많은 소프트웨어 종속성이 있습니다. .apt-get은 실제로 사용하기 쉽지 않습니다. 126 사서함을 사용할 때 클라이언트 인증 코드는 Python 스크립트에만 로그인할 수 있습니다. 마지막 선택은 회사의 회사 사서함입니다. 그런데 zabbix에서 이메일을 자주 보내다보니 상당수가 휴지통에 버려지네요... 결국 회사 메일함의 QQ 메일함으로 전달했습니다.

우분투는 개발이나 학습에는 괜찮지만, 서버로 사용하면 여전히 문제점이 많습니다.Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명

올바른 자세: centos+zabbix+회사 이메일 후속 기사를 작성할 기회가 있으면 zabbix의 WeChat에서 경찰에 신고하겠습니다.

위 내용은 Zabbix3.0.2가 외부 Python 스크립트를 사용하여 이메일 경보를 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿