zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
1.1 Zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
1.2 Zabbix主要功能:
2.Ubuntu下安装Zabbix- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
本来在Ubuntu下安装Zabbix并不复杂,但我在安装中遇到一些问题有必要记录下来,可能其他人也会遇到。
2.1 首先安装apache、php5、mysql
这一部分还是很轻松的
[html] view plaincopy
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart // 重启apache,此时php5已经可用了
sudo apt-get install mysql-server//数据库账号:root密码:root
sudo apt-get install libapache2-mod-auth-mysql
sudo apt-get install php5-mysql
sudo /etc/init.d/apache2 restart // 再次重启apache,使新服务正常激活
然后在终端输入:
sudo ls /etc/apache2/mods-enabled
看看这个目录下(默认存在),有没有php5.conf 和 php5.load,如果没有则:
sudo a2enmod php5
启用 php 模块,然后重启apache即可。OK,apache、php5、mysql都已经可用了。
sudo /etc/init.d/apache2 restart
这里还需要配置下/etc/php5/apache2/php.ini
[html] view plaincopy
;date.timezone ===>去掉注释在=后添加 Asia/Shanghai
max_input_time =600
max_execution_time= 600
post_max_size =32M
sudo /etc/init.d/apache2 restart
2.2 Zabbix安装
这里开始就有些小问题了。
[html] view plaincopy
//安装zabbix服务端
sudo apt-get install zabbix-server-mysql
//安装过程会弹出许多窗口,默认就行了,期间要求输入2-3次数据库的密码(这里一直填root)
按安装说明来看,会自动设置数据库信息,同时自动建库,但是我在这里安装到一半因不明原因安装失败了。于是只好关闭shell窗口。
另起shell重新安装时,遇到问题:
[html] view plaincopy
运行程序更新时出现报错:
无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用)
好吧,刚刚强制关闭,安装程序锁住了资源。于是:
[html] view plaincopy
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/updates/*
sudo apt-get update
sudo apt-get upgrade
sudo apt-get aotuclean
sudo apt-get aoturemove
sudo apt-get clean
然后重新安装:
[html] view plaincopy
sudo apt-get install zabbix-server-mysql
这次安装倒是完成了,可是过程中一点反应也没有,启动时失败
[html] view plaincopy
yoara@ubuntu:~$ sudo /etc/init.d/zabbix-server start
* zabbix_server is disabled in /etc/default/zabbix-server.
于是打开相关文档查看
[html] view plaincopy
cat /etc/default/zabbix-server
#如下一段
# This is by default set to "no" because a MySQL database needs to be prepared
# and configured before you can start the Zabbix server for the first time.
#
# Instructions on how to set up the database can be found in
# /usr/share/doc/zabbix-server-mysql/README.Debian
START=no
难怪,这里被设置成no了,首先要自己去设置数据库信息。。
[html] view plaincopy
cat/usr/share/doc/zabbix-server-mysql/README.Debian
create database zabbix character set utf8;
create user 'zabbix'@'%' identified by 'zabbix';
grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
zcat /usr/share/zabbix-server-mysql/{schema,p_w_picpaths,data}.sql.gz \
| mysql -uzabbix -pzabbix zabbix
在安装脚本时,又出了mysql的问题
[html] view plaincopy
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
这问题一般是把socket改到/tmp/mysqld.sock,不过我这里先不管他,直接指定IP访问
[html] view plaincopy
zcat /usr/share/zabbix-server-mysql/{schema,p_w_picpaths,data}.sql.gz \
| mysql -h127.0.0.1 -uzabbix -pzabbix zabbix
终于zabbix-server启动成功了。
接着安装zabbix网站
[html] view plaincopy
//安装zabbix的网站程序
sudo apt-get install zabbix-frontend-php(数据库root,root,root)
好吧,又是安装完没有一点反应,果然,不知原因的只是解压到了/usr/share/zabbix目录下,什么都没发生。于是,手动拷贝到apache目录下
[html] view plaincopy
sudo cp -r /usr/share/zabbix /var/www/html/zabbix
现在访问,终于可以出现设置界面了
[html] view plaincopy
//停止zabbix-server
sudo/etc/init.d/zabbix-server stop
//启动zabbix-server
sudo/etc/init.d/zabbix-server start
http://服务器地址或域名/zabbix
不过安装到最后一步又出问题了,还算好,提供了下载,下载后ftp到服务器
[html] view plaincopy
sudo cp /home/yoara/zabbix.conf.php /etc/zabbix/zabbix.conf.php
复制过去后还是不行,那就得文件权限的问题了,于是ls- lh 果然如下,
[html] view plaincopy
yoara@ubuntu:/etc$ ls -lh /etc/zabbix
总用量 36K
drwxr-xr-x 2 root root 4.0K 2月 16 2014 alert.d
-rw------- 1 root root 425 12月 9 22:46 dbconfig.php
-rw-r--r-- 1 root root 7.4K 2月 16 2014 zabbix_agentd.conf
drwxr-xr-x 2 root root 4.0K 2月 16 2014 zabbix_agentd.conf.d
-rw------- 1 root root 425 12月 9 22:36 zabbix.conf.php
-rw-r--r-- 1 root root 12K 12月 9 21:10 zabbix_server.conf
因为在安装时也没注意账户,实际上对于这种应用,每个应用都要新建用户和用户组,这里就先全部授权
[html] view plaincopy
sudo chmod -R 777 /etc/zabbix
OK,终于可以了。登录用户名密码admin/zabbix
最后,安装zabbix客户端,安装过程也就结束了。
[html] view plaincopy
//安装zabbix客户端
sudo apt-get install zabbix-agent
[html] view plaincopy
安装客户端后,若不是服务器本机,都需要修改zabbix配置文件/etc/zabbix/zabbix_agent.conf和/etc/zabbix/zabbix_sagentd.conf的一行
server=zabbix服务端地址或域名
[html] view plaincopy
no active checks on server [127.0.0.1:10051]: host [ubuntu] not found
解决方法:
1.在页面上设置“组态->主机”将主机设置为监控客户端的机器hostname。
2./etc/zabbix/zabbix_agent.conf 中的hostname与1中设置的一致。