Zabbix
Zabbix is a full-featured monitoring solution for larger networks. It can discover all kind of networking devices using different methods, check machine states and applications, sending pre-defined alarm messages and visualize complex data correlations.
Contents
Server setup
Installation
Zabbix-server installation
- Install zabbix-server-mysqlAUR[broken link: package not found] if you want to use the MariaDB as database backend.
- Install zabbix-server if you want to use the PostgreSQL as database backend.
Zabbix-frontend installation
Just install the zabbix-frontend-php package.
You also have to choose a web server with PHP support if you want to use zabbix-frontend, e.g.:
Or one of the other servers found in Category:Web server.
Configuration
Symlink the Zabbix web application directory to your http document root, e.g.:
$ ln -s /usr/share/webapps/zabbix /srv/http/zabbix
Make sure to adjust following variables to these minimal values in your /etc/php/php.ini
:
extension=bcmath.so extension=gd.so extension=sockets.so extension=mysqli.so post_max_size = 16M max_execution_time = 300 max_input_time = 300 date.timezone = "UTC"
In this example, we create on localhost a MariaDB database called zabbix
for the user zabbix
identified by the password test
and then import the database templates. This connection will be later used by the Zabbix server and web application:
$ mysql -u root -p -e "create database zabbix" $ mysql -u root -p -e "grant all on zabbix.* to zabbix@localhost identified by 'test'" $ mysql -u zabbix -p zabbix < /usr/share/zabbix/database/schema.sql $ mysql -u zabbix -p zabbix < /usr/share/zabbix/database/images.sql $ mysql -u zabbix -p zabbix < /usr/share/zabbix/database/data.sql
Starting
Enable and start the zabbix-server
service.
Finally you can access Zabbix via your local web server, e.g.: http://127.0.0.1/zabbix, finish the installation wizard and access the frontend the first time. The default username is Admin
and password zabbix
.
See appendix for a link to the official documentation, which explains all further steps in using it.
Agent setup
Installation
The server package already includes zabbix-agent, so you do not have to install this package on your monitoring server. However, for monitoring targets, the client part is more minimal, standalone and easy to deploy, just install zabbix-agent.
Configuration
Simply edit the zabbix_agentd.conf
and replace the server variable with the IP of your monitoring server. Only servers from this/these IP will be allowed to access the agent.
Server=<IP of Zabbix server> ServerActive=<IP of Zabbix server>
Further make sure the port 10050
on your device being monitored is not blocked and is properly forwarded.
Starting
Enable and start the zabbix-agentd
service.
Tips and tricks
Debugging a Zabbix agent
On the client site, you can check the state of an item like this:
$ zabbix_agentd -t hdd.smart[sda,Temperature_Celsius]
On the server/monitoring site, try this:
$ zabbix_get -s host -k hdd.smart[sda,Temperature_Celsius]
Monitor ArchLinux system updates
Here is an approach on how to monitor your ArchLinux clients for available system update using a custom UserParameter
:
/etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
/etc/zabbix/zabbix_agentd.conf.d/archlinuxupdates.conf
UserParameter=archlinuxupdates,checkupdates | wc -l
You have to restart zabbix-agentd
to apply the new configuration. The keyword for the item you later use in the web frontend is archlinuxupdates
. It returns an integer representing the count of available updates.