Zabbix Server/Agent installieren (AlmaLinux aarch64)

Eine Anleitung um Zabbix Server & Zabbix Agent auf AlmaLinux (aarch64) zu installieren.
== LAMP Stack installieren ==
=== Apache installieren ===
dnf install httpd
Apache Webserver starten:
systemctl enable --now httpd
Den Status des Webservers überprüfen:
systemctl status httpd
AlmaLinux hat standardmäßig eine Firewall installiert.
Falls diese jedoch fehlen sollte kann sie einfach installiert werden:
dnf install firewalld
Jetzt muss dem Webserver und Zabbix noch erlaubt werden durch die Firewall zu kommunizieren...
Mit folgendem Befehl werden die Ports für HTTP(80), HTTPS(443) und den Zabbix Server (10051) geöffnet:
firewall-cmd --permanent --zone=public --add-service=http --add-service=https --add-service=zabbix-server
firewall-cmd --reload
Falls auf einem anderen Client mit Firewall, der Zabbix Agent installiert wird muss dort ebenfalls der entsprechende Port freigegeben werden.
firewall-cmd --permanent --zone=public --add-service=zabbix-agent
firewall-cmd --reload
Über http://<IP-Adresse> sollte eine Testseite des Webservers zu sehen sein.
=== MariaDB installieren ===
dnf module install mariadb:10.5
Mariadb starten:
systemctl enable --now mariadb
Den Status der Datenbank prüfen:
systemctl status mariadb
Um Mariadb einzurichten sollte folgender Befehl ausgeführt werden:
mysql_secure_installation
Alternativ falls der Befehl nicht funktionieren sollte:
mariadb-secure-installation
* Passwort eingeben
* Switch to unix_socket authentication: N
* Change the root password?: N
* Remove anonymous users?: Y
* Disallow root login remotely?: Y
* Remove test database and access to it?: Y
* Reload privilege tables now?: Y
=== PHP installieren ===
dnf install php php-mysqlnd php-bcmath php-gd php-ldap
systemctl restart httpd
In der php.ini müssen noch ein paar Zeilen angepasst werden:
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
== Zabbix Source kompilieren ==
dnf install wget tar
https://www.zabbix.com/download_sources
wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.7.tar.gz
tar -zxvf zabbix-5.4.7.tar.gz
dnf install gcc mariadb-devel libxml2-devel net-snmp-devel libevent-devel curl-devel pcre-devel make
dnf --enablerepo=powertools install OpenIPMI-devel
cd zabbix-5.4.7
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
make install
== Zabbix konfigurieren und starten ==
Datenbank einrichten
mysql -uroot -p<password>
create database zabbix character set utf8 collate utf8_bin;
create user 'zabbix'@'localhost' identified by '<password>';
grant all privileges on zabbix.* to 'zabbix'@'localhost';
quit;
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> zabbix < data.sql
Wenn ihr ein Passwort für die Datenbank vergeben habt, muss dieses in der Konfiguration hinterlegt werden.
Die Server-Konfigurationsdatei öffnen:
vi /usr/local/etc/zabbix_server.conf
Folgenden Eintrag suchen:
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
Ändern in:
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=<password>
Zabbix versucht automatisch über den User 'zabbix' zu starten da den Prozess als 'root' zu starten ein Sicherheitsrisiko wäre.
Daher müssen wir diesen Benutzer mitsamt Gruppe zunächst anlegen:
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
Zabbix Agent starten:
zabbix_agentd
Zabbix Server starten:
zabbix_server
== Webinterface installieren ==
mkdir /var/www/html/zabbix
cd ../../ui
cp -a . /var/www/html/zabbix
chown apache:apache -R /var/www/html/zabbix
Die weitere Installation findet im Webinterface statt...
http://<IP-Adresse>/zabbix
Datei:Zabbix Web-UI Installation Check OK.png|Vorabcheck
Datei:Zabbix Web-UI Installieren Datenbank.png|Datenbank angeben
Datei:Zabbix Web-UI Installation Server.png|Serverdaten
== Optionales ==
=== Systemd Einträge erstellen ===
cd /usr/lib/systemd/system
zabbix-agent:
vi zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/sh -c '[ -n "$1" ] && kill -s TERM "$1"' -- "$MAINPID"
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
zabbix-server:
vi zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service
After=mariadb.service
[Service]
Environment="CONFFILE=/usr/local/etc/zabbix_server.conf"
EnvironmentFile=-/etc/default/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/sh -c '[ -n "$1" ] && kill -s TERM "$1"' -- "$MAINPID"
RestartSec=10s
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
=== ICMP Ping benutzen ===
wget https://fping.org/dist/fping-5.0.tar.gz
tar -xvf fping-5.0.tar.gz
cd fping-5.0/
./configure
make && make install
vi /usr/local/etc/zabbix_agentd.conf
### Option: FpingLocation
# Location of fping.
# Make sure that fping binary has root ownership and SUID flag set.
#
# Mandatory: no
# Default:
# FpingLocation=/usr/sbin/fping
### Option: FpingLocation
# Location of fping.
# Make sure that fping binary has root ownership and SUID flag set.
#
# Mandatory: no
# Default:
FpingLocation=/usr/local/sbin/fping
UserParameter=ct.memory.size[*],free -b | awk '$ 1 == "Mem:" {total=$ 2; used=($ 3+$ 5); pused=(($ 3+$ 5)*100/$ 2); free=$ 4; pfree=($ 4*100/$ 2); shared=$ 5; buffers=$ 
6; cache=$ 6; available=($ 7); pavailable=(($ 7)*100/$ 2); if("$1" == "") {printf("%.0f", total )} else {printf("%.0f", $1 "" )} }'
UserParameter=ct.swap.size[*],free -b | awk '$ 1 == "Swap:" {total=$ 2; used=$ 3; free=$ 4; pfree=($ 4*100/$ 2); pused=($ 3*100/$ 2); if("$1" == "") {printf("%.0f", free
 )} else {printf("%.0f", $1 "" )} }'
UserParameter=ct.cpu.load[*],uptime | awk -F'[, ]+' '{avg1=$(NF-2); avg5=$(NF-1); avg15=$(NF)}{print $2/'$(nproc)'}'
==Quellen==
zabbix.com/documentation/current/manual/installation/install
zabbix.com/documentation/current/manual/appendix/install/db_scripts
tecmint.com/install-lamp-in-almalinux/
== Kommentare ==
<comments nocache=true />
Kategorie:Network