After working with other Open Source monitoring systems over the years, I decided to give Zabbix a try. Net-Saint then Nagios was always good, but getting it going initially and then adding the trending graphing was always a pain. Big Brother was another good one, but now that Quest Software owns it, the BTF version gets less and less appealing. Zenoss is another that I have used recently, but not super-impressed with the ability to create a nice services dashboard that I want to monitor a bunch of hosts and services on one screen. So, Zabbix, I thought, was worth a shot. Also, just getting the monitoring then having to do some hokey, non-documented grapher for Nagios was not going to be fun again so time to try something new.
Good news is the manual is pretty good. My recommendation is to go with Ubuntu for the host OS if possible. I was always a RedHat/Centos guy, but just not really into hunting for dependencies and RPMs anymore. Apt-get is just too great to handle and when you want to get something done quickly, it is just really nice.
Some of the following has been lifted from other places on the net but here goes what worked for me…
1. Hit the basics that need to be in-place. When you do your Heron install, you can hit them then or after with apt-get. Of course, you need;
and a few other ones you probably don’t have
libsnmp9-dev (this is important for NET-SNMP support for Zabbix at config time)
You can issue this to get the ones that are not so standard:
$ sudo apt-get install php5-gd snmp libsnmp9-dev snmpd
(wait for a while)
2. Create zabbix user/group
$ sudo adduser zabbix
(it will walk you through the user info q&a) then when done and he user to the ‘admin’ group as well
$ sudo adduser zabbix admin
3. Create the mysql db for the backend (make sure mysqld is running prior of course). There is no password for the default root user for new mysqld installs, so no need to enter a password. You should change that and secure mysql of course later…
$ mysql -uroot
mysql> create database zabbix;
4. Download zabbix from their site. The version I am dealing with now is 1.6.1 http://www.zabbix.com/download.php and place it somewhere on the server and unzip/untar it so you have a directory with the release contents.You probably would be served best to place it into the home directory of the zabbix user (i.e – /home/zabbix/zabbix-1.6.1). By this time, I am just staying as root user throughout after getting sick of sudo.
5. Setting up the mysql db with the sql files from the release –
cd into the zabbix release directory (I will use /home/zabbix/zabbix-1.6.1 from now on) and run
$ cat create/schema/mysql.sql | mysql -uroot zabbix
$ cd create/data
$ cat data.sql | mysql -uroot zabbix
$ cat images_mysql.sql | mysql -uroot zabbix
That should get the db populated. To check mysql later and manage other mysql dbs with a nice GUI, phpmyadmin is what I would recommend. But onward!
6. While sitting in the release directory (/home/zabbix/zabbix-1.6.1) run the configure as root or sudo:
#./configure –enable-proxy –with-mysql –with-net-snmp –with-libcurl –enable-server –enable-agent
If this fails, stop and make sure you have everything installed from step #1. I missed a few things initially but if you have everything installed, it should go. Then
# make install
7. Create config directory and copy the defaults over;
$ sudo mkdir /etc/zabbix
$ sudo chown -R zabbix.zabbix /etc/zabbix/
$ cp misc/conf/zabbix_* /etc/zabbix/
I would not mess with the configs just yet. I always over think settings so I tend to see if it can run then tweak after. These ran fine on Hardy Heron without modification initially.
8. Get the web interface files placed:
cp -R /home/zabbix/zabbix-1.6.1/frontends/php/* /home/zabbix/web
You should chown and chmod the directory for the initial config to go smoothly later:
$ sudo chown -R zabbix /home/zabbix/web
$ sudo chgrp -R <your webserver user> /home/zabbix/web
$ sudo chmod -R 775 /home/zabbix/web
and add the alias to the apache default site
$ sudo vi /etc/apache2/sites-enabled/000-default
When in vi, paste something like this prior to the termination of the virtualhost:
Alias /zabbix/ /home/zabbix/web/
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Allow from all
<LimitExcept GET POST OPTIONS PROPFIND>
Deny from all
9. Start zabbix server and the agent:
$ sudo zabbix_server
$ sudo zabbix_agentd &
10. Check the php.ini and change these (the max_execution_time for me was 30 seconds initially)
max_execution_time = 300 ; Maximum execution time of each script, in seconds
date.timezone = <your timezone>
Timezone reference for php @
Mine is —-> date.timezone = America/Los_Angeles
11. Restart apache to kick-in the site changes alias and the php.ini changes if they were needed.
12. Go to http://<hostname / ip>/zabbix/
13. The initial login should be
14. Walk through the install and because of what you did in step 8 above, you should be able to have it save the config to the directory. If not, you can save it and scp or sftp it up to the /home/zabbix/web/conf directory.
15. Add hosts and play with graphs now. You shoudl go add yourself as a separate user and change the main admin password, etc.
I am sure I missed something or could have done things in a better order, but this is what I was able to piece together from older version install guides on the web and what worked for me. There are addition setups that should be done so you HAVE to check the install guide, but this is the basic way to get operational at least on Ubuntu Hardy Heron.
Hope this helps,
UPDATE: For Ubuntu 8.10 I needed to also install
and I just installed all libmysql
$ sudo apt-get install libmysql*
$ sudo apt-get install libcurl4-gnutls-dev