Setting up Zabbix

From Alpine Linux

Jump to: navigation, search

Contents

Zabbix Monitoring Solution

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 http://www.zabbix.com.

Note: The minimum required version of Alpine Linux required to install Zabbix is Alpine 2.2.

Install Lighttpd, and PHP

Install the additional packages:

apk add lighttpd php-common php-iconv php-json php-gd php-curl php-xml php-pgsql php-imap

apk add php-pdo php-pdo_pgsql php-soap php-xmlrpc php-posix php-mcrypt php-gettext php-ldap php-ctype php-dom

Configure Lighttpd

vi /etc/lighttpd/lighttpd.conf

Uncomment line:

include "mod_fastcgi.conf"

Start lighttpd service and add to needed runlevel

/etc/init.d/lighttpd start && rc-update add lighttpd default

Configure PostgreSQL

Setup and configure PostgreSQL:

apk add postgresql postgresql-client /etc/init.d/postgresql setup /etc/init.d/postgresql start rc-update add postgresql

Install Zabbix

apk add zabbix zabbix-pgsql zabbix-webif zabbix-setup

Now we need to set up the zabbix database. Substitute '*********' in the example below for a real password:

psql –U postgres postgres=# create user zabbix with password '*********'; postgres=# create database zabbix owner zabbix; postgres=# \q cd /usr/share/zabbix/create/schema/ cat postgresql.sql | psql -U zabbix zabbix cd .. cd data/ cat data.sql | psql -U zabbix zabbix cat images_pgsql.sql | psql -U zabbix zabbix

Create a softlink for the Zabbix web-frontend files:

rm /var/www/localhost/htdocs -R ln -s /usr/share/webapps/zabbix /var/www/localhost/htdocs

Edit PHP configuration to satisfy some zabbix requirements. Edit /etc/php/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

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:

rc-update add zabbix-server /etc/init.d/zabbix-server start

Fix permissions on conf directory.

chown -R lighttpd /usr/share/webapps/zabbix/conf

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 http://www.zabbix.com/documentation/1.8/manual/installation)

Finally, Zabbix requires special permissions to use the fping binary.

chmod u+s /usr/sbin/fping

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.

Note: Support to allow zabbix-agentd to view running processes on Alpine Linux has been added since linux-grsec-2.6.35.9-r2. Please ensure you have that kernel installed prior to attempting to run zabbix-agentd.

Ensure that the readproc group exists (support added since alpine-baselayout-2.0_rc1-r1), by adding the following line to /etc/group:

readproc:x:30:zabbix

Install the agent package:

apk add zabbix-agent

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:

rc-update add zabbix-agentd /etc/init.d/zabbix-agentd start

In case you want to monitor using SNMP agent on remote machines you have to add these packages on zabbix server:

apk add net-snmp net-snmp-tools

And add these packages on remote machines:

apk add net-snmp


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

Administration -> Users

Configuration -> Hosts -> Create host

Configuration -> Templates -> Create template

Configuration -> Templates -> Template_Alpine_Linux_Infra_HTTP -> Items

Configuration -> Templates -> Template_Alpine_Linux_Infra_HTTP -> Triggers

Configuration -> Actions ->

Personal tools
Namespaces
Variants
Actions
Welcome
Services
Wiki
Toolbox