voorwoord
Als bediening en onderhoud moet u het monitoringsysteem gebruiken om de serverstatus en indicatoren voor websiteverkeer te controleren, en de gegevens van het monitoringsysteem gebruiken om de resultaten van de online release en de gezondheidsstatus van de website te begrijpen.Met uitstekende monitoringsoftware kunnen we:
- Blader door alle serverstatus van de hele website via een gebruiksvriendelijke interface;
- De monitoringgegevens kunnen eenvoudig worden bekeken op de webfront-end;
- Het is mogelijk om terug te kijken om de systeemproblemen en alarmcondities te vinden toen het ongeval plaatsvond.
Inhoudsopgave
1. Overzicht van zabbix
1. Wat is Zabbix?
2. Zabbix-bewakingsprincipe
3. Bewakingsobject
(1)zabbix-server
(2)zabbix-agent
(3)zabbix-proxy
(4)zabbix krijgen
(5)zabbix-afzender
2. Implementeer de zabbix-server
3. Implementeer de zabbix-client
4. Monitoringsjabloon
1. Gebruik officiële of ontwikkelde sjablonen
2. Aangepaste monitoringsjabloon
(1) Bewaak het aantal aanmeldingen van clienthosts
(2) Bewaak de statusinformatie van de nginx-client
Vijf, configureer het zabbix-alarm
1. Stel het alarmmedium in
2. Specificeer het alarmmedium in de gebruikersinstellingen
3. Specificeer de bewakingstrigger voor het alarm
4. Alarm testen
Zes, configureer de automatische detectie en automatische registratie van de zabbix-server
1. Automatische ontdekking
2. Automatische registratie
7. Implementeer de zabbix-proxyserver
Acht, SNMP-bewaking
1. Wat is Zabbix?
Zabbix is een open source-oplossing op ondernemingsniveau die functies voor gedistribueerde systeembewaking en netwerkbewaking biedt op basis van een webinterface.
Zabbix kan verschillende netwerkparameters bewaken, zorgen voor een veilige werking van het serversysteem en een flexibel meldingsmechanisme bieden waarmee systeembeheerders snel verschillende problemen kunnen lokaliseren en oplossen.
zabbix bestaat uit twee delen, zabbix-server en optioneel onderdeel zabbix-agent.Verzamel gegevens via de c/s-modus en geef deze weer aan de webzijde via de b/s-modus.
zabbix-server kan server-/netwerkstatusbewaking op afstand, gegevensverzameling en andere functies bieden via SNMP, zabbix-agent, ping, poortbewaking en andere methoden, en kan worden uitgevoerd op platforms zoals Linux.
De zabbix-agent moet op de bewaakte doelserver worden geïnstalleerd. Het voltooit voornamelijk de verzameling van hardware-informatie of geheugen, CPU en andere informatie met betrekking tot het besturingssysteem.
2. Zabbix-bewakingsprincipe
De zabix-agent wordt op de bewaakte host geïnstalleerd. De zabiboix-agent is verantwoordelijk voor het regelmatig verzamelen van de lokale gegevens van de client en het verzenden ervan naar de zabbix-server. Nadat de zabbix-server de gegevens heeft ontvangen, slaat deze de gegevens op in de database en kan de gebruiker deze zien op basis van Zabbix WEB Data presenteert afbeeldingen aan de voorkant.Wanneer zabbix een specifiek project bewaakt, stelt het project een triggerdrempel in. Wanneer de bewaakte indicator de door de trigger ingestelde drempel overschrijdt, zullen enkele noodzakelijke acties worden ondernomen, waaronder het verzenden van informatie (e-mail, WeChat, SMS), het verzenden van opdrachten (shell-opdrachten, opnieuw opstarten, opnieuw opstarten, installeren, enz.).
3. Bewakingsobject
Zabbix-monitoring wordt in het systeem geïmplementeerd, inclusief vijf algemene programma's: zabbix_server, zabix_agent, zabbix proxy, zabbix_get, zabix_sender, enz.
(1)zabbix-server
Het zabbix-serverdaemonproces, waarin de gegevens van zabbix_agent, zabbix_get, zabbix_sender en zabbix _proxy uiteindelijk worden ingediend bij de zabbix-server;
(2)zabbix-agent
Het client-daemonproces is verantwoordelijk voor het verzamelen van clientgegevens, bijvoorbeeld: het verzamelen van CPU-belasting, geheugen, gebruik van de harde schijf, enz.;
(3)zabbix-proxy
Het door zabbix gedistribueerde agent-daemonproces, meestal groter dan 500 hosts, vereist de implementatie van een gedistribueerde bewakingsarchitectuur;
(4)zabbix krijgen
zabbix-tool voor het ontvangen van gegevens, een opdracht die alleen wordt gebruikt, voert meestal de opdracht uit om externe clientinformatie aan de server- of proxy-zijde te verkrijgen;
(5)zabbix-afzender
Zabbix-tool voor het verzenden van gegevens, de gebruiker verzendt gegevens naar de server of het proxy-einde, meestal duurt het lang voordat de gebruiker dit controleert.
De zabbix-server zabbix_server gebruikt standaard poort 10051
zabbix_server: 192.168.116.60 (minstens 2G geheugen, 4G aanbevolen)
1. Schakel de firewall en selinux uit, stel de servernaam in en synchroniseer de tijd
systemctl uitschakelen --nu firewalldsetforce 0hostnaamectl set-hostnaam zbx-serverZijnntpdate ntp.aliyun.com
2. Download zabbix en gerelateerde software
#Download de downloadbron van zabbixrpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm#Vervang zabbix.repo door Ali sourcecd /etc/yum.repos.dsed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repoyum alles opruimen && yum makecacheyum install -y zabbix-server-mysql zabbix-agent#Installeer SCL (Software Collections), wat handig is voor latere installatie van hogere versies van php. De standaardversie van php geïnstalleerd door yum is 5.4, wat te laag is. De minimale versie van php voor zabbix 5.0 is versie 7.2.0. Met SCL kunnen meerdere softwareversies op dezelfde machine worden gebruikt zonder de afhankelijkheden van het hele systeem te beïnvloeden. Pakketten worden geïnstalleerd in de map /etc/opt/rh/.yum install -y centos-release-scl
U moet ook de zabbix-bron wijzigen en de download van de front-endomgeving starten
#Installeer de front-end omgevingyum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl#Installeer de database vereist door zabbixyum install -y mariadb-server mariadbsystemctl enable --nu mariadb#Initialiseer de databasemysql_veilige_installatie
#Importeer database-informatiezcat /usr/share/doc/zabbix-server-mysql-5.0.15/create.sql.gz | mysql -uroot -pabc123 zabbix
3. Wijzig het configuratiebestand van de zabbix-server en wijzig het databasewachtwoord
vim /etc/zabbix/zabbix_server.conf......DBPassword=zabbix #124 regel, specificeer het wachtwoord van de zabbix-database
4. Wijzig het php-configuratiebestand van zabbix
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf......php_value[date.timezone] = Asia/Shanghai #24 regel, commentaar verwijderen, tijdzone wijzigen
5. Start zabbix-gerelateerde services
systemctl herstart zabbix-server zabbix-agent httpd rh-php72-php-fpmsystemctl inschakelen zabbix-server zabbix-agent httpd rh-php72-php-fpm
6. Browsertoegang tot zabbix: http://192.168.116.60/zabbix
U kunt op de host klikken om de grafische gegevens te bekijken, maar er zullen Chinese verminkte karakters zijn en u moet de tekenset importeren
#Los zabbix-server webpagina Chinees onleesbaar probleem opyum install -y wqy-microhei-fonts\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
De zabbix 5.0-versie gebruikt een nieuwe versie van de clientagent2 die is ontwikkeld in de golang-taal.
De client zabbix_agent2 gebruikt standaard poort 10050.zabbix_agent01:192.168.116.70
1.Schakel de firewall en selinux uit, stel de servernaam in en synchroniseer de tijd
systemctl uitschakelen --nu firewalldsetforce 0hostnaamectl set-hostnaam zbx-agent01Zijnntpdate ntp.aliyun.com
2. Download de zabbix-client
#Stel de downloadbron van zabbix in, installeer zabbix-agent2rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpmcd /etc/yum.repos.dsed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repoyum install -y zabbix-agent2
3. Wijzig het clientconfiguratiebestand en open het
#Wijzig agent2-configuratiebestandvim /etc/zabbix/zabbix_agent2.conf......Server=192.168.116.60#80 regel, specificeer het IP-adres van de zabbix-serverServerActive=192.168.116.60#120 regel, specificeer het IP-adres van de zabbix-serverHostname=zbx-agent01#131 regel, specificeer de hostnaam van de huidige zabbix-client# start de dienstsystemctl enable --nu zabbix-agent2.service
4. Controleer de connectiviteit van zabbix-agent2 aan de serverzijde
#Install zabbix-opdracht om actief gegevens te verkrijgenyum install -y zabbix-get#testzabbix_get -s '192.168.116.70' -p 10050 -k 'agent.ping'zabbix_get -s '192.168.116.70' -p 10050 -k 'systeem.hostnaam'
5. Maak een nieuwe klant aan
1. Gebruik officiële of ontwikkelde sjablonen
Blader door Zabbix / Zabbix - ZABBIX GIT
Zabbix-zoeker - 900+ Zabbix-projecten: sjablonen, scripts, integraties, ...
2. Aangepaste monitoringsjabloon
(1) Bewaak het aantal aanmeldingen van clienthosts
Pas eerst de sleutel op de client aan (hier wordt gebruikt om het aantal host-logins te bewaken, de drempel is 3 en het alarm is groter dan 3)
Maak een nieuw .conf-bestand onder /etc/zabbix/zabbix_agent2.d/, pas de sleutel daarin aan en het formaat is
UserParameter=
,
Start vervolgens de service opnieuw om de bestandsconfiguratie te lezen systemctl herstart zabbix-agent2.service
U kunt de opdracht gebruiken om aan de serverzijde te testen (het huidige inlognummer is 4)
Nadat de test correct is, kunt u een aangepast sjabloon toevoegen
Maak een sjabloon, zoek en configureer het
Configuratie-applicatieset maken
Maak configuratietriggers
Maak configuratieafbeeldingen
Voeg de sjabloon toe aan de klant
Check de grafiek (het aantal logins wordt bijgehouden)
(2) Bewaak de statusinformatie van de nginx-client
De client installeert nginx en simuleert monitoring van de nginx-server
vim /etc/yum.repos.d/nginx.repo[nginx-stabiel]name=nginx stabiele repobaseurl=http://nginx.org/packages/centos/7/$basearch/gpgcheck=0ingeschakeld=1yum installeer nginx -y
Wijzig nginx-configuratiebestand /etc/nginx/conf.d/default.conf, open statusstatistieken
Start de service opnieuw en bekijk de pagina met statusstatistieken
systemctl start nginxkrul -s 127.0.0.1/status
Schrijf een script om nginx-statusinformatie te bewaken, de bovenstaande waarden te verkrijgen en toestemming voor uitvoering te geven
#/bin/bash#Description:Geautomatiseerde bewaking van nginx-prestaties en verwerking van nginx_status-scriptsHOST="lokale host"POORT=80URL="status"NGINX_COMMAND=$1#Controleer de nginx-statusnginx_check() {als [ -f /sbin/pidof ]; Dan/sbin/pidof nginx | wc -wandersps aux | grep -v "grep" | grep -c "nginx:"fi}Waarden voor #nginx statusgerelateerde informatienginx_active(){/usr/bin/curl -s "http://$HOST:$PORT/${URL}/" 2> /dev/null | awk '/Actief/ {print $NF}'}nginx_reading(){/usr/bin/curl -s "http://$HOST:$PORT/${URL}/" 2> /dev/null | awk '/Lezen/ {print $2}'}nginx_schrijven(){/usr/bin/curl -s "http://$HOST:$PORT/${URL}/" 2> /dev/null | awk '/Schrijven/ {print $4}'}nginx_waiting(){/usr/bin/curl -s "http://$HOST:$PORT/${URL}/" 2> /dev/null | awk '/Wachten/ {print $6}'}nginx_accepts(){/usr/bin/curl -s "http://$HOST:$PORT/${URL}/" 2> /dev/null | awk 'NR==3 {print $1}'}nginx_handled(){/usr/bin/curl -s "http://$HOST:$PORT/${URL}/" 2> /dev/null | awk 'NR==3 {print $2}'}nginx_requests(){/usr/bin/curl -s "http://$HOST:$PORT/${URL}/" 2> /dev/null | awk 'NR==3 {print $3}'}# commando om de overeenkomstige waarde te krijgengeval $NGINX_COMMAND inrekening)nginx_check;;actief)nginx_actief;;lezing)nginx_lezen;;schrijven)nginx_schrijven;;aan het wachten)nginx_wachten;;accepteert)nginx_accepteert;;afgehandeld)nginx_handled;;verzoeken)nginx_requests;;*)echo $"USAGE:$0 {controleren|actief|lezen|schrijven|wachten|accepteert|behandeld|verzoeken}"esac
Scripttest is correct
Aangepaste bewakingsvariabelen voor gebruik in sjablonen
UserParameter=nginx.status[*],/etc/zabbix/zabbix_shell/zabbix_nginx.sh $1#[*] vertegenwoordigt de waarde die is doorgegeven door de aangepaste variabele nginx.status#$1 vertegenwoordigt de waarde die is doorgegeven door de vorige variabele als een parameter voor de uitvoering van dit script om de overeenkomstige statuswaarde te verkrijgen
Start de service opnieuw systemctl herstart zabbix-agent2.service om aan de serverzijde te testen
De test is correct, ga naar de voorkant om de sjabloon aan te passen
1. Stel het alarmmedium in
kan worden getest
2. Specificeer het alarmmedium in de gebruikersinstellingen
3. Specificeer de bewakingstrigger voor het alarm
4. Alarm testen
Een van de alarmtriggers die we eerder hebben ingesteld, is dat wanneer het nginx-proces 0 is, er een alarm wordt geactiveerd, zodat we het afsluiten van nginx kunnen simuleren om te zien of we een alarm van zabbix kunnen ontvangen via het ingestelde alarmmedium.
Wanneer we het probleem herstellen, zal het probleem verdwijnen
1. Automatische ontdekking
zabbix automatische ontdekking (passieve modus voor agent2) is dat de zabbix-server actief alle clients ontdekt en vervolgens de clientinformatie op de server registreert.Het nadeel is dat als het aantal hosts in het gedefinieerde netwerksegment groot is, de registratie van de zabbix-server lang zal duren en de druk hoog zal zijn.
Voeg eerst een client toe, installeer de zabbix-agent2-service, wijzig het configuratiebestand om het serveradres en de clientnaam op te geven en start vervolgens de service
Zowel de server als de client moeten elkaars domeinnaamomzetting configureren
2. Automatische registratie
zabbix registreert automatisch (actieve modus voor agent2), en zabbix agent2 zal actief zijn eigen informatie rapporteren en naar de zabbix-server sturen.Het nadeel is dat zabbix agent2 de zabbix-server mogelijk niet kan vinden vanwege een onjuiste configuratie van het configuratiebestand of een netwerkstoring.
Schakel eerst automatische detectie uit, verwijder client 02 en voer automatische registratie uit
Schakel automatische registratie in het clientconfiguratiebestand in en start de service opnieuw
Actie voor automatische registratie toevoegen
Configureer de zabbix-proxy om de gecentraliseerde druk van de server te delen en het netwerkvertragingsprobleem tussen meerdere computerruimten op te lossen.
Schakel eerst de firewall uit, wijzig de hostnaam en installeer de proxy
systemctl uitschakelen --nu firewalldsetforce 0hostnamectl set-hostnaam zbx-proxyrpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpmcd /etc/yum.repos.dsed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repoyum install -y zabbix-proxy-mysql zabbix-get
Installeer de door de agent vereiste database, voer de initialisatie uit en stel het wachtwoord in op 123123
yum install -y mariadb-server mariadbsystemctl enable --nu mariadbmysql_veilige_installatie
Database en gebruiker toevoegen, autoriseren, databasetabelinformatie importeren
mysql -uroot -p123123CREATE DATABASE zabbix_proxy karakterset utf8 collate utf8_bin;STEUN ALLES OP zabbix_proxy.* NAAR 'zabbix'@'%' GEÏDENTIFICEERD DOOR 'zabbix';flush-privileges;ontslag nemen#Tabelgegevens importeren na afsluitenzcat /usr/share/doc/zabbix-proxy-mysql-5.0.29/schema.sql.gz | mysql -uroot -p123123 zabbix_proxy
Wijzig het proxyconfiguratiebestand en start de service
vim /etc/zabbix/zabbix_proxy.confServer=192.168.116.60#30 regel, specificeer het IP-adres van de zabbix-serverHostname=zbx-proxy#49 regel, specificeer de hostnaam van de huidige zabbix proxyserverDBPassword=zabbix#196 regel, specificeer het wachtwoord van de huidige database zabbix-gebruikersystemctl start zabbix-proxy
Wijzig de agent zodat deze naar het adres van de agent verwijst
vim /etc/zabbix/zabbix_agent2.conf......Server=192.168.116.40#80 regel, specificeer het IP-adres van de zabbix-proxyserverServerActive=192.168.116.40#120 regel, specificeer het IP-adres van de zabbix-proxyserver
Het is ook noodzakelijk om domeinnaamresolutie aan elke host toe te voegen
Ga vervolgens naar de server om de proxy op te geven
Proxy toevoegen bij het maken van een client
Start vervolgens achtereenvolgens de server-, proxy- en clientservices opnieuw op
Wacht tot alle clients oplichten
Gebruik het eenvoudige SNMP-netwerkbeheerprotocol om bronnen in het netwerk in realtime te beheren en te bewaken.
Installeer eerst snmp op de routers en switches die gemonitord moeten worden (neem hier de server als voorbeeld)
yum install -y net-snmp net-snmp-utils.x86_64systemctl start snmpd.service
Ga vervolgens naar de voorkant om snmp aan te passen en te gebruiken