Schulung-Teil5-Zabbix aufsetzen

Aus revampedia

Vorwort


Diese Schulung hat am 02.02.2017 stattgefunden. Wenn man mehrere Server am Laufen hat, macht es Sinn, dass man diese Überwachen kann. Dazu benötigt man ein Netzwerk-Monitoring-Tool. In unserem Fall wählen wir [1], da dies auch schon für unsere produktiven Server im Einsatz ist.
Die Installation benötigt ebenfalls einen Webserver, in unserem Fall ein Apache, sowie eine MySQL-Datenbank. Wie die Links zeigen, haben wir dies in vergangenen Schulungen bereits gemacht.
Zur Installation hat uns die Dokumentation als Grundlage gedient. Einige Dinge darin sind mittlerweile veraltet, dass die Synthax nicht mehr so ist wie es dort geschrieben ist. Es wurde Version 3.0 gewählt, da es sich dabei um die LTS-Version handelt.
Für die Schulung wurde die MySQL-Datenbank und auch der Benutzername in MySQL für Zabbix auf "zabbix" gsetzt. Sicherheitstechnisch sollte man auf einem produktiven Server andere Namen wählen.

Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr



Installation des Programms

Packetinstallation

Da wir wie bereits erwähnt die LTS Version installieren wollen, müssen wir unter Debian Jessie noch ein weiteres Repository hinzufügen. Dazu gehen wir auf unserer virtuellen Maschine in der Konsole die Datei /etc/apt/sources.list anpassen.

user1@vm1:~$ sudo nano /etc/apt/sources.list
# jessie-backports
deb     http://debian.ethz.ch/debian/     jessie-backports main contrib non-free


Man kopiert einfach die Zeile von Jessie und fügt sie ein zweites Mal ein. Dann muss man einfach noch "jessie" auf "jessie-backports" anpassen. Alternativ kann man sich eine neue Datei unter /etc/apt/sources.list.d/ erstellen.

Dass wir das jessie-backports Repository auch nutzen können müssen wir die Liste der möglichen Packete in apt aktualisieren:

user1@vm1:~$ sudo apt update


Der folgende Befehl zeigt uns warum wir das jessie-backports Repository hinzugefügt haben. Im normalen jessie gibt es nur die Version 2.2 und wir wollen ja die Version 3.0.

user1@vm1:~$ apt-cache policy zabbix-server-mysql
zabbix-server-mysql:
 Installed: (none)
 Candidate: 1:2.2.7+dfsg-2+deb8u1
 Version table:
    1:3.0.7+dfsg-1~bpo8+1 0
       100 http://debian.ethz.ch/debian/ jessie-backports/main amd64 Packages
    1:2.2.7+dfsg-2+deb8u1 0
       500 http://debian.ethz.ch/debian/ jessie/main amd64 Packages


Um jetzt beim Installieren zu sagen, dass wir die Version aus jessie-backports wollen geben wir dies mit dem Parameter "-t jessie-backports" an:

user1@vm1:~$ sudo apt -t jessie-backports install zabbix-server-mysql zabbix-frontend-php


Konfiguration in Konsole

Als nächstes müssen wir die Konfiguration von zabbix-frontend-php auf dem Apache2-Server aktivieren. Dies machen wir über den folgenden Befehl:

user1@vm1:~$ sudo a2enconf zabbix-frontend-php


Wenn wir jetzt den Apache2-Server neu starten können wir unter http://"VM-IP-Adresse"/zabbix gehen um das Programm zu konfigurieren. Jedoch sind noch weitere Schritte notwendig, dass wir die Konfiguration komplett durchführen können.
Es gibt zwei Möglichkeiten, die mir bekannt sind, um den Webserver neu zu starten:

user1@vm1:/etc/apache2/conf-available$ sudo apache2ctl restart
user1@vm1:~$ sudo systemctl restart apache2

Die beiden Befehle starten den Webserver neu, doch bei apache2ctl wird zusätzlich noch die Konfiguration überprüft.
Als erstes gehen wir in den Ordner /etc/, wo Linux die Konfigurationsdateien von Programmen hat.

user1@vm1:~$ cd /etc/


Anschliessend suchen wir nach "date.timezone" in dem Ordner sowie auch den Unterordnern. Zudem setzen wir den Parameter, dass Gross-/Kleinschreibung ignoriert werden soll.

user1@vm1:/etc$ grep -ri 'date.timezone'


Unsere gesuchte Datei befindet sich im Ordner /etc/apache2/conf-available/, also wechseln wir dahin und machen als erstes eine Kopie von der Datei:

user1@vm1:/etc/apache2/conf-available$ sudo cp zabbix-frontend-php.conf zabbix-frontend-php.conf_2017-03-02


Nun können wir die Datei editieren gehen:

user1@vm1:/etc/apache2/conf-available$ sudo nano zabbix-frontend-php.conf
       php_value date.timezone Europe/Zurich


Wenn wir den Webserver neu starten würden könnten wir unter http://"VM-IP-Adresse"/zabbix eine Seite weiter kommen, doch wir müssen vorher noch weitere Dinge machen, dass wir die Konfiguration fertigstellen können.

Zabbix-Benutzer in der MySQL-Datenbank und neue MySQL-Datenbank erstellen

Glücklicherweise dürfen wir das meiste aus der Dokumentation von Zabbix kopieren, dass wir die Befehle nicht selber kennen müssen. Für eine Liste besucht man besser einen anderen Ort. Uns wurde an der Schulung begebracht, dass in MySQL Befehle mit einem ";" abgeschlossen werden, dass die Datenbank weiss, dass der Befehl zu Ende ist.
Also erst mal in die Datenbank einloggen. Wir haben ja beim Aufsetzen von Joomla eine MySQL-Datenbank erstellt.

user1@vm1:~$ mysql -uroot -p*****


Mit der ersten Zeile erstellen wir eine neue Datenbank mit dem Namen "zabbix" und sagen der Datenbank, dass wir den UTF-8-Zeichensatz nutzen wollen.

mysql> create database zabbix character set utf8 collate utf8_bin;


Mit dem zweiten Befehl geben wir in der Datenbank "zabbix" dem Benutzer "zabbix" alle Rechte mit dem Passwort "*****" (selber ein Passwort wählen)

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '*****';


Um die MySQL-Datenbank zu verlassen geben wir "quit" ein. Dieser Befehl würde auch ohne ";" funktionieren.

mysql> quit;


Nun müssen wir unserer neuen Datenbank auch ein Anfangs-Schema geben und die ersten Daten. Die Dokumentation auf der Zabbix-Webseite veraltet ist verrät uns die Datei unter /usr/share/doc/zabbix-server-mysql/README.Debian wie der korrekte Befehl lautet:

zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz    | mysql -uzabbix -p***** zabbix


Zabbix die MySQL-Datenbank und Logindaten beibringen


user1@vm1:~$ sudo cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf_2017-03-02



user1@vm1:~$ sudo nano /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<*****>


user1@vm1:/etc/zabbix$ sudo systemctl start zabbix-server user1@vm1:/etc/zabbix$ sudo systemctl enable zabbix-server


browser:

   Database type
   MySQL
   Database server
   localhost
   Database port
   default
   Database name
   zabbix
   Database user
   zabbix
   Database password
   *****
    
   Zabbix server
   localhost
   Zabbix server port
   10051
   Zabbix server name
   juerg-zabbix

user1@vm1:/etc/zabbix$ sudo nano /etc/zabbix/zabbix.conf.php ---> vorsicht mit leeren Zeilen am Ende des Dokuments. können fehler machen <?php // Zabbix GUI configuration file. global $DB;

$DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = '*****';

// Schema name. Used for IBM DB2 and PostgreSQL. $DB['SCHEMA'] = ;

$ZBX_SERVER = 'localhost'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = 'juerg-zabbix';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

browser: -> können einloggen username= Admin pw= zabbix

Configuration Hosts


im terminal auf server gehen: user1@server1:~$ sudo apt-cache policy zabbix-agent -> hat kein backports, doch agent rückwärts kompatibel user1@server1:~$ sudo apt install zabbix-agent

user1@server1:~$ cd /etc/zabbix/ user1@server1:/etc/zabbix$ sudo cp zabbix_agentd.conf zabbix_agentd.conf_2017-03-02 user1@server1:/etc/zabbix$ sudo nano zabbix_agentd.conf

Server=192.168.67.77 ServerActive=192.168.67.77

  1. Hostname=Zabbix server

HostnameItem=system.hostname


user1@server1:/etc/zabbix$ sudo systemctl restart zabbix-agent user1@server1:/etc/zabbix$ sudo systemctl status zabbix-agent

-> server in zabbix adden und graphen anschauen

myserver=192.168.67.87 vm1= 192.168.67.77 http://192.168.67.77/zabbix