Zabbix

The purpose of this document is to assist in installing the Zabbix server software and Zabbix agent on the Alpine Linux operating system. Instructions on how to configure and use Zabbix - as well as many useful tutorials - can be found at https://www.zabbix.com.
= Install Lighttpd, and PHP =
For Zabbix you will have to install following two extra packages otherwise Zabbix will not run.
1. php82-mbstring 2. php82-pgsql
To Install these two packages 
= Configure PostgreSQL =
Install PostgreSQL
Now configure PostgreSQL:
After installing Postgres and running rc-service postgresql setup I got an error:
I had to change the ownership of /var/lib/postgresql/16
= Install Zabbix =
Now we need to set up the zabbix database. Substitute '*********' in the example below for a real password:
Create a softlink for the Zabbix web-frontend files:
Edit PHP configuration to satisfy some zabbix requirements. Edit /etc/php82/php.ini and configure the following values at least:
max_execution_time = 600
expose_php = Off
date.timezone = <insert your timezone here>
post_max_size = 32M
upload_max_filesize = 16M
max_input_time = 600
memory_limit = 256M
Also comment (doc_root & user_dir ) by putting # before these. 
Configure the following entries in /etc/zabbix/zabbix_server.conf, where DBPassword is the password chosen for the database above:
DBName=zabbix
# Database user
DBUser=zabbix
# Database password
# Comment this line if no password used
DBPassword=*********
FpingLocation=/usr/sbin/fping
Start Zabbix server:
Fix permissions on conf directory.
You should now be able to browse to the Zabbix frontend: http://yourservername/.
or
You should now be able to browse to the Zabbix setup frontend: http://yourserverip/instal.php.
Follow the setup instructions to configure Zabbix, supplying the database information used above.
After setup, login using: Login name: Admin Password:zabbix. (as described at https://www.zabbix.com/documentation/current/en/manual/installation)
Finally, Zabbix requires special permissions to use the fping binary.
= Install Zabbix Agent on Monitored Servers =
Zabbix can monitor almost any operating system, including Alpine Linux hosts. Complete the following steps to install the Zabbix agent on Alpine Linux.
Ensure that the readproc group exists (support added since alpine-baselayout-2.0_rc1-r1), by adding the following line to /etc/group:
Install the agent package:
Edit the /etc/zabbix/zabbix_agentd.conf file and configure at least the following option:
Server=<ip or hostname of zabbix server>
Hostname=<ip or hostname of zabbix agent>
ListenPort=10050
Start the zabbix-agent:
In case you want to monitor using SNMP agent on remote machines you have to add these packages on zabbix server:
And add these packages on remote machines:
= Optional: Crash course in adding hosts, checks, and notifications =
Note: This is optional since it's not specific to Alpine Linux, but I wanted a couple notes for how to perform a simple check on a server that doesn't have the agent installed on it, and be notified on state changes.
Administration -> Media Types -> Email
* Setup server, helo, email from address
Administration -> Users
* Setup each user who'll get notified, make sure they have media type "Email" added with their address
Configuration -> Hosts -> Create host
* In Linux Servers hostgroup
* Define dns name, ip, connect by IP
* If the machine is a simple networking device that will only be monitored using SNMP, add it to Template_SNMPv2_Device, and you're done.
Configuration -> Templates -> Create template
* Give it a name (Template_Alpine_Linux_Infra_HTTP)
* In Templates group
Configuration -> Templates -> Template_Alpine_Linux_Infra_HTTP -> Items
* Create Item
* Host: Template_Alpine_Linux_Infra_HTTP
* Description: HTTP Basic Check
* Type: Simple_check
* Key: http,80
Configuration -> Templates -> Template_Alpine_Linux_Infra_HTTP -> Triggers
* Create Trigger
* Name: "HTTP Trigger"
* Expression: {Template_Alpine_Linux_Infra_HTTP:http,80.last(0)}#1
* Severity: High
Configuration -> Actions -> 
* Create Action
* name: Email notifications
* Event source: triggers
* Default Subject: add "{HOST.DNS}:" to the beginning
* Default message: add "{HOST.DNS}:" to the beginning
* Conditions: make host have to be from "Linux Servers" hostgroup, and Template_Alpine_Linux_Infra_HTTP:HTTP trigger" is not 1
* Email affected users
Category:Monitoring
Category:PHP
Category:SQL