Ubuntu 10.04 安装 Zabbix

安装可以分为直接通过包管理器安装以及编译安装,10.04 通过包管理器安装的版本是 1.8.1,而最新的稳定版本是 1.8.10。

$ sudo apt-get install zabbix-server-mysql
$ sudo apt-get install zabbix-agent
$ sudo apt-get install zabbix-frontend-php

注意:使用 backports 会安装 1.8.10:
$ sudo apt-get install -t lucid-backports zabbix-agent

通过下面的命令查看版本号:
$ zabbix_agent --version
Zabbix Agent v1.8.1 (revision 9702) (27 January 2010)
Compilation time:  Apr  6 2010 01:54:49
$ zabbix_server --version
Zabbix Server (daemon) v1.8.1 (revision 9702) (27 January 2010)
Compilation time:  Apr  6 2010 01:55:32

后台 http://ip/zabbix,默认用户名密码是 admin/zabbix,记得登录后修改密码。然后根据出现的提示修改 /etc/php5/apache2/php.ini 中的指令。

下面主要记录编译安装的步骤,具体的解释请看官方文档

1.安装 lamp 以及 zabbix 需要的一些库文件:
$ sudo apt-get install build-essential
$ sudo apt-get install apache2
$ sudo apt-get install mysql-server mysql-client libmysqlclient15-dev libmysqld-dev
$ sudo apt-get install libxml2-dev snmp libsnmp-dev php5 php5-mysql php5-gd curl libcurl3 libcurl4-openssl-dev libopenipmi-dev libssh2-1-dev fping

 
如果需要 Jabber 的支持,还需要 libiksemel3,libiksemel-dev 两个包的支持。

修改 /etc/php5/apache2/php.ini 文件:
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
max_exection_time = 600
max_input_time = 600
data.timezone = Asia/Shanghai

测试:
$ cat /var/www/index.php
<html> 
<body> 
<? echo phpinfo(); ?> 
</body> 
</html> 

$ sudo /etc/init.d/apache2 restart

2.添加用户:
$ sudo groupadd zabbix
$ sudo useradd -r -d /var/run/zabbix -s /sbin/nologin -g zabbix zabbix
$ su - zabbix


3.添加 zabbix-server 以及 zabbix-agent 的 pid 目录以及 log 目录:
$ mkdir /var/log/zabbix-server /var/run/zabbix-server
$ chown zabbix:zabbix /var/log/zabbix-server /var/run/zabbix-server
$ mkdir /var/log/zabbix-agent /var/run/zabbix-agent
$ chown zabbix:zabbix /var/log/zabbix-agent /var/run/zabbix-agent

4.设置 log 轮询:
$ cat /etc/logrotate.d/zabbix-server
/var/log/zabbix-server/zabbix_server.log{
    daily
    rotate 7
    compress
    missingok
    notiempty
    create 0640 zabbix zabbix
    shardscripts
}

$ cat /etc/logrotate.d/zabbix-agent
/var/log/zabbix-agent/zabbix_agentd.log{
    daily
    rotate 7
    compress
    missingok
    notiempty
    create 0640 zabbix zabbix
    shardscripts
}

5.下载最新的 zabbix-stable,解压:
$ pwd
/usr/local/src
$ tar zxvf zabbix-1.8.10.tar.gz
$ tree zabbix-1.8.10/ -d -L 1

.
├── aclocal.m4
├── AUTHORS
├── bin
├── build
├── ChangeLog
├── compile
├── config.guess
├── config.log
├── config.status
├── config.sub
├── configure
├── configure.in
├── COPYING
├── create
├── CREDITS
├── depcomp
├── frontends
├── include
├── INSTALL
├── install-sh
├── m4
├── Makefile
├── Makefile.am
├── Makefile.in
├── man
├── misc
├── missing
├── NEWS
├── README
├── src
└── upgrades

10 directories, 21 files

6.mysql 设置:
$ mysql  -u root -p
$ > create database  zabbix  character set utf8;
$ > grant all privileges on zabbix.* to [email protected] identified  by 'passwd';
$ > quit

$ mysql -u zabbix -p zabbix < create/schema/mysql.sql
$ mysql -u zabbix -p zabbix < create/data/data.sql
$ mysql -u zabbix -p zabbix < create/images_mysql.sql

7.修改 zabbix-server/zabbix-agents 配置:
$ sudo mkdir /etc/zabbix
$ cp -a misc/conf/zabbix_server.conf /etc/zabbix
$ cp -a misc/conf/zabbix_agentd.conf /etc/zabbix
$ sudo cp -R frontends/php/* /var/www/zabbix

注意:zabbix_agentd.conf 是 standalone daemon 模式而 zabbix_agent.conf 是 inetd 模式,优先选择前者。

$ sudo vi /etc/zabbix/zabbix_server.conf
DBUser=zabbix
DBPassword=zabbix
LogFile=/var/log/zabbix-server/zabbix_server.log
PidFile=/var/run/zabbix-server/zabbix_server.pid

$ sudo vi /etc/zabbix/zabbix_agentd.conf
LogFile=/var/log/zabbix-agent/zabbix_agent.log
PidFile=/var/run/zabbix-agent/zabbix_agent.pid

8.编译 zabbix,修改 services:
$ cd zabbix-1.8.10/
$ ./configure --prefix=/usr --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --with-openopmi --with-ssh2
$ make
$ sudo make install

$ sudo vi /etc/services
zabbix_agent    10050/tcp                       #Zabbix Agent 
zabbix_agent    10050/udp                       #Zabbix Agent 
zabbix_trapper  10051/tcp                       #Zabbix Trapper 
zabbix_trapper  10051/udp                       #Zabbix Trapper
这个不是必须的,如果要修改 server/agent 的端口,这里也需要修改。

9.启动:
$ sudo cp misc/init.d/debian/zabbix-server /etc/init.d
$ sudo cp misc/init.d/debian/zabbix-agent /etc/init.d

$ sudo update-rc.d zabbix-server defaults
$ sudo update-rc.d zabbix-agent defaults
$ sudo /etc/init.d/zabbix-server start
$ sudo /etc/init.d/zabbix-agent start

在其他的机器安装 agent:
$ aptitude install zabbix-agent

在 CentOS 系的机器上安装 zabbix 请看这里

在修改了配置文件重启过程中,如果有语法错误,daemon 不会启动,可以通过下面这个方法查看错误的地点:
$ sudo /etc/init.d/zabbix-agent restart
* Stopping Zabbix agent zabbix_agentd                
No /usr/sbin/zabbix_agentd found running; none killed.
* Starting Zabbix agent zabbix_agentd
[ OK ]
$ sudo ./zabbix_agentd  -c /etc/zabbix/zabbix_agentd.conf
zabbix_agentd [12318]: Wrong value for [DebugLevel] in line 59.

如果 agent 是 debian 系列的,zabbix 不会侦测到 apache2,CentOS 的则可以,修改下 proc.num 就可以了:
Template_Linux:Number of running processes apache
proc.num[httpd]
修改为
proc.num[apache2]

ref:
http://www.zabbix.com/documentation/1.8/manual/installation
http://redes-privadas-virtuales.blogspot.com/2011/05/zabbix-server-installation-on-ubuntu-i.html
http://redes-privadas-virtuales.blogspot.com/2011/06/zabbix-server-installation-on-ubuntu-ii.html