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 httpdApache Webserver starten:
systemctl enable --now httpdDen 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 firewalldJetzt 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.5Mariadb starten:
systemctl enable --now mariadbDen Status der Datenbank prüfen:
systemctl status mariadb
Um Mariadb einzurichten sollte folgender Befehl ausgeführt werden:
mysql_secure_installationAlternativ 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 httpdIn der php.ini müssen noch ein paar Zeilen angepasst werden:
post_max_size = 16M
max_execution_time = 300
max_input_time = 300Zabbix Source kompilieren
dnf install wget tarhttps://www.zabbix.com/download_sources
wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.7.tar.gztar -zxvf zabbix-5.4.7.tar.gzdnf install gcc mariadb-devel libxml2-devel net-snmp-devel libevent-devel curl-devel pcre-devel make
dnf --enablerepo=powertools install OpenIPMI-develcd zabbix-5.4.7./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmimake installZabbix 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/mysqlmysql -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.confFolgenden 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" zabbixZabbix Agent starten:
zabbix_agentd
Zabbix Server starten:
zabbix_serverWebinterface 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...
-
Vorabcheck
-
Datenbank angeben
-
Serverdaten
Optionales
Systemd Einträge erstellen
cd /usr/lib/systemd/systemzabbix-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.targetICMP 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 installvi /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/fpingUserParameter=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/