I used a raspberry pi 3 running raspbian 9 which I had idling around and for homeuse this should be enough since I will only monitor around 4-5 devices using the agent. The shown steps should be the same on a updated debian9 system. Anyway, I'd suggest to push the database (in my case postgresql) to a separate HDD or anything else not on the sd-card since the db will have a lot of write-cycles which will tear the flash down very quickly.
I checked the internet for some good HowTo's but even the documentation on the zabbix page was missing some information. So I decided to write down the steps it took me to get up and running with zabbix.
First you'll have to install the zabbix-server-pgsql package and if you want the webfrontend, also install the zabbix-webfrontend-php package.
[archy@zabbix ~]$ sudo apt-get -y install zabbix-server-pgsql zabbix-frontend-php
Once the installation is finished, we can continue setting up the database. [archy@zabbix ~]$ sudo su - postgres
[postgres@zabbix ~]$ psql
postgres=# create user zabbix with password 'secure_password';
postgres=# create database zabbix;
postgres=# alter database zabbix owner to zabbix;
Now that we have the zabbix-database and zabbix-user which owns the database, it's time to feed it informations and schemes. [archy@zabbix ~]$ zcat /usr/share/zabbix-server-pgsql/schema.sql.gz | psql -h 127.0.0.1 -p 5432 -U zabbix -W zabbix
Password for user zabbix:
[archy@zabbix ~]$ zcat /usr/share/zabbix-server-pgsql/images.sql.gz | psql -h 127.0.0.1 -p 5432 -U zabbix -W zabbix
Password for user zabbix:
[archy@zabbix ~]$ zcat /usr/share/zabbix-server-pgsql/data.sql.gz | psql -h 127.0.0.1 -p 5432 -U zabbix -W zabbix
Password for user zabbix:
If the databasepreparation is finished, we'll have to make the server aware of the config changes.Note that I'm hosting the postgres-instance responsible for zabbix on the same server as the zabbix-server itself.
[archy@zabbix ~]$ sudo vim /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix-server/zabbix_server.log
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=secure_password
Timeout=4
AlertScriptsPath=/etc/zabbix/alert.d/
FpingLocation=/usr/bin/fping
LogSlowQueries=3000
Include=/etc/zabbix/zabbix_server.conf.d/*.conf
Next, we'll have to adjust the zabbix-frontend.php config with our timezone. For my usecase I'll leave the rest of the config default for now. [archy@zabbix ~]$ sudo vim /usr/share/zabbix/conf/zabbix.conf.php
<IfModule mod_alias.c>
Alias /zabbix /usr/share/zabbix
</IfModule>
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Prague
</IfModule>
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Europe/Prague
</IfModule>
</Directory>
<Directory ~ "^/usr/share/zabbix/(conf|app|include|local)/">
Require all denied
<files *.php>
Require all denied
</files>
</Directory>
Now that the config for the site is done, we'll have to make apache aware of the site. You can do that by creating a file in /etc/apache2/sites-available/ or by simply copying the file like I did. [archy@zabbix ~]$ sudo cp /usr/share/doc/zabbix-frontend-php/examples/apache.conf /etc/apache2/sites-available/zabbix.conf
Now let's make apache aware of the site: [archy@zabbix ~]$ sudo ln -s /etc/apache2/sites-available/zabbix.conf /etc/apache2/sites-enabled/zabbix.conf
Make sure the necessary services are enabled so they get started at boot by systemd: [archy@zabbix ~]$ sudo systemctl enable zabbix-server.service
[archy@zabbix ~]$ sudo systemctl enable apache2.service
[archy@zabbix ~]$ sudo systemctl enable postgresql.service
To finish, make the services aware of the config changes: [archy@zabbix ~]$ sudo systemctl restart zabbix-server.service
[archy@zabbix ~]$ sudo systemctl restart apache2.service
[archy@zabbix ~]$ sudo systemctl restart postgresql.service
That concludes the setup on a debian9 based system. You can now login to your zabbix-instance by pointing your browser to the fqdn / ip of the server you've configured zabbix on.
You'll be greeted by this gui:
Feel free to comment and / or suggest a topic.
Comments
Post a Comment