Robot ASK

Szkolenie Zabbix – Metody Alarmowania: Skrypt Email

wbt

Wiadomości email – Skrypt

Do wysyłki maili z ostrzeżeniami z Zabbixa możemy wykorzystać różne narzędzia.Przykładowo, instalując odpowiednie aplikacje typu Sendmail lub Msmtp. W poniższym poradniku obejdziemy się bez instalowania dodatkowego oprogramowania na serwerze i podłączymy do Zabbixa, utworzony przez nas skrypt. Dla tego przykładu wykorzystamy konto pocztowe skonfigurowane na serwerze Gmail. Oczywiście, w ten sam sposób możemy podłączyć adres mailowy skonfigurowany na innym serwerze. Wystarczy zmienić nazwę i port serwera SMTP.

 

Zapraszamy na darmowe szkolenie "Grafana dla początkujących".

Widzimy się 17 października o 13:00! . Zapisz się: https://asdevops.pl/s43/

 

Na początek sprawdzamy gdzie nasz serwer Zabbixa przechowuje skrypty służące do alarmowania:

vi /etc/zabbix/zabbix_server.conf

 

Mowi o tym ten parameter „AlertScriptsPath=”. W moim przypadku jest to:

AlertScriptsPath=/usr/lib/zabbix/alert scripts

Oczywiście, możemy tu zmienić tą lokalizację.

 

Cykl szkoleń
poświęconych systemowi monitoringu Zabbix

Artykuły prowadzone w ramach cyklu „Szkolenie Zabbix”. Wszystkie dotychczasowe części kursu Zabbix znajdziesz w tym miejscu:

Kurs Zabbix

Tworzymy nowy plik ze skryptem:

vi /usr/lib/zabbix/alertscripts/gmailnew.sh

 

Wrzucamy ten skrypt:

 

#!/usr/bin/python

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

„””

Zabbix SMTP Alert script for gmail.

„””

 

import sys

import smtplib

from email.MIMEText import MIMEText

from email.Header import Header

from email.Utils import formatdate

 

# Mail Account

MAIL_ACCOUNT = ‘twojekonto@gmail.com’

MAIL_PASSWORD = ‘TWOJE HASLO DO POCZTY’

 

# Sender Name

SENDER_NAME = u’Zabbix Alert’

 

# Mail Server

SMTP_SERVER = 'smtp.gmail.com’

SMTP_PORT = 587

# TLS

SMTP_TLS = True

 

def send_mail(recipient, subject, body, encoding=’utf-8′):

session = None

msg = MIMEText(body, 'plain’, encoding)

msg[’Subject’] = Header(subject, encoding)

msg[’From’] = Header(SENDER_NAME, encoding)

msg[’To’] = recipient

msg[’Date’] = formatdate()

try:

session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)

if SMTP_TLS:

session.ehlo()

session.starttls()

session.ehlo()

session.login(MAIL_ACCOUNT, MAIL_PASSWORD)

session.sendmail(MAIL_ACCOUNT, recipient, msg.as_string())

except Exception as e:

raise e

finally:

# close session

if session:

session.quit()

 

if __name__ == '__main__’:

„””

recipient = sys.argv[1]

subject = sys.argv[2]

body = sys.argv[3]

„””

if len(sys.argv) == 4:

send_mail(

recipient=sys.argv[1],

subject=sys.argv[2],

body=sys.argv[3])

else:

print u”””requires 3 parameters (recipient, subject, body)

\t$ zabbix-gmail.sh recipient subject body

„””

 

 

Zamieniamy jedynie sekcje:

MAIL_ACCOUNT = 'your.account@gmail.com’

MAIL_PASSWORD = 'your mail password’

 

Nadajemy uprawnienia do pliku:

chmod 755 /usr/lib/zabbix/alertscripts/gmailnew.sh

 

W tym momencie możemy podłączyć skrypt do Zabbixa i przetestować jego działanie.

 

 

Trwa przedsprzedaż kursu "Homelab - Wejdź do IT"!

To jedyne takie szkolenie! Pierwsze na polskim rynku praktyczne szkolenie, dzięki któremu zdobędziesz wiedzę i praktykę w tworzeniu własnego homelaba! Pierwszy moduł wystartuje już 14 listopada!

Chcesz wziąć udział w szkoleniu? Zapisy na stronie: https://asdevops.pl/homelab/

 

 

 

 

Bezpłatne szkolenie "Grafana dla Początkujących"! Widzimy się 17 października o 13:00!

X