Slik konfigurerer du Zabbix for å sende e-postvarsler til Gmail-kontoen
Hvis du bruker Zabbix til å overvåke infrastrukturen din, vil du kanskje motta e-postvarsler fra ditt lokale domene et sted på et offentlig internettdomene, selv om du ikke eier et gyldig registrert internettdomenenavn med en e-postserver som du kan konfigurere på egen.
Denne opplæringen vil kort diskutere hvordan du setter opp en Zabbix-server for å sende e-postrapporter til en Gmail-adresse ved å bruke SSMTP-programmet, uten å måtte installere og konfigurere noen lokal MTA-demon, som Postfix, Exim, etc.
- Hvordan installerer Zabbix på RHEL/CentOS og Debian/Ubuntu – del 1
Trinn 1: Installer og konfigurer SSMTP
1. SSMTP er en liten programvare, som ikke oppfyller noen av funksjonaliteten til en e-postserver, men bare leverer e-post fra en lokal maskin til en ekstern e-postadresse på en mailhub.
For å installere SSMTP-programmet sammen med mailutils-pakken som du vil bruke til å sende e-post, utfør følgende kommando på din Debian-lignende server:
# yum install msmtp mailx [On RHEL/CentOS] $ sudo apt-get install ssmtp mailutils [On Debian/Ubuntu]
2. Etter at pakkene er installert på systemet, konfigurer SSMTP-programmet til å sende lokale e-poster til Gmail-kontoen din ved å åpne hovedkonfigurasjonsfilen for redigering med favoritttekstredigeringsprogrammet og rotrettigheter og bruke følgende parameterinnstillinger:
# vi /etc/msmtprc [On RHEL/CentOS] $ sudo nano /etc/ssmtp/ssmtp.conf [On Debian/Ubuntu]
MSMTP-innstillinger for GMAIL-konto.
#set default values for all following accounts. defaults auth on tls on tls_trust_file /etc/pki/tls/certs/ca-bundle.crt logfile ~/.msmtp.log # Gmail account gmail host smtp.gmail.com port 587 from [email user [email password gmailpassword # Set a default account account default : gmail
SSMTP-innstillinger for GMAIL-konto.
[email mailhub=smtp.gmail.com:587 rewriteDomain=your_local_domain hostname=your_local_FQDN UseTLS=Yes UseSTARTTLS=Yes AuthUser=Gmail_username AuthPass=Gmail_password FromLineOverride=YES
Trinn 2: Gmail-tester for Zabbix e-postvarsler
3. På neste trinn er det på tide å sende en lokalt generert e-post til en Gmail-konto ved å gi kommandoen nedenfor.
# echo "Body test email from 'hostname -f' "| mail -s "subject here" [email
4. Normalt forhindrer Gmail forskjellige typer autentiseringer til deres servere fra kontoen din, så i tilfelle du får feilen \mail: kan ikke sende en melding: Prosessen avsluttet med status som ikke er null, logg deretter på Gmail-kontoen din fra nettleseren og naviger til følgende lenke https://www.google.com/settings/security/lesssecureapps for å gi tilgang for mindre sikre apper som på følgende skjermbilde.
5. Etter at du har slått på funksjonen for mindre sikre apper på Gmail-kontoen din, kjører du e-postkommandoen ovenfor på nytt og bekrefter innboksen din etter noen sekunder for å sjekke om den lokalt genererte e-posten har blitt levert – du skal normalt se at e-posten har innkommende fra Gmail.
Trinn 3: Konfigurer Zabbix Sendmail-skript
6. Basert på kommandoen $ (which mail)
oppretter dessuten følgende Bash-skript til Zabbix alertscripts-katalog med følgende innhold og gir den utføringstillatelser:
# vi /usr/local/share/zabbix/alertscripts/zabbix-sendmail [On RHEL/CentOS] $ sudo nano /usr/local/share/zabbix/alertscripts/zabbix-sendmail [On Debian/Ubuntu]
Skriptinnhold:
#!/bin/bash echo "$3" | /usr/bin/mail -s "$2" $1
Deretter setter du utføringstillatelsen på skriptfilen.
# chmod +x /usr/local/share/zabbix/alertscripts/zabbix-sendmail
7. Deretter, som tidligere, test skriptfunksjonaliteten ved å sende en lokal e-post til en Gmail-konto. Måten å kjøre skriptet med posisjonsparametere er forklart ovenfor:
# /usr/local/share/zabbix/alertscripts/zabbix-sendmail [email "Subject here" "Body of the message here"
Etterpå, verifiser Gmail-innboksen og sjekk om den nye lokale meldingen har kommet.
Trinn 4: Konfigurer Zabbix til å sende varsler til Gmail
8. Hvis testene så langt er vellykkede, kan du gå til neste trinn og sette opp Zabbix til å sende genererte e-postvarsler til Gmail. Logg først på Zabbix-nettgrensesnittet og naviger til følgende meny: Administrasjon -> Medietyper -> Opprett medietype.
9. På neste skjermbilde skriv inn et vilkårlig navn for å identifisere skriptet unikt i Zabbix-konfigurasjonene (i dette eksempelet brukes Send-E-post-skript), velg Skript som Type fra listen og skriv inn navnet på Bash-skriptet opprettet tidligere ( zabbix-sendmail brukt i denne opplæringen) for å sende e-post fra kommandolinjen (ikke bruk banen til skriptet, bare skriptnavnet). Når du er ferdig, trykk på Legg til-knappen nedenfor for å gjenspeile endringer.
10. La oss videre konfigurere en e-postadresse som du vil sende Zabbix-varsler til. Gå til Profil -> Media -> Legg til og et nytt popup-vindu skal vises.
Her velger du navnet på skriptet du tidligere har navngitt (i dette eksempelet brukes Send-E-post-skript) for Type, skriv inn Gmail-adressen du vil sende e-post til, velg tidsperiode (uke, timer) når du sender e-post rapporter skal være aktive for sending, velg alvorlighetsgraden av meldingene du vil motta på Gmail-adressen din, velg Aktivert som status og trykk på Legg til-knappen for å legge til media. Til slutt trykker du på Oppdater-knappen for å bruke konfigurasjonen.
11. På neste trinn aktiverer du standard Zabbix-varsler ved å navigere til Konfigurasjon -> Handlinger, velg som hendelseskilde -> Utløsere fra høyremenyen, og trykk på Deaktivert status for å aktivere den. Gjenta trinnet for Event Source -> Interne eller andre spesiallagde handlinger, og du er ferdig.
Vent en stund til Zabbix begynner å samle informasjon og generere noen rapporter, bekreft deretter Gmail-innboksen din, og du skal se noen Zabbix-varsler som er sendt inn så langt.
Det er alt! Selv om denne veiledningen hovedsakelig var fokusert på å sende Zabbix-varsler til en Gmail-konto som bruker Gmail SMTP-server som en e-posthub, kan du ved å bruke den samme konfigurasjonen også sende Zabbix-e-postvarsler videre til andre gyldige internett-e-postkontoer ved å stole på Gmail for å rute e-postene dine gjennom SMTP-servere.