Zabbix Server + Agent unter Ubuntu 16.04 LTS installieren
Aus znilwiki
Changelog:
- 25.08.2016: Erste Version mit Ubuntu 16.04 und Zabbix 3.0.4
- 05.09.2016: Diverse Fehlerbehebung im Bereich systemctl
- 25.11.2016: Umbau der Anleitung mit Installation von Zabbix aus den Repository von repo.zabbix.com
- 26.11.2016: Anpassung diverser Kleinigkeiten - und offizielle Freigabe des Artikels
- 07.08.2016: Ein paar Fehler in den Pfaden für den Proxy behoben - Danke an Jakob für den Hinweis
- 01.09.2017: Zabbix 3.4 ergänzt
- 17.10.2017: Automatische Updates sicher deaktivieren
- 25.10.2017: Fehler in Logrotate für zabbix_traps behoben
- 20.04.2018: Skripte für Datensicherung unter VMware hinzugefügt (Hot Backup)
- 13.06.2018: Skripte für Backups unter VMware angepasst (Warnhinweis Passwort)
Installation Ubuntu Server 16.04.x LTS (Long Term Support)
Einstellungen für die VM
Falls Ihr den Zabbix Server oder Proxy als VM installiert so erstellt diese mit den folgenden Einstellungen:
- Konfiguration: Typisch
- Name und Speicherort: Nach eigener Wahl
- Speicher: Nach eigener Wahl
- Gastbetriebssystem: (*) Linux --> Ubuntu (64-Bit)
- Netzwerk:
- Wie viele Netzwerkkarten möchten Sie anschließen: 1
- Netzwerk: Nach Wahl
- Adapter: VMXNET 3
- Größer der virtuellen Festplatte:
- Hängt von der Umgebungsgröße ab.
- Ich empfehle min 50GB für Server / 20GB für Proxy.
- Kann nachträglich vergrößert werden: Ubuntu Linux - Festplatte mit LVM im laufenden Betrieb ohne Neustart vergrößern
- Thick-Provision Lazy-Zeroed
Danach Einstellungen der VM bearbeiten: Reiter Hardware:
- Arbeitsspeicher:
- Server 2GB oder mehr
- Proxy 1GB
- CPUs:
- Anzahl der virtuellen Sockets
- Server 2 oder mehr
- Proxy 1
- Anzahl der Cores pro Socket: 1
- Anzahl der virtuellen Sockets
Reiter Optionen
- ...
Grundinstallation
Verwendet die 64Bit Version: http://www.ubuntu.com/download/server (ubuntu-16.04.1-server-amd64.iso), CD einlegen und los,
die Fragen beantwortet Ihr wie folgt (sind ggf. die Überschriften der Dialoge):
- Deutsch
- Ubuntu Server installieren
- [!] Select a language: <Ja>
- [!] Auswählen des Standorts: Deutschland
- [!] Tastatur konfigurieren: <Nein>
- [!] Tastatur konfigurieren: German
- [!] Tastatur konfigurieren: German
- [!] Netzwerk einrichten: zabbix-server.domain.local (Name nach Wahl!)
- [!] Benutzer und Passwörter einrichten: installadmin (Benutzername nach Wahl)
- [!] Benutzer und Passwörter einrichten: installdadmin
- [!] Benutzer und Passwörter einrichten: test1234 (Kennwort nach Wahl)
- [!] Benutzer und Passwörter einrichten: test1234
- [!] Benutzer und Passwörter einrichten: <Nein>
- [!] Uhr einstellen: <Ja>
- [!!] Festplatten partitionieren: Geführt - gesamte Platte verwenden und LVM einrichten
- [!!] Festplatten partitionieren: Return
- [!!] Festplatten partitionieren: <Ja>
- [!] Festplatten partitionieren: <Weiter>
- [!] Festplatten partitionieren: <Ja>
- [!] Paketmanager konfigurieren: ggf. Proxy angeben <Weiter>
- [!] Konfiguriere tasksel: Keine automatischen Aktualisierungen
- [!] Softwareauswahl
- [*] LAMP server
- [*] standard system utilities
- [*] OpenSSH Server
- <Weiter>
- [!] Konfiguriere mysql-server-5.7: Passwort-nach-Wahl <Weiter>
- [!] Konfiguriere mysql-server-5.7: Passwort-nach-Wahl <Weiter>
- [!] GRUB-Bootloader auf einer Festplatte installieren: <Ja>
- [!!] Installation abschließen: <Weiter>
- Bootet neu, CD-ROM entfernen
root wieder freischalten
- Mit Benutzer installadmin anmelden
sudo passwd root
- Kennwort des Benutzer installadmin eintippen
- neues Kennwort für "root" 2x eintippen
- Lokal Anmelden kann man sich nun mit root - aber eine Anmeldung über SSH funktioniert dann immer noch nicht.
- Damit diese auch funktioniert müsst ihr die
sshd_config
bearbeiten:
sudo nano /etc/ssh/sshd_config
sucht nach der Zeile (STRG + W ist Suchen) nach
PermitRootLogin without-password
und ändert diese wie folgt:
PermitRootLogin yes
Speichert die Datei und startet den ssh Dienst neu:
sudo systemctl restart sshd
Ab dann klappt es auch mit dem SSH-Login für den Benutzer root, z.B. über puTTY
Jetzt
logout
eintippen - der (eingeschränkte) Benutzer installadmin hat sich somit abgemeldet
Installadmin löschen
Gleich der erste Test - wir melden uns als root an und löschen den installadmin mit dem unsicheren Kennwort wieder.
Als root anmelden
deluser --remove-home installadmin
root farbiger Prompt
Als root anmelden:
nano ~/.bashrc
Zeile 39 (Alt + C aktiviert Zeilennummernanzeige):
#force_color_prompt=yes
ändern zu (# entfernen):
force_color_prompt=yes
nun wieder Abmelden - ab der nächsten Anmeldung ist der neue Prompt aktiv.
Feste IP-Adresse vergeben
Als root anmelden
Konfigurationsdatei bearbeiten:
nano /etc/network/interfaces
Die Netzwerkkarte hat einen Namen der in der Regel mit
ens...
beginnt. In meiner VM ist es ens160
. Diesen Abschnitt müsst Ihr bearbeiten (mit euren Daten natürlich):
auto ens160 iface ens160 inet static address 192.168.1.81 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 dns-search znil.local dns-nameservers 192.168.1.1
- mehrere DNS-Server werden einfach durch Leerzeichen getrennt angegeben
- Speichern STRG + x, danach j und den Dateinamen mit Enter bestätigen
reboot
eintippen und den Server damit wieder neu starten - wenn ihr alles richtig gemacht habt hört dieser nun auf die neue IP-Adresse,
wenn er beim Booten zickt und hängt habt ihr wahrscheinlich bei der IP etwas falsch eingetippt - nochmal vergleichen!
Updates einspielen
- wieder anmelden als root - ggf. per puTTY - dann können wir schön die nachfolgenden Befehle per Copy&Paste einfügen.
- Updates suchen für Betriebssystem: (aktualisiert den Katalog aus den Update-Quellen)
apt update
- Updates einspielen:
apt dist-upgrade -y
- Nach Update überflüssige Pakete entfernen:
apt autoremove -y
Automatische Updates deaktivieren
Sicherheitshalber - ich hatte jetzt 4 Zabbix Server wo die /boot
zu 100% voll war wegen der Kernelupdates.
Das verhindern wir mit:
apt remove -y unattended-upgrades
Nun werden auch diese nicht automatisch eingespielt.
Kommentar: Wie blöd ist das denn. Da Updates das System bis die Partition voll läuft. Gerade wenn Ihr ein System habt auf dem nicht regelmäßig einer nachschaut - schaltet die Updates mit obiger Methode unbedingt ab. Ich habe noch nicht getestet ob mal das deinstallieren der alten Kernel per cronjob automatisieren kann
Benötigte Programme für Zabbix installieren
apt install dnsutils htop make gcc libc6-dev libmysqlclient-dev libcurl4-openssl-dev libssh2-1-dev libsnmp-dev libiksemel-dev mysql-server libopenipmi-dev fping php7.0-gd snmp libsnmp-base openjdk-8-jdk unixodbc unixodbc-dev libxml2 libxml2-dev snmp-mibs-downloader snmpd snmptrapd snmptt python-pywbem php7.0-ldap traceroute ipmitool libldap2-dev php7.0-bcmath php7.0-mbstring php7.0-xml ttf-dejavu-core -y
apt
gehen und doppelklicken. Ggf. mehrmals versuchen - bis die ganze Zeile markiert ist. Diese kann dann so in z.B. PuTTY eingefügt werden
Mit der obigen Zeite werden gewiss einige Pakete zuviel installiert - unter anderem alles was nötig wäre um Zabbix auch direkt aus dem Quellcode zu kompilieren. Aber es sind dann auch definitiv alle notwendigen Voraussetzungen für jegliche Zabbix-Abfrage vorhanden - und anderem zum Beispiel die ganzen PHP-Pakte.
Zabbix Server installieren
Installationspfade
Achtung - entgegen meiner Anleitungen für Ubuntu 12.04. und 14.04. sind die Pfade nach der Installation nun anders:
Binärdateien:
/usr/sbin/zabbix_agentd /usr/sbin/zabbix_server /usr/sbin/zabbix_proxy /usr/bin/zabbix_get /usr/bin/zabbix_sender
Konfigurationsdateien:
/etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_proxy.conf /etc/zabbix/zabbix_java_gateway.conf
Scripte:
/usr/lib/zabbix/externalscripts /usr/lib/zabbix/alertscripts/
Javagateway:
/usr/sbin/zabbix_java_gateway
Zabbix Repository hinzufügen
wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+xenial_all.deb dpkg -i zabbix-release_3.0-1+xenial_all.deb apt update
wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb dpkg -i zabbix-release_3.2-1+xenial_all.deb apt update
wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb dpkg -i zabbix-release_3.4-1+xenial_all.deb apt update
Zabbix installieren
Die Installation der ausführbaren Dateien erfolgt bei allen Varianten nach /sbin
!
Als Server
apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-get zabbix-sender zabbix-java-gateway
Als Proxy
apt install zabbix-proxy-mysql zabbix-agent zabbix-get zabbix-sender zabbix-java-gateway
MySQL Datenbank optimieren
Für einen einfachen Server könnt Ihr das hier auch überspringen!
Die Einrichtung wird auch hier beschrieben - allerdings etwas knapp: https://www.zabbix.com/documentation/3.0/manual/appendix/install/db_scripts
Die Zabbix-Datenbank kann recht groß werden - wir passen MySQL deshalb aus Performance-Gründe einmal an (diesen Tipp habe ich schamlos von Das 4. Labor übernommen.
- MySQL Einstellungen bearbeiten:
nano /etc/mysql/mysql.conf.d/mysqld.cnf
Wer MariaDB einsetzt muss statt dessen diese Datei nehmen:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
und unterhalb von
[mysqld]
Diese Zeilen einfügen:
# Größe der Logdatei statt 10MB innodb_log_file_size = 512M # Transaktionswerte nach Möglichkeit nicht in den Doublewritebuffer schreiben innodb_doublewrite = 0 # Transaktionen schon bestätigen sobald diese im Cache stehen: innodb_flush_log_at_trx_commit = 2 # Wieviel Hauptspeicher soll zum Puffern verwendet werden? Nehmt die Hälfte des vorhandenen Speichers (bei 4GB RAM also 2G, bei 1G also 512M) innodb_buffer_pool_size = 1G # 2-Phasen Übertragung ausschalten innodb_support_xa = No
mit STRG + x den nano verlassen und speichern bestätigen j + Enter)
innodb_buffer_pool_size
!!! Dieser Wert darf nicht größer sein als der tatsächlich vorhandene RAM, sonst startet MySQL nicht
Prüft ggf. ob diese Zeilen dann nicht doppelt vorkommen!
Wenn Ihr später immer mehr Poller, Pinger und andere Zabbix-Prozesse startet müsst Ihr auch die Anzahl der möglichen Verbindungen zu MySQL Datenbank erhöhen.
Auch jeder Nutzer der auf dem Webinterface arbeitet verbraucht Verbindungen. Im zabbix_server.log steht dann eine Meldung mit "too many connection".
Sucht die Zeile
#max_connections = 100
und ändert diese auf
max_connections = 300
Nun müssen wir den mysql Server einmal neu starten:
systemctl restart mysql
Ob Ihr alles richtig gemacht habt könnt Ihr im Log kontrollieren:
cat /var/log/mysql/error.log
Die Ausgabe sollte dann etwa so aussehen:
2016-08-25T14:52:07.920802Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.13-0ubuntu0.16.04.2) starting as process 4004 ... 2016-08-25T14:52:07.924812Z 0 [Note] InnoDB: PUNCH HOLE support available 2016-08-25T14:52:07.924841Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2016-08-25T14:52:07.924848Z 0 [Note] InnoDB: Uses event mutexes 2016-08-25T14:52:07.924854Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier 2016-08-25T14:52:07.924860Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.8 2016-08-25T14:52:07.924865Z 0 [Note] InnoDB: Using Linux native AIO 2016-08-25T14:52:07.925134Z 0 [Note] InnoDB: Number of pools: 1 2016-08-25T14:52:07.925241Z 0 [Note] InnoDB: Using CPU crc32 instructions 2016-08-25T14:52:07.926543Z 0 [Note] InnoDB: Initializing buffer pool, total size = 1G, instances = 8, chunk size = 128M 2016-08-25T14:52:07.989649Z 0 [Note] InnoDB: Completed initialization of buffer pool 2016-08-25T14:52:07.997996Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority(). 2016-08-25T14:52:08.009694Z 0 [Note] InnoDB: Highest supported file format is Barracuda. 2016-08-25T14:52:08.032506Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables 2016-08-25T14:52:08.032592Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... 2016-08-25T14:52:08.143845Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. 2016-08-25T14:52:08.144626Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active. 2016-08-25T14:52:08.144640Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active. 2016-08-25T14:52:08.144880Z 0 [Note] InnoDB: Waiting for purge to start 2016-08-25T14:52:08.195078Z 0 [Note] InnoDB: 5.7.13 started; log sequence number 2523985 2016-08-25T14:52:08.195583Z 0 [Note] Plugin 'FEDERATED' is disabled. 2016-08-25T14:52:08.196997Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key 2016-08-25T14:52:08.197031Z 0 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306 2016-08-25T14:52:08.197045Z 0 [Note] - '127.0.0.1' resolves to '127.0.0.1'; 2016-08-25T14:52:08.197100Z 0 [Note] Server socket created on IP: '127.0.0.1'. 2016-08-25T14:52:08.201955Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool 2016-08-25T14:52:08.202784Z 0 [Note] InnoDB: Buffer pool(s) load completed at 160825 16:52:08 2016-08-25T14:52:08.206501Z 0 [Note] Event Scheduler: Loaded 0 events 2016-08-25T14:52:08.206646Z 0 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.7.13-0ubuntu0.16.04.2' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu) 2016-08-25T14:52:08.769260Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
Wichtig ist immer die vorletzte Zeile - da muss der Port auftauchen auf dem der Server lauscht, in der Regel 3306
MySQL Datenbank einrichten
- Zabbix Datenbank anlegen:
- Hinweis: er wird nach einem Passwort fragen - das ist das was sie beim Setup dem MySQL root Benutzer gegeben haben! ( Passwort-nach-Wahl )
- Habt Ihr kein Kennwort vergeben müsst Ihr trotzdem Enter drücken!
mysql -u root -p -e "create database zabbix character set utf8 collate utf8_bin" mysql -u root -p -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'"
Er fragt nach einem Kennwort - das ist entweder das Kennwort was Ihr beim Setup für den MySQL-Root Benutzer angebenen habt - oder falls ihr wie zuvor beschrieben die Datenbank einmal gelöscht habt - ist es das was ihr mit mysql_secure_installation
gesetzt habt.
- nun die Datenbanktabellen anlegen - das geschieht nun unter dem Datenbankbenutzer "zabbix" der das Passwort "zabbix" hat - wenn er also nach einem Passwort fragt nun dieses eingeben. Falls das jemand für unsicher hält - nun der MySQL Server sollte - wenn man es nicht ändert - eh nur lokale Anfragen erlauben, sprich von extern komme ich gar nicht ran.
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -pzabbix zabbix
Bei einem Proxy:
Auf einem Proxy darf nur die schema.sql
importiert werden!!!!
Solltet Ihr aus versehen alle Schema importiert haben so löscht die Datenbank noch einmal und fangt von vorne an! Der Proxy funktioniert nicht wenn er alle Schemas hat!
zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uzabbix -pzabbix zabbix
Konfigurationsdateien anpassen
Nun die Konfigurationsdatei bearbeiten:
für einen Server:
nano /etc/zabbix/zabbix_server.conf
- folgende Zeilen finden und auf diese Werte ändern, ggf. den # davor entfernen, STRG + W ist suchen!
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix StartIPMIPollers=5 StartPollersUnreachable=5 StartPingers=10 StartVMwareCollectors=5 #Die Cache Werte ggf. dem vorhandenen Arbeitsspeicher anpassen! #Oder nicht ändern - Zabbix warnt euch wenn ein Wert ausgeschöpft ist und vergrößert werden muss - wenn das Template "Zabbix Server" zugeordnet wurde VMwareCacheSize=64M CacheSize=128M HistoryCacheSize=64M HistoryIndexCacheSize=16M TrendCacheSize=64M ValueCacheSize=64M Timeout=30
# This is a configuration file for Zabbix server daemon
# To get more information about Zabbix, visit http://www.zabbix.com
############ GENERAL PARAMETERS #################
### Option: ListenPort
# Listen port for trapper.
#
# Mandatory: no
# Range: 1024-32767
# Default:
# ListenPort=10051
### Option: SourceIP
# Source IP address for outgoing connections.
#
# Mandatory: no
# Default:
# SourceIP=
### Option: LogType
# Specifies where log messages are written to:
# system - syslog
# file - file specified with LogFile parameter
# console - standard output
#
# Mandatory: no
# Default:
# LogType=file
### Option: LogFile
# Log file name for LogType 'file' parameter.
#
# Mandatory: no
# Default:
# LogFile=
LogFile=/var/log/zabbix/zabbix_server.log
### Option: LogFileSize
# Maximum size of log file in MB.
# 0 - disable automatic log rotation.
#
# Mandatory: no
# Range: 0-1024
# Default:
# LogFileSize=1
LogFileSize=0
### Option: DebugLevel
# Specifies debug level:
# 0 - basic information about starting and stopping of Zabbix processes
# 1 - critical information
# 2 - error information
# 3 - warnings
# 4 - for debugging (produces lots of information)
# 5 - extended debugging (produces even more information)
#
# Mandatory: no
# Range: 0-5
# Default:
# DebugLevel=3
### Option: PidFile
# Name of PID file.
#
# Mandatory: no
# Default:
# PidFile=/tmp/zabbix_server.pid
PidFile=/var/run/zabbix/zabbix_server.pid
### Option: DBHost
# Database host name.
# If set to localhost, socket is used for MySQL.
# If set to empty string, socket is used for PostgreSQL.
#
# Mandatory: no
# Default:
# DBHost=localhost
### Option: DBName
# Database name.
# For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored.
#
# Mandatory: yes
# Default:
# DBName=
DBName=zabbix
### Option: DBSchema
# Schema name. Used for IBM DB2 and PostgreSQL.
#
# Mandatory: no
# Default:
# DBSchema=
### Option: DBUser
# Database user. Ignored for SQLite.
#
# Mandatory: no
# Default:
# DBUser=
DBUser=zabbix
### Option: DBPassword
# Database password. Ignored for SQLite.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
DBPassword=zabbix
### Option: DBSocket
# Path to MySQL socket.
#
# Mandatory: no
# Default:
# DBSocket=/tmp/mysql.sock
### Option: DBPort
# Database port when not using local socket. Ignored for SQLite.
#
# Mandatory: no
# Range: 1024-65535
# Default (for MySQL):
# DBPort=3306
############ ADVANCED PARAMETERS ################
### Option: StartPollers
# Number of pre-forked instances of pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartPollers=5
### Option: StartIPMIPollers
# Number of pre-forked instances of IPMI pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartIPMIPollers=0
StartIPMIPollers=5
### Option: StartPollersUnreachable
# Number of pre-forked instances of pollers for unreachable hosts (including IPMI and Java).
# At least one poller for unreachable hosts must be running if regular, IPMI or Java pollers
# are started.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartPollersUnreachable=1
StartPollersUnreachable=5
### Option: StartTrappers
# Number of pre-forked instances of trappers.
# Trappers accept incoming connections from Zabbix sender, active agents and active proxies.
# At least one trapper process must be running to display server availability and view queue
# in the frontend.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartTrappers=5
### Option: StartPingers
# Number of pre-forked instances of ICMP pingers.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartPingers=1
StartPingers=10
### Option: StartDiscoverers
# Number of pre-forked instances of discoverers.
#
# Mandatory: no
# Range: 0-250
# Default:
# StartDiscoverers=1
### Option: StartHTTPPollers
# Number of pre-forked instances of HTTP pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartHTTPPollers=1
### Option: StartTimers
# Number of pre-forked instances of timers.
# Timers process time-based trigger functions and maintenance periods.
# Only the first timer process handles the maintenance periods.
#
# Mandatory: no
# Range: 1-1000
# Default:
# StartTimers=1
### Option: StartEscalators
# Number of pre-forked instances of escalators.
#
# Mandatory: no
# Range: 0-100
# Default:
# StartEscalators=1
### Option: JavaGateway
# IP address (or hostname) of Zabbix Java gateway.
# Only required if Java pollers are started.
#
# Mandatory: no
# Default:
# JavaGateway=
### Option: JavaGatewayPort
# Port that Zabbix Java gateway listens on.
#
# Mandatory: no
# Range: 1024-32767
# Default:
# JavaGatewayPort=10052
### Option: StartJavaPollers
# Number of pre-forked instances of Java pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartJavaPollers=0
### Option: StartVMwareCollectors
# Number of pre-forked vmware collector instances.
#
# Mandatory: no
# Range: 0-250
# Default:
# StartVMwareCollectors=0
StartVMwareCollectors=5
### Option: VMwareFrequency
# How often Zabbix will connect to VMware service to obtain a new data.
#
# Mandatory: no
# Range: 10-86400
# Default:
# VMwareFrequency=60
### Option: VMwarePerfFrequency
# How often Zabbix will connect to VMware service to obtain performance data.
#
# Mandatory: no
# Range: 10-86400
# Default:
# VMwarePerfFrequency=60
### Option: VMwareCacheSize
# Size of VMware cache, in bytes.
# Shared memory size for storing VMware data.
# Only used if VMware collectors are started.
#
# Mandatory: no
# Range: 256K-2G
# Default:
# VMwareCacheSize=8M
VMwareCacheSize=64M
### Option: VMwareTimeout
# Specifies how many seconds vmware collector waits for response from VMware service.
#
# Mandatory: no
# Range: 1-300
# Default:
# VMwareTimeout=10
### Option: SNMPTrapperFile
# Temporary file used for passing data from SNMP trap daemon to the server.
# Must be the same as in zabbix_trap_receiver.pl or SNMPTT configuration file.
#
# Mandatory: no
# Default:
# SNMPTrapperFile=/tmp/zabbix_traps.tmp
### Option: StartSNMPTrapper
# If 1, SNMP trapper process is started.
#
# Mandatory: no
# Range: 0-1
# Default:
# StartSNMPTrapper=0
### Option: ListenIP
# List of comma delimited IP addresses that the trapper should listen on.
# Trapper will listen on all network interfaces if this parameter is missing.
#
# Mandatory: no
# Default:
# ListenIP=0.0.0.0
# ListenIP=127.0.0.1
### Option: HousekeepingFrequency
# How often Zabbix will perform housekeeping procedure (in hours).
# Housekeeping is removing outdated information from the database.
# To prevent Housekeeper from being overloaded, no more than 4 times HousekeepingFrequency
# hours of outdated information are deleted in one housekeeping cycle, for each item.
# To lower load on server startup housekeeping is postponed for 30 minutes after server start.
# With HousekeepingFrequency=0 the housekeeper can be only executed using the runtime control option.
# In this case the period of outdated information deleted in one housekeeping cycle is 4 times the
# period since the last housekeeping cycle, but not less than 4 hours and not greater than 4 days.
#
# Mandatory: no
# Range: 0-24
# Default:
# HousekeepingFrequency=1
### Option: MaxHousekeeperDelete
# The table "housekeeper" contains "tasks" for housekeeping procedure in the format:
# [housekeeperid], [tablename], [field], [value].
# No more than 'MaxHousekeeperDelete' rows (corresponding to [tablename], [field], [value])
# will be deleted per one task in one housekeeping cycle.
# SQLite3 does not use this parameter, deletes all corresponding rows without a limit.
# If set to 0 then no limit is used at all. In this case you must know what you are doing!
#
# Mandatory: no
# Range: 0-1000000
# Default:
# MaxHousekeeperDelete=5000
### Option: SenderFrequency
# How often Zabbix will try to send unsent alerts (in seconds).
#
# Mandatory: no
# Range: 5-3600
# Default:
# SenderFrequency=30
### Option: CacheSize
# Size of configuration cache, in bytes.
# Shared memory size for storing host, item and trigger data.
#
# Mandatory: no
# Range: 128K-8G
# Default:
# CacheSize=8M
CacheSize=128M
### Option: CacheUpdateFrequency
# How often Zabbix will perform update of configuration cache, in seconds.
#
# Mandatory: no
# Range: 1-3600
# Default:
# CacheUpdateFrequency=60
### Option: StartDBSyncers
# Number of pre-forked instances of DB Syncers.
#
# Mandatory: no
# Range: 1-100
# Default:
# StartDBSyncers=4
### Option: HistoryCacheSize
# Size of history cache, in bytes.
# Shared memory size for storing history data.
#
# Mandatory: no
# Range: 128K-2G
# Default:
# HistoryCacheSize=16M
HistoryCacheSize=64M
### Option: HistoryIndexCacheSize
# Size of history index cache, in bytes.
# Shared memory size for indexing history cache.
#
# Mandatory: no
# Range: 128K-2G
# Default:
# HistoryIndexCacheSize=4M
HistoryIndexCacheSize=16M
### Option: TrendCacheSize
# Size of trend cache, in bytes.
# Shared memory size for storing trends data.
#
# Mandatory: no
# Range: 128K-2G
# Default:
# TrendCacheSize=4M
TrendCacheSize=64M
### Option: ValueCacheSize
# Size of history value cache, in bytes.
# Shared memory size for caching item history data requests.
# Setting to 0 disables value cache.
#
# Mandatory: no
# Range: 0,128K-64G
# Default:
# ValueCacheSize=8M
ValueCacheSize=64M
### Option: Timeout
# Specifies how long we wait for agent, SNMP device or external check (in seconds).
#
# Mandatory: no
# Range: 1-30
# Default:
# Timeout=3
Timeout=30
### Option: TrapperTimeout
# Specifies how many seconds trapper may spend processing new data.
#
# Mandatory: no
# Range: 1-300
# Default:
# TrapperTimeout=300
### Option: UnreachablePeriod
# After how many seconds of unreachability treat a host as unavailable.
#
# Mandatory: no
# Range: 1-3600
# Default:
# UnreachablePeriod=45
### Option: UnavailableDelay
# How often host is checked for availability during the unavailability period, in seconds.
#
# Mandatory: no
# Range: 1-3600
# Default:
# UnavailableDelay=60
### Option: UnreachableDelay
# How often host is checked for availability during the unreachability period, in seconds.
#
# Mandatory: no
# Range: 1-3600
# Default:
# UnreachableDelay=15
### Option: AlertScriptsPath
# Full path to location of custom alert scripts.
# Default depends on compilation options.
#
# Mandatory: no
# Default:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
### Option: ExternalScripts
# Full path to location of external scripts.
# Default depends on compilation options.
#
# Mandatory: no
# Default:
# ExternalScripts=${datadir}/zabbix/externalscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
### Option: FpingLocation
# Location of fping.
# Make sure that fping binary has root ownership and SUID flag set.
#
# Mandatory: no
# Default:
# FpingLocation=/usr/sbin/fping
FpingLocation=/usr/bin/fping
### Option: Fping6Location
# Location of fping6.
# Make sure that fping6 binary has root ownership and SUID flag set.
# Make empty if your fping utility is capable to process IPv6 addresses.
#
# Mandatory: no
# Default:
# Fping6Location=/usr/sbin/fping6
Fping6Location=/usr/bin/fping6
### Option: SSHKeyLocation
# Location of public and private keys for SSH checks and actions.
#
# Mandatory: no
# Default:
# SSHKeyLocation=
### Option: LogSlowQueries
# How long a database query may take before being logged (in milliseconds).
# Only works if DebugLevel set to 3, 4 or 5.
# 0 - don't log slow queries.
#
# Mandatory: no
# Range: 1-3600000
# Default:
# LogSlowQueries=0
LogSlowQueries=3000
### Option: TmpDir
# Temporary directory.
#
# Mandatory: no
# Default:
# TmpDir=/tmp
### Option: StartProxyPollers
# Number of pre-forked instances of pollers for passive proxies.
#
# Mandatory: no
# Range: 0-250
# Default:
# StartProxyPollers=1
### Option: ProxyConfigFrequency
# How often Zabbix Server sends configuration data to a Zabbix Proxy in seconds.
# This parameter is used only for proxies in the passive mode.
#
# Mandatory: no
# Range: 1-3600*24*7
# Default:
# ProxyConfigFrequency=3600
### Option: ProxyDataFrequency
# How often Zabbix Server requests history data from a Zabbix Proxy in seconds.
# This parameter is used only for proxies in the passive mode.
#
# Mandatory: no
# Range: 1-3600
# Default:
# ProxyDataFrequency=1
### Option: AllowRoot
# Allow the server to run as 'root'. If disabled and the server is started by 'root', the server
# will try to switch to the user specified by the User configuration option instead.
# Has no effect if started under a regular user.
# 0 - do not allow
# 1 - allow
#
# Mandatory: no
# Default:
# AllowRoot=0
### Option: User
# Drop privileges to a specific, existing user on the system.
# Only has effect if run as 'root' and AllowRoot is disabled.
#
# Mandatory: no
# Default:
# User=zabbix
### Option: Include
# You may include individual files or all files in a directory in the configuration file.
# Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=
# Include=/usr/local/etc/zabbix_server.general.conf
# Include=/usr/local/etc/zabbix_server.conf.d/
# Include=/usr/local/etc/zabbix_server.conf.d/*.conf
### Option: SSLCertLocation
# Location of SSL client certificates.
# This parameter is used only in web monitoring.
#
# Mandatory: no
# Default:
# SSLCertLocation=${datadir}/zabbix/ssl/certs
### Option: SSLKeyLocation
# Location of private keys for SSL client certificates.
# This parameter is used only in web monitoring.
#
# Mandatory: no
# Default:
# SSLKeyLocation=${datadir}/zabbix/ssl/keys
### Option: SSLCALocation
# Override the location of certificate authority (CA) files for SSL server certificate verification.
# If not set, system-wide directory will be used.
# This parameter is used only in web monitoring and SMTP authentication.
#
# Mandatory: no
# Default:
# SSLCALocation=
####### LOADABLE MODULES #######
### Option: LoadModulePath
# Full path to location of server modules.
# Default depends on compilation options.
#
# Mandatory: no
# Default:
# LoadModulePath=${libdir}/modules
### Option: LoadModule
# Module to load at server startup. Modules are used to extend functionality of the server.
# Format: LoadModule=<module.so>
# The modules must be located in directory specified by LoadModulePath.
# It is allowed to include multiple LoadModule parameters.
#
# Mandatory: no
# Default:
# LoadModule=
####### TLS-RELATED PARAMETERS #######
### Option: TLSCAFile
# Full pathname of a file containing the top-level CA(s) certificates for
# peer certificate verification.
#
# Mandatory: no
# Default:
# TLSCAFile=
### Option: TLSCRLFile
# Full pathname of a file containing revoked certificates.
#
# Mandatory: no
# Default:
# TLSCRLFile=
### Option: TLSCertFile
# Full pathname of a file containing the server certificate or certificate chain.
#
# Mandatory: no
# Default:
# TLSCertFile=
### Option: TLSKeyFile
# Full pathname of a file containing the server private key.
#
# Mandatory: no
# Default:
# TLSKeyFile=
- speichern und verlassen
nano /etc/zabbix/zabbix_proxy.conf
- folgende Zeilen finden und auf diese Werte ändern, ggf. den # davor entfernen, STRG + W ist suchen!
ProxyMode=0 Server=IP oder DNS Name des Zabbix-Servers an den gemeldet werden soll ServerPort=10051 # Hostname -> unter diesem Namen müssen wir den Proxy auch auf dem Hauptserver anlegen! Hostname=zabbixproxy DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix Timeout=30 StartVMwareCollectors=5
Automatischen Start beim Booten einrichten
Die notwendigen Skripte werden bei der Installation aus den Repository direkt mit installiert, wir müssen diese nur noch aktivieren:
Auf einem Server
systemctl enable zabbix-server.service
systemctl enable zabbix-proxy.service
systemctl enable zabbix-agent.service
Start von Zabbix testen
Nun müsste man den Zabbix Server wie andere Dienste auch über systemctl starten können
systemctl start zabbix-server
Wenn alles in Ordnung ist gibt es keine Rückmeldung durch systemctl, also fragen wir nach dem Status:
systemctl status zabbix-server
Ausgabe:
● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled) Active: active (running) since So 2016-11-27 13:31:05 CET; 10s ago Process: 30432 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) Main PID: 30438 (zabbix_server) Tasks: 51 Memory: 19.4M CPU: 106ms CGroup: /system.slice/zabbix-server.service ├─30438 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf ├─30439 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes ├─30440 /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.001188 sec, idle 60 sec ├─30441 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000004 sec, idle 5 sec ├─30442 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000001 sec, idle 5 sec ├─30443 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000003 sec, idle 5 sec ├─30444 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000003 sec, idle 5 sec ├─30445 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000002 sec, idle 5 sec ├─30446 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000003 sec, idle 5 sec ├─30447 /usr/sbin/zabbix_server: unreachable poller #2 [got 0 values in 0.000003 sec, idle 5 sec ├─30448 /usr/sbin/zabbix_server: unreachable poller #3 [got 0 values in 0.000002 sec, idle 5 sec ├─30449 /usr/sbin/zabbix_server: unreachable poller #4 [got 0 values in 0.000004 sec, idle 5 sec ├─30450 /usr/sbin/zabbix_server: unreachable poller #5 [got 0 values in 0.000004 sec, idle 5 sec ├─30451 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection ├─30452 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection ├─30453 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection ├─30454 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection ├─30455 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection ├─30458 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000003 sec, idle 5 sec ├─30459 /usr/sbin/zabbix_server: icmp pinger #2 [got 0 values in 0.000003 sec, idle 5 sec ├─30460 /usr/sbin/zabbix_server: icmp pinger #3 [got 0 values in 0.000002 sec, idle 5 sec ├─30461 /usr/sbin/zabbix_server: icmp pinger #4 [got 0 values in 0.000001 sec, idle 5 sec ├─30463 /usr/sbin/zabbix_server: icmp pinger #5 [got 0 values in 0.000003 sec, idle 5 sec ├─30464 /usr/sbin/zabbix_server: icmp pinger #6 [got 0 values in 0.000002 sec, idle 5 sec ├─30465 /usr/sbin/zabbix_server: icmp pinger #7 [got 0 values in 0.000002 sec, idle 5 sec ├─30466 /usr/sbin/zabbix_server: icmp pinger #8 [got 0 values in 0.000002 sec, idle 5 sec ├─30467 /usr/sbin/zabbix_server: icmp pinger #9 [got 0 values in 0.000002 sec, idle 5 sec ├─30468 /usr/sbin/zabbix_server: icmp pinger #10 [got 0 values in 0.000001 sec, idle 5 sec ├─30469 /usr/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.001470 sec, idle 30 sec ├─30470 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes ├─30472 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000000 sec, 0 maintenances in 0.000000 sec, idle 25 sec ├─30473 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000393 sec, idle 5 sec ├─30474 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.001110 sec, idle 60 sec ├─30476 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000002 sec, idle 1 sec ├─30483 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000000 sec, idle 1 sec ├─30484 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000001 sec, idle 1 sec ├─30485 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000001 sec, idle 1 sec ├─30486 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.000517 sec, idle 3 sec ├─30487 /usr/sbin/zabbix_server: ipmi poller #1 [got 0 values in 0.000020 sec, idle 5 sec ├─30488 /usr/sbin/zabbix_server: ipmi poller #2 [got 0 values in 0.000001 sec, idle 5 sec ├─30489 /usr/sbin/zabbix_server: ipmi poller #3 [got 0 values in 0.000017 sec, idle 5 sec ├─30490 /usr/sbin/zabbix_server: ipmi poller #4 [got 0 values in 0.000002 sec, idle 5 sec ├─30491 /usr/sbin/zabbix_server: ipmi poller #5 [got 0 values in 0.000001 sec, idle 5 sec ├─30492 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000001 sec, idle 5 sec ├─30493 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000003 sec, idle 1 sec ├─30494 /usr/sbin/zabbix_server: vmware collector #1 [updated 0, removed 0 VMware services in 0.000001 sec, idle 5 sec ├─30495 /usr/sbin/zabbix_server: vmware collector #2 [updated 0, removed 0 VMware services in 0.000001 sec, idle 5 sec ├─30496 /usr/sbin/zabbix_server: vmware collector #3 [updated 0, removed 0 VMware services in 0.000001 sec, idle 5 sec ├─30497 /usr/sbin/zabbix_server: vmware collector #4 [updated 0, removed 0 VMware services in 0.000001 sec, idle 5 sec ├─30498 /usr/sbin/zabbix_server: vmware collector #5 [updated 0, removed 0 VMware services in 0.000001 sec, idle 5 sec └─30499 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000525 sec, idle 5 sec Nov 27 13:31:05 zabbix-server systemd[1]: Starting Zabbix Server... Nov 27 13:31:05 zabbix-server systemd[1]: Started Zabbix Server.
Genaueres können wir uns auch noch einmal im Log-File ansehen:
tailf -n 1000 /var/log/zabbix/zabbix_server.log
Ausgabe:
1677:20161127:133730.611 Starting Zabbix Server. Zabbix 3.2.1 (revision 62890). 1677:20161127:133730.611 ****** Enabled features ****** 1677:20161127:133730.611 SNMP monitoring: YES 1677:20161127:133730.611 IPMI monitoring: YES 1677:20161127:133730.611 Web monitoring: YES 1677:20161127:133730.611 VMware monitoring: YES 1677:20161127:133730.611 SMTP authentication: YES 1677:20161127:133730.611 Jabber notifications: YES 1677:20161127:133730.611 Ez Texting notifications: YES 1677:20161127:133730.611 ODBC: YES 1677:20161127:133730.611 SSH2 support: YES 1677:20161127:133730.611 IPv6 support: YES 1677:20161127:133730.611 TLS support: YES 1677:20161127:133730.611 ****************************** 1677:20161127:133730.611 using configuration file: /etc/zabbix/zabbix_server.conf 1677:20161127:133730.616 current database version (mandatory/optional): 03020000/03020000 1677:20161127:133730.616 required mandatory version: 03020000 1677:20161127:133730.622 server #0 started [main process] 1678:20161127:133730.623 server #1 started [configuration syncer #1] 1679:20161127:133730.623 server #2 started [db watchdog #1] 1680:20161127:133730.623 server #3 started [poller #1] 1682:20161127:133730.628 server #5 started [poller #3] 1683:20161127:133730.631 server #6 started [poller #4] 1702:20161127:133730.634 server #25 started [icmp pinger #8] 1718:20161127:133730.634 server #41 started [ipmi poller #4] 1684:20161127:133730.636 server #7 started [poller #5] 1685:20161127:133730.636 server #8 started [unreachable poller #1] 1703:20161127:133730.641 server #26 started [icmp pinger #9] 1704:20161127:133730.641 server #27 started [icmp pinger #10] 1719:20161127:133730.641 server #42 started [ipmi poller #5] 1720:20161127:133730.642 server #43 started [proxy poller #1] 1686:20161127:133730.643 server #9 started [unreachable poller #2] 1721:20161127:133730.644 server #44 started [self-monitoring #1] 1687:20161127:133730.644 server #10 started [unreachable poller #3] 1723:20161127:133730.644 server #46 started [vmware collector #2] 1724:20161127:133730.645 server #47 started [vmware collector #3] 1725:20161127:133730.645 server #48 started [vmware collector #4] 1726:20161127:133730.645 server #49 started [vmware collector #5] 1727:20161127:133730.645 server #50 started [task manager #1] 1722:20161127:133730.645 server #45 started [vmware collector #1] 1697:20161127:133730.645 server #20 started [icmp pinger #3] 1698:20161127:133730.645 server #21 started [icmp pinger #4] 1699:20161127:133730.646 server #22 started [icmp pinger #5] 1700:20161127:133730.646 server #23 started [icmp pinger #6] 1701:20161127:133730.646 server #24 started [icmp pinger #7] 1705:20161127:133730.646 server #28 started [alerter #1] 1706:20161127:133730.646 server #29 started [housekeeper #1] 1707:20161127:133730.647 server #30 started [timer #1] 1708:20161127:133730.647 server #31 started [http poller #1] 1710:20161127:133730.648 server #33 started [history syncer #1] 1681:20161127:133730.649 server #4 started [poller #2] 1711:20161127:133730.649 server #34 started [history syncer #2] 1712:20161127:133730.649 server #35 started [history syncer #3] 1713:20161127:133730.649 server #36 started [history syncer #4] 1714:20161127:133730.649 server #37 started [escalator #1] 1715:20161127:133730.651 server #38 started [ipmi poller #1] 1716:20161127:133730.652 server #39 started [ipmi poller #2] 1717:20161127:133730.654 server #40 started [ipmi poller #3] 1688:20161127:133730.656 server #11 started [unreachable poller #4] 1709:20161127:133730.659 server #32 started [discoverer #1] 1689:20161127:133730.660 server #12 started [unreachable poller #5] 1690:20161127:133730.661 server #13 started [trapper #1] 1691:20161127:133730.662 server #14 started [trapper #2] 1692:20161127:133730.662 server #15 started [trapper #3] 1693:20161127:133730.663 server #16 started [trapper #4] 1694:20161127:133730.664 server #17 started [trapper #5] 1695:20161127:133730.665 server #18 started [icmp pinger #1] 1696:20161127:133730.665 server #19 started [icmp pinger #2]
Bei einem Proxy kann es noch folgende Fehlermeldung geben:
failed to update local proxy configuration copy: Can't open JSON object or array ""failed"}"
Naja, wir müssen den Proxy auf unserem Zabbix-Server unter
Administration - Proxies
noch anlegen - und zwar bitte genau mit dem gleichen Namen wie in der zabbix_proxy.conf
unter Hostname=
angegeben - dann ist der Fehler weg.
Bei Erfolg sollte das dann so aussehen:
An den Sekunden unter 'Last seen (age)' sehen wir die letzte Kontaktaufnahme.
Wenn da überhaupt etwas steht hatten wir Erfolg!
Webinterface installieren (nur Server)
- Schon jetzt findet Ihr die Weboberfläche unter http://servername/zabbix
- Wenn es aber ein exklusiver Server für Zabbix ist möchte ich auf die Eingabe von /zabbix verzichten - das wir nachfolgend beschrieben.
- Ich installiere hier also so das man den Server später nur mit http://servername aufrufen kann
Konfigurationsdatei bearbeiten
nano /etc/apache2/sites-available/000-default.conf
und den gesamten Inhalt durch den folgenden ersetzen:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 8M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Berlin
</IfModule>
</Directory>
<Directory "/usr/share/zabbix/conf">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/app">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/include">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/local">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Danach Webserver neu starten:
systemctl restart apache2.service
Nun auf die Weboberfläche gehen, die sollte unter http://IP-Adresse oder http://DNS-Name verfügbar sein.
Anmerkung: So ein Linux trägt sich nicht von allein in den DNS Server ein, ggf. müsst Ihr den da von Hand nachtragen.
Webinterface konfigurieren
Ihr ruft den Zabbix-Server im Browser auf:
Wenn Ihr den Inhalt der 000-default.conf
wie zuvor beschrieben geändert habt sollte hier alles grün sein:
Die Datenbankkonfiguration, in die letzten 3 Felder muss überall "zabbix" stehen:
In dem leeren Feld könnt Ihr den Namen des Servers angeben. Dieser wird oben rechts und auf den Web-Tabs angezeigt:
Noch eben die Zusammenfassung bestätigen:
Geschafft!
Benutzername: Admin Passwort: zabbix
Zeitserver setzen
Damit die Uhrzeit des Zabbix-Servers auch immer genau ist kann dieser die Uhrzeit mit dem Internet abgleichen.
Dazu benötigten wir das Paket ntp:
apt install ntp -y
Wer die voreingestellten Zeitserver nutzen will muss nichts mehr tun.
Wer eigene Zeitserver für die Abfrage nutzen will muss die Konfigurationsdatei bearbeiten:
nano /etc/ntp.conf # Specify one or more NTP servers. server IP-oder-DNS iburst
Für jeden Server eine Zeile, die Poolserver solltet Ihr dann auskommentieren
und danach den Service neu starten:
systemctl restart ntp.service
Die Synchronisation lässt sich per Befehl kontrollieren:
ntpq -p
Ausgabe:
remote refid st t when poll reach delay offset jitter ============================================================================== beastie.deuza.n 195.83.222.27 2 u 24 64 1 0.501 9.552 0.000 ns1.kashra.com .PPS. 1 u 23 64 1 29.484 9.128 0.000 fr1.tomhek.net 163.172.41.83 3 u 22 64 1 0.685 12.810 0.000 ip139.ip-5-196- 10.21.137.1 2 u 21 64 1 0.581 8.332 0.000 golem.canonical 193.79.237.14 2 u 20 64 1 8.674 13.075 0.000
Empfang von SNMP-Traps einrichten
fehlende Pakete nachinstallieren
Wir Installieren ggf. die benötigten Pakete nach (sollten schon vorhanden sein):
apt install snmp snmpd snmptt snmp-mibs-downloader snmptrapd
snmptrapd aktivieren und konfigurieren
Wir bearbeiten die Datei
nano /etc/default/snmpd
und ändern die Zeile
SNMPDRUN=yes
in
SNMPDRUN=no
Dann die Datei
nano /etc/default/snmptrapd
und ändern die Zeile
TRAPDRUN=no
in
TRAPDRUN=yes
Nun Konfigurieren wir den Dienst noch:
nano /etc/snmp/snmptrapd.conf
und fügen die folgenden Zeilen ans Ende:
traphandle default /usr/sbin/snmptt disableAuthorization yes
snmptt konfigurieren
Zunächst die .ini Datei zum bearbeiten öffnen:
nano /etc/snmp/snmptt.ini
und die folgende Zeilen ändern (Denkt dran: STRG + W ruft die Suche auf):
mode = standalone translate_log_trap_oid = 2 net_snmp_perl_enable = 1 date_time_format = %H:%M:%S %Y/%m/%d log_file = /tmp/zabbix_traps.tmp log_system_enable = 1 mibs_environment = ALL
Dann die .conf Datei - wir sichern zunächst die Original-Datei (auch wenn wir die wahrscheinlich nie wieder brauchen) durch umbenennen:
mv /etc/snmp/snmptt.conf /etc/snmp/snmptt.conf.orig
und erstellen eine neue, leere Datei:
nano /etc/snmp/snmptt.conf
mit folgendem Inhalt:
EVENT general .* "General event" Normal FORMAT ZBXTRAP $aA $ar severity:$s $Fn$+*
Das stammt alles nahezu 1:1 von http://lab4.org/wiki/Zabbix_Monitoring_SNMP_Traps_empfangen
Nun noch die Dienste neu starten:
systemctl restart snmpd.service && systemctl restart snmptrapd.service && systemctl restart snmptt.service
logrotate für /tmp/zabbix_traps.tmp einrichten
Unter Umständen läuft unser Zabbix-Server Jahre ohne Neustart. Ohne Neustart wird jedoch die Datei
/tmp/zabbix_traps.tmp
nicht gelöscht bzw. verkleinert. Gerade wenn viele Einträge in der Datei landen kann dadurch das Dateisystem volllaufen.
Deshalb nutzen wir logrotate um die Größe der Datei zu begrenzen.
Mit großer Wahrscheinlichkeit ist das Programm bereits installiert - ansonsten installiert Ihr es mit
apt install logrotate
nach.
Nun noch die Konfigurationsdatei für unsere /tmp/zabbix_traps.tmp
nano /etc/logrotate.d/zabbix_traps
und folgenden Inhalt einfügen:
/tmp/zabbix_traps.tmp { su root root create 664 root root daily size 10M compress notifempty missingok maxage 365 rotate 1 }
Zabbix Server oder Proxy konfigurieren
Die Konfigurationsdatei zum bearbeiten öffnen:
nano /etc/zabbix/zabbix_server.conf oder nano /etc/zabbix/zabbix_proxy.conf
und folgende Zeilen suchen und ändern bzw. Kommentarzeichen davor entfernen:
SNMPTrapperFile=/tmp/zabbix_traps.tmp StartSNMPTrapper=1
Danach müssen wir den Zabbix Server oder Proxy Dienst neu starten:
systemctl restart zabbix-server.service oder systemctl restart zabbix-proxy.service
Trapper-Datei anlegen
Neuere Zabbix Versionen (ab 3.0) meckern wenn es die Traps-Datei nicht gibt.
Die wird aber ggf. erst beim ersten eintreffenden Trap erstellt. Deshalb:
touch /tmp/zabbix_traps.tmp
und diesen Befehl nehmen wir auchg in die Crontab mit auf damit es die Datei immer gibt:
crontab -e @reboot touch /tmp/zabbix_traps.tmp
VMware Tools installieren
Wenn euer Zabbix-Server auch eine virtuelle Maschine ist installiert Ubuntu 16.04.x automatische die Open-VM-Tools.
Wollt Ihr - Warum auch immer - die VMware-Tools von vSphere installieren so geht wie folgt vor:
- Open-VM-Tools deinstallieren:
apt remove open-vm-tools apt purge open-vm-tools
- VMware Tools installieren im vSphere Client auswählen
- CD Mounten:
mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom
- Entpacken (Versionsnnummer eurer Tools anpassen)
tar xzvf /mnt/cdrom/VMwareTools-10.0.0-3000743.tar.gz -C /tmp/
- Installieren
cd /tmp/vmware-tools-distrib/ ./vmware-install.pl -d
- Schalter -d heisst er gleich durchrauscht ohne nachzufragen und die Standard-Verzeichnisse nimmt.
- Falls er hier mit den Hinweis auf die Open-VM-Tools abbricht:
./vmware-install.pl
- und von Hand weiter machen. Alle Fragen ggf. einfach nur mit Enter bzw, Return bestätigen.
- netter weise wirft er die CD auch gleich wieder raus
- Fertig!
Agent konfigurieren (nur Proxy)
Wir wollen natürlich unseren 'Zabbix Proxy' gleich mit überwachen!
Wenn es ein Server ist, ist dieser gleich automatisch mit drin (ist der erste Host der schon in der Liste steht, muss nur aktiviert werden)
Bearbeiten wir zunächst die Konfigurationsdatei:
nano /etc/zabbix/zabbix_agentd.conf
und ändert folgende Zeile:
Hostname=zabbixproxy.domain.local
Den Namen passt Ihr natürlich an eure Bedürfnisse an - wichtig ist nur das Ihr den Host auf dem Zabbix-Server unter exakt dem gleichen Namen anlegt!
Das Start-Skript haben wir vorhin schon aktiviert.
Am besten bootet Ihr euren Zabbix Proxy nun einmal durch und prüft hinterher ob die Prozesse für den Agenten und den Server laufen.
Windows-Freigabe für Agenten-Dateien einrichten
Vorwort
Die Dateien für die Verteilung des Agenten lege ich regelmäßig auf dem Zabbix-Server bzw. Zabbix-Proxy ab.
Ja, ich richte hier eine "Jeder Vollzugriff" - Freigabe ein - meinen AgentAutoUpdate lasse ich am liebsten mit SYSTEM Rechten laufen (wegen UAC-Kontrolle) - und so gibt es kein Problem mit den Zugriffsberechtigungen.
Wenn Bedenken bestehen (zu recht) kann die Freigabe auch auf "readonly" gesetzt werden. Dann kann das Installationsskript aber auch kein Log dorthin schreiben.
Die einfachste Lösung aus meiner Sicht ist:
- Zunächst wie hier beschrieben mit Vollzugriff enrichten
- Von einem Windows-Rechner aus kann auf die Freigabe zugegriffen und die notwendigen Dateien dorthin kopiert werden
- Wenn nach Tests alles läuft können die Rechte im Ordner per
chmod
auf "Nur Lesen" gesetzt werden, "Schreiben" dann nur noch für den Log-Ordner so fern vorhanden.
Voraussetzungen
Wenn die Installation nachträglich erfolgt - erst einmal Updaten!
apt update apt upgrade
Nun installieren wir Samba - damit erstellt man Windows-Freigaben unter Linux:
apt install samba samba-common-bin
das dauert einen Moment - und danach können wir Samba konfigurieren.
Konfiguration erfolgt über ein zentrale Datei:
nano /etc/samba/smb.conf
In dieser ändern wie folgende Zeilen (wie immer: mit STRG + W kann man in nano suchen)
workgroup = ZNIL ; NetBIOS Domänenname in euerer Umgebung, könnt Ihr auch auf WORKGROUP lassen wins support = no wins server = 192.168.1.1 ; Falls es einen WINS-Server bei euch im Netzwerk gibt, geben wir diesen hier an
Jetzt geht es mit der eigentlichen Freigabe weiter:
Einrichtung Freigabe (simple Version)
Bei der "simplen Version" wird einfach eine Freigabe erstellt auf die jeder Vollzugriff hat. Die Installationsdateien für den Agenten könnt Ihr von jedem Windows Rechner aus einfach in der Freigabe ablegen.
Logdateien können ebenfalls einfach hinein geschrieben werden.
Die Nachteile könnten sein:
- Jeder(!) kann die Dateien manipulieren
- Ein Trojaner könne die .exe Dateien in der Freigabe befallen und würde (Falls das automatische Update eingesetzt wird) ggf. auf jedem überwachten System verteilt werden
- ...
Wir bearbeiten weiter die
nano /etc/samba/smb.conf
ganz am Schluss fügen wir folgende Zeilen hinzu:
[agent] comment = Zabbix Agents path = /share/zabbix/agent guest ok = yes read only = no
dann speichern und verlassen.
Nun müssen wir den Ordner noch anlegen:
mkdir -p /share/zabbix/agent chmod 777 /share/zabbix/agent
und den Dienst von Samba neu starten:
systemctl restart smbd
Ab jetzt können wir über
\\IP-Adresse-Zabbix-Proxy\agent
von Windows aus auf die Freigabe zugreifen und die Dateien dort ablegen.
Einrichtung Freigabe (sichere Version)
Bei der "sicheren Version" wird die gleiche Freigabe erstellt auf die jeder nur lesenden Zugriff hat. Das Setup des Agenten kann so weiterhin von jedem Rechner aus aufgerufen werden.
Für die Logdateien wir deine separate Freigabe erstellt in die jeder Schreiben kann.
Der Ordner mit den Installationsdateien wird 2x Freigegeben, die zweite Freigabe ist versteckt und mit Benutzername und Passwort geschützt. Der Admin kann so weiterhin die Dateien bequem aktualisieren.
Wir bearbeiten weiter die
nano /etc/samba/smb.conf
ganz am Schluss fügen wir folgende Zeilen hinzu:
[agent] comment = Zabbix Agents path = /share/zabbix/agent guest ok = yes read only = yes [agent$] comment = Zabbix Agents Management path = /share/zabbix/agent guest ok = no read only = no valid users = agent browsable = no [logging] comment = Logging of agent installations path = /share/zabbix/logging guest ok = yes read only = no
dann speichern und verlassen.
Nun müssen wir die Ordner noch anlegen:
mkdir -p /share/zabbix/agent mkdir -p /share/zabbix/logging chmod 777 /share/zabbix/agent chmod 777 /share/zabbix/logging
Jetzt müssen wir noch den Benutzer für den Zugriff auf agent$
anlegen.
Den Namen des Benutzer haben wir oben schon mit agent festegelegt, in der Zeile mit valid users = agent
Angelegt wird dieser wie folgt:
useradd -M -s /sbin/nologin agent passwd agent
und das gewünschte Passwort 2x eingeben.
Jetzt noch der Samba Teil:
smbpasswd -a agent smbpasswd -e agent
Da musstet Ihr das gleiche Passwort noch einmal zweimal eingeben.
Jetzt den Dienst von Samba neu starten:
systemctl restart smbd
Ab jetzt können wir über
\\IP-Adresse-Zabbix-Proxy\agent
von Windows aus auf die Freigabe zugreifen.
Ruft Ihr statt dessen
\\IP-Adresse-Zabbix-Proxy\agent$
auf sollte sich ein Fenster mit der Abfrage nach Benutzername und Passwort öffnen. Gebt die zuvor festgelegten Daten ein (Benutzer agent und euer festgelegtes Passwort) und ihr kommt wiederum auf die gleiche Freigabe.
Nur habt Ihr in dieser nun auch Schreibrechte und könnt die Dateien ablegen.
Auf
\\IP-Adresse-Zabbix-Proxy\logging
hat jeder Schreibrechte, hier sollten aber ja nur Textdateien landen.
Probleme beim Zugriff auf die Freigabe - Windows 10 / Windows Server 2016
Die Freigabe \\IP-Adresse-Zabbix-Proxy\agent
erlaubt nun eigentlich den Zugriff ohne Benutzername und Passwort.
Als erstes testet ob Ihr weiter kommt wenn Ihr beim Benutzernamen einfach einen Buchstaben eingebt und das Passwort leer lasst. Wenn nicht:
Windows 10 kann sich einfach nicht mehr einen Zugriff ohne Anmeldung vorstellen und will unbedingt ein Passwort nutzen.
Dazu hier der Microsoft-Artikel
Lösung 1:
Ihr legt einen extra Benutzer für den Zugriff an, in diesem Beispiel heißt der Benutzer installagent:
useradd -M -s /sbin/nologin installagent passwd installagent smbpasswd -a installagent smbpasswd -e installagent
Das Passwort dann nach Wahl. Gerne auch das gleiche wie der Benutzername installagent falls Ihr oben schon den Benutzer agent angelegt habt. Denn der kann trotzdem nur lesen auf die Freigabe des Agenten zugreifen.
Lösung 2:
Ihr richtet die Gruppenrichtlinie entsprechend des obigen Microsoft-Artikel ein.
Lokal geht das mit
gpedit.msc
und ändert die folgende Richtlinie:
Computerkonfiguration => Administrative Vorlagen => Netzwerk => LanMan-Arbeitsstation => Unsichere Gastanmeldungen aktivieren
Die Passwortabfrage poppt dann immer noch auf - aber einfach einen beliebigen Buchstaben als Benutzernamen angeben, Passwort leer lassen und es klappt.
Skripte können dann wieder ohne Abfrage direkt auf die Freigabe zugreifen.
Datensicherung des Zabbix-Servers
Bevorzugt installiere ich Zabbix-Server als Virtuelle Maschinen / VM's.
Die Backup-Software sichert am besten einfach die gesamte VM.
Eigentlich jede Backup-Software macht hierzu während der Sicherung einen Snapshot, sichert die Festplattendaten und löst dann den Snapshot wieder auf.
Wer dabei sicher gehen will das die Datenbank in einem konsistenten Zustand gesichert wird kann folgendes tun:
Methode 1: Cold Backup - Zabbix und Datenbank anhalten
Bei dieser Methode passiert folgendes:
- Die Zabbix-Server und die Datenbank werden vor einem Snapshot angehalten
- Der Snapshot wird erstellt
- Die Datenbank und der Zabbix-Server werden wieder gestartet
Unter VMware funktioniert das mit 2 Skripten die wir wie folgt anlegen:
nano /usr/sbin/pre-freeze-script
mit folgendem Inhalt:
#!/bin/sh
echo "$(date) pre-freeze start" >> /tmp/snapshot.log
systemctl stop zabbix-server.service
systemctl stop mysql.service
echo "$(date) pre-freeze stop" >> /tmp/snapshot.log
und
nano /usr/sbin/post-thaw-script
#!/bin/sh
echo "$(date) post-thaw start" >> /tmp/snapshot.log
systemctl start mysql.service
systemctl start zabbix-server.service
echo "$(date) post-thaw stop" >> /tmp/snapshot.log
Jetzt müssen wir die beiden Skripte noch ausführbar machen und dem root zuordnen:
chmod 0700 /usr/sbin/pre-freeze-script chmod 0700 /usr/sbin/post-thaw-script chown root:root /usr/sbin/pre-freeze-script chown root:root /usr/sbin/post-thaw-script
Voraussetzung ist das die VMware-Tools installiert sind!
Dabei ist es egal ob es sich um die Original VMware-Tools oder um die Open-VM-Tools aus den Repositories handelt.
Nun können wir die Skripts testen indem wir einen Snapshot mit den folgenden Einstellungen erstellen:
Wenn wir uns die Logs ansehen sollte
- Ein Eintrag in die Datei /tmp/snapshot.log vorgenommen
- Der Zabbix-Server gestoppt
- Der MySQL-Server gestoppt
- Wieder ein Eintrag in die Datei /tmp/snapshot.log geschrieben
- Der MySQL-Server wieder gestartet
- Der Zabbix-Server wieder gestartet
werden.
Methode 2: Hot Backup - Datenbank einfrieren
Bei dieser Methode passiert folgendes:
- Die Datenbank wird vor einem Snapshot auf "READ ONLY" gesetzt - zuvor werden noch alle Daten geschrieben ("FLUSH TABLES")
- Der Snapshot wird erstellt
- Die Datenbank wird wieder für Schreibzugriffe freigegeben
Unter VMware funktioniert das mit 2 Skripten die wir wie folgt anlegen:
nano /usr/sbin/pre-freeze-script
mit folgendem Inhalt:
#!/bin/sh
# 2018-04-20 Bernhard Linz
# Original script by Pascal Di Marco, check https://www.veeam.com/wp-consistent-protection-mysql-mariadb.html for more information
# Log will be write to syslog and(!) to /tmp/snapshot.log
echo "$0 pre-freeze start" | logger
echo "-------------------------------------------------------------------------------------" >> /tmp/snapshot.log
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') pre-freeze start" >> /tmp/snapshot.log
# Set Username and Passwort for MySQL Access. Set mysql_password="" if no password needed
mysql_username="root"
mysql_password="ThePassword"
timeout=300
# ************************************************************************************************
# No Changes behind this line!
# ************************************************************************************************
# Check if username + password is used
if [ -n "$mysql_password" ]; then
use_credentials="-u$mysql_username -p$mysql_password"
else
use_credentials=""
fi
# Name of the Lockfile
lock_file=/tmp/mysql_tables_read_lock
sleep_time=$((timeout+10))
rm -f $lock_file
echo "$0 executing FLUSH TABLES WITH READ LOCK" | logger
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') executing FLUSH TABLES WITH READ LOCK" >> /tmp/snapshot.log
# Start READ LOCK - Process will send to background (and will still run after script is completed. Lock will stop if process is stopped
# After READ ONLY mode is entered the lockfile will be created. Process will stop when getting stop signal from post-thaw-script or timeout reached
mysql $use_credentials -e "FLUSH TABLES WITH READ LOCK; system touch $lock_file; system nohup sleep $sleep_time; system echo lock released|logger; " > /dev/null &
# get the PID of the mysql process
mysql_pid=$!
echo "$0 child pid $mysql_pid" | logger
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') child pid $mysql_pid" >> /tmp/snapshot.log
# Waiting for the lockfile ...
c=0
while [ ! -f $lock_file ]
do
# check if mysql is running
if ! ps -p $mysql_pid 1>/dev/null ; then
echo "$0 mysql command has failed (bad credentials?)" | logger
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') mysql command has failed (bad credentials?)" >> /tmp/snapshot.log
exit 1
fi
sleep 1
c=$((c+1))
# check if the script run into timeout
if [ $c -gt $timeout ]; then
echo "$0 timed out waiting for lock" | logger
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') timed out waiting for lock" >> /tmp/snapshot.log
touch $lock_file
kill $mysql_pid
fi
done
# write PID into the lockfile
echo $mysql_pid > $lock_file
echo "$0 pre-freeze stop" | logger
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') pre-freeze stop" >> /tmp/snapshot.log
exit 0
und
nano /usr/sbin/post-thaw-script
#!/bin/sh
# 2018-04-20 Bernhard Linz
# Original script by Pascal Di Marco, check https://www.veeam.com/wp-consistent-protection-mysql-mariadb.html for more information
# Log will be write to syslog and(!) to /tmp/snapshot.log
echo "$0 post-thaw start" | logger
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') post-thaw start" >> /tmp/snapshot.log
lock_file=/tmp/mysql_tables_read_lock
# get PID from lockfile
mysql_pid=$(cat $lock_file)
echo "$0 sending sigterm to $mysql_pid" | logger
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') sending sigterm to $mysql_pid" >> /tmp/snapshot.log
# and send stop to process
pkill -9 -P $mysql_pid
rm -f $lock_file
echo "$0 post-thaw stop" | logger
echo "$0 $(date '+%Y-%m-%d %H:%M:%S') post-thaw stop" >> /tmp/snapshot.log
exit 0
Jetzt müssen wir die beiden Skripte noch ausführbar machen und dem root zuordnen:
chmod 0700 /usr/sbin/pre-freeze-script chmod 0700 /usr/sbin/post-thaw-script chown root:root /usr/sbin/pre-freeze-script chown root:root /usr/sbin/post-thaw-script
Voraussetzung ist das die VMware-Tools installiert sind!
Dabei ist es egal ob es sich um die Original VMware-Tools oder um die Open-VM-Tools aus den Repositories handelt.
Nun können wir die Skripts testen indem wir einen Snapshot mit den folgenden Einstellungen erstellen:
Beispielausgabe aus der \tmp\snapshot.log
:
------------------------------------------------------------------------------------- /usr/sbin/pre-freeze-script 2018-04-20 11:37:12 pre-freeze start /usr/sbin/pre-freeze-script 2018-04-20 11:37:12 executing FLUSH TABLES WITH READ LOCK /usr/sbin/pre-freeze-script 2018-04-20 11:37:12 child pid 10992 /usr/sbin/pre-freeze-script 2018-04-20 11:37:13 pre-freeze stop /usr/sbin/post-thaw-script 2018-04-20 11:37:16 post-thaw start /usr/sbin/post-thaw-script 2018-04-20 11:37:16 sending sigterm to 10992 /usr/sbin/post-thaw-script 2018-04-20 11:37:16 post-thaw stop
Falls es mit dem Passwort mal hakt so müsste das auch dort stehen:
/usr/sbin/pre-freeze-script 2018-06-13 12:01:04 mysql command has failed (bad credentials?)
Mehr Details stehen ggf. im syslog'
tailf -n 500 /var/log/syslog
Zabbix selbst nimmt den Vorgang relativ locker und meldet maximal einige slow query bei inserts.
In den meisten Umgebungen geht das so schnell das nicht einmal diese kommen (4 bis 5 Sekunden).