Now I wanted to explain how to install it but this time, on Ubuntu. For my tests, I am going to use an Ubuntu Server 11.04 (64 bits) and Zabbix 1.8.5. For this infraestructure, we need MySQL and Apache. Let's start installing the necessary packages.
root@ubuntu-server:~# aptitude install build-essential apache2 mysql-server libmysqld-dev snmpd libsnmp-dev php5 php5-mysql php5-gd libcurl4-openssl-dev libiksemel-dev libopenipmi-dev libssh2-1-dev fping
root@ubuntu-server:~# mysql_secure_installation
As well it is important to run the mysql_secure_installation script in order to remove the anonymous user and the test database.
First of all we have to set up the database which will be used by Zabbix.
root@ubuntu-server:~# mysql -u root -p
...
mysql> CREATE DATABASE zabbix;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'xxxxxx';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
Query OK, 0 rows affected (0.00 sec)
Once we have downloaded the Zabbix source code and decompressed it, we have just to compile and install it. If we want to have the Zabbix client, we must mark the --enable-agent parameter.
root@ubuntu-server:~/zabbix-1.8.5# ./configure --enable-agent --enable-ipv6 --enable-server --with-mysql --with-libcurl --with-net-snmp --with-jabber --with-ssh2 --with-openipmi
root@ubuntu-server:~/zabbix-1.8.5# make ; make install
Next step is to create the needed directories and copy the configuration files into them. We must also add a new user (zabbix) to the system and dump the data and schemas within the Zabbix database.
root@ubuntu-server:~/zabbix-1.8.5# mkdir -p /etc/zabbix/alert.d /etc/zabbix/externalscripts /var/log/zabbix /var/run/zabbix /usr/share/zabbix
root@ubuntu-server:~/zabbix-1.8.5# useradd -r -d /var/run/zabbix -s /sbin/nologin zabbix
root@ubuntu-server:~/zabbix-1.8.5# cp -a misc/conf/zabbix_server.conf misc/conf/zabbix_agentd.conf /etc/zabbix/
root@ubuntu-server:~/zabbix-1.8.5# cp -r frontends/php/* /usr/share/zabbix
root@ubuntu-server:~/zabbix-1.8.5# chown zabbix:zabbix /var/run/zabbix /var/log/zabbix
root@ubuntu-server:~/zabbix-1.8.5# (echo "USE zabbix;" ; cat create/schema/mysql.sql ; cat create/data/data.sql ; cat create/data/images_mysql.sql) | mysql -h 127.0.0.1 -u zabbix --password=xxxxxx
Below we can see the minimum setting for both the server and client.
root@ubuntu-server:~# cat /etc/zabbix/zabbix_server.conf
...
# Zabbix server log file
LogFile=/var/log/zabbix/zabbix_server.log
# Zabbix server PID file
PidFile=/var/run/zabbix/zabbix_server.pid
# Zabbix database user and password
DBUser=zabbix
DBPassword=xxxxxx
# Location of alert scripts
AlertScriptsPath=/etc/zabbix/alert.d/
# Location of external scripts
ExternalScripts=/etc/zabbix/externalscripts
root@ubuntu-server:~# cat /etc/zabbix/zabbix_agentd.conf
...
# Zabbix client PID file
PidFile=/var/run/zabbix/zabbix_agentd.pid
# Zabbix client log file
LogFile=/var/log/zabbix/zabbix_agentd.log
# Allow remote commands from zabbix server
EnableRemoteCommands=1
# Maximum time for processing
Timeout=10
# System hostname
Hostname=ubuntu-server
# Zabbix server IP
Server=::ffff:127.0.0.1
root@ubuntu-server:~# chmod 600 /etc/zabbix/zabbix_server.conf
So as to be able to automatically start and stop the Zabbix agent and server, we have to create an Upstart file for this task. The Zabbix source code already provides the suitable script for Upstart, but I prefer to employ my own files (then you can see them - I have set some dependences which I consider important).
root@ubuntu-server:~# cat /etc/init/zabbix-server.conf
# Start zabbix server
pre-start script
if [ ! -d /var/run/zabbix ]; then
mkdir -p /var/run/zabbix
chown zabbix:zabbix /var/run/zabbix
fi
end script
start on started mysql
stop on stopping mysql
respawn
expect daemon
exec /usr/local/sbin/zabbix_server
root@ubuntu-server:~# cat /etc/init/zabbix-agent.conf
# Start zabbix agent
pre-start script
if [ ! -d /var/run/zabbix ]; then
mkdir -p /var/run/zabbix
chown zabbix:zabbix /var/run/zabbix
fi
end script
start on filesystem
stop on starting shutdown
respawn
expect daemon
exec /usr/local/sbin/zabbix_agentd
Now we can end the part of the Zabbix binary installation by registering the services and booting the processes up.
root@ubuntu-server:~# echo "zabbix-agent 10050/tcp Zabbix Agent" >> /etc/services
root@ubuntu-server:~# echo "zabbix-agent 10050/udp Zabbix Agent" >> /etc/services
root@ubuntu-server:~# echo "zabbix-trapper 10051/tcp Zabbix Trapper" >> /etc/services
root@ubuntu-server:~# echo "zabbix-trapper 10051/udp Zabbix Trapper" >> /etc/services
root@ubuntu-server:~# start zabbix-server
root@ubuntu-server:~# start zabbix-agent
Great step by step procedure.
ReplyDeleteit only miss the following part:
echo "Alias /zabbix /usr/share/zabbix" > /etc/apache2/conf.d/zabbix.conf
/etc/init.d/apache2 restart
That issue is in the second part of the article:
ReplyDeletehttp://redes-privadas-virtuales.blogspot.com/2011/06/zabbix-server-installation-on-ubuntu-ii.html
;-)
Thank you for sharing this article, I can't wait for the second part.
ReplyDeleteIf you read the previous comment, you will be able to see that the second part of the article already came out, ;-)
ReplyDeletegood article
ReplyDeletethanks