Vor ein paar Tagen habe ich Zabbix 3.0 unter Ubuntu 16.04 installiert. Da ich mich mal ein bisschen mit PostgreSQL auseinander setzen möchte, habe ich mich dazu entschieden diese als Datenbank einzusetzen.
Installation
Als erstes lädt man das entsprechende Release Paket von Zabbix herrunter:
wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+xenial_all.deb
welches man anschließend installiert
dpkg -i zabbix-release_3.0-1+xenial_all.deb
Damit wurde nun das entsprechende Repo hinzugefügt und man kann zabbix installieren
apt update
apt install zabbix-server-pgsql zabbix-frontend-php zabbix-agent libapache2-mod-php7.0 php-bcmath php-mbstring php7.0-xml snmp-mibs-downloader
Datenbank anlegen
Als erstes ändert man mal das admin Passwort. Dazu verbindet man sich als erstes mit der Datenbank:
sudo -u postgres psql
Das Passwort ändert man wie folgt
\password
Zweimal neues Passwort eingeben und fertig. Nun legt man eine neue Datenbank und einen neuen User an und geben diesem alle Rechte auf dieser:
sudo -u postgres psql
CREATE DATABASE zabbix WITH ENCODING='UTF-8';
CREATE USER zabbix WITH PASSWORD '$password';
GRANT ALL ON DATABASE zabbix TO zabbix;
Nun füllen wir noch die Datenbank mit Inhalt. Dazu gibt es die Datei create.sql.gz, unter /usr/share/doc/zabbix-server-pgsql/.
zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u postgres psql zabbix -h 127.0.0.1 -d zabbix
PostgreSQL Konfigurationen ändern
Wenn man nur lokal auf die Datenbank zugreift, kann man das hier überspringen. Ich wollte aber gern per pgadmin3 auf diese zugreifen.
Per default lauscht die Datenbank nur auf localhost, also 127.0.0.1. Um das zu ändern, ändert man folgendes in der Datei /etc/postgresql/9.5/main/postgresql.conf
# listen_addresses = '127.0.0.1'
nach
listen_addresses = '*'
Nun muss noch die Konfiguration bearbeitet werden, welche die Authentifizierung regelt /etc/postgresql/9.5/main/pghba.conf. Darin added man folgende Zeile:
# TYPE DATABASE USER ADDRESS METHOD
host all all all md5
Das geht natürlich noch schöner und vor allem restriktiver, was für meine Testinstallation jetzt nicht von nöten war.
Anschließend noch den Dienst neu starten und danach sollte man mit pgadmin3 auf die Datenbank zugreifen können
systemctl restart postgresql
Zabbix Server in Betrieb nehmen
Damit der Dienst läuft mussten noch die Zugangsdaten zur Datenbank in die /etc/zabbix/zabbix_server.conf eingetragen werden:
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=$password
Anschließend kann man den Dienst aktivieren und starten:
systemctl enable zabbix-server
systemctl enable zabbix-agent
systemctl start zabbix-server
systemctl start zabbix-agent
Frontend konfigurieren
Hier muss in der Datei /etc/apache2/conf-enabled/zabbix.conf folgende Zeile angepasst werden
nach
Anschließend muss der apache2 einmal neu gestartet werden
systemctl restart apache2
Das war es dann auch. Nun kann das Frontend über den Browser http://$ip/zabbix aufgerufen werden und die Installation abgeschlossen werden.
Was mich bei dieser Installation gewundert hat, war, das ich mich nicht daran erinnere bei älteren Zabbix Installationen so einen „Konfigurationsaufwand“ gehabt zu haben. Zum einen die Pakete, die man noch manuell installieren muss, welche, meine ich, früher bereits in den Dependencies enthalten waren und zum anderen die IfModule Zeile in der apache2 Konfiguration, welche noch php5 beinhaltet. Ich mein es ist ja nun bekannt das php7 in Xenial Einzug gehalten hat. Aber alles in allem verkraftbar.
Update
Hier gibts das ganze noch als Script: Gist Danke an Alexey für den Hinweis in den Kommentaren.