Zabbix
zabbix(音同 zæbix)是一个基于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等平台上。
Zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
zabbix 依赖组件安装
在Ubuntu16.04中的apt-get源不能正常下载安装 zabbix-server-mysql和php5等等,所以要更换源问的内容。
首先到/etc/apt/目录对原来的source.list进行备份
#cp source.list source.list_16.04
然后把Ubuntu 15.10的source.list的内容
deb http://us.archive.ubuntu.com/ubuntu/ wily main restricted deb-src http://us.archive.ubuntu.com/ubuntu/ wily main restricted deb http://us.archive.ubuntu.com/ubuntu/ wily-updates main restricted deb-src http://us.archive.ubuntu.com/ubuntu/ wily-updates main restricted deb http://us.archive.ubuntu.com/ubuntu/ wily universe deb-src http://us.archive.ubuntu.com/ubuntu/ wily universe deb http://us.archive.ubuntu.com/ubuntu/ wily-updates universe deb-src http://us.archive.ubuntu.com/ubuntu/ wily-updates universe deb http://us.archive.ubuntu.com/ubuntu/ wily multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ wily multiverse deb http://us.archive.ubuntu.com/ubuntu/ wily-updates multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ wily-updates multiverse deb http://us.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu wily-security main restricted deb-src http://security.ubuntu.com/ubuntu wily-security main restricted deb http://security.ubuntu.com/ubuntu wily-security universe deb-src http://security.ubuntu.com/ubuntu wily-security universe deb http://security.ubuntu.com/ubuntu wily-security multiverse deb-src http://security.ubuntu.com/ubuntu wily-security multiverse
覆盖原来的source.list的内容
清理一下apt缓存信息
#apt-get clean #apt-get upgrade #apt-get update
如果zabbix-frontend-php无法下载的话可以切换回16.04的source.list进行下载安装
首先安装apache、php5、mysql
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
;date.timezone ===>去掉注释在=后添加 Asia/Shanghai max_input_time =600 max_execution_time= 600 post_max_size =32M sudo /etc/init.d/apache2 restart
Zabbix安装
//安装zabbix服务端 sudo apt-get install zabbix-server-mysql //安装过程会弹出许多窗口,默认就行了,期间要求输入2-3次数据库的密码(这里一直填root)
运行程序更新时出现报错: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用)
好吧,刚刚强制关闭,安装程序锁住了资源。于是:
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
然后重新安装:
sudo apt-get install zabbix-server-mysql
这次安装倒是完成了,可是过程中一点反应也没有,启动时失败
yoara@ubuntu:~$ sudo /etc/init.d/zabbix-server start * zabbix_server is disabled in /etc/default/zabbix-server.
于是打开相关文档查看
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了,首先要自己去设置数据库信息。。
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,images,data}.sql.gz | mysql -uzabbix -pzabbix zabbix
在安装脚本时,又出了mysql的问题
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
这问题一般是把socket改到/tmp/mysqld.sock,不过我这里先不管他,直接指定IP访问
zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz | mysql -h127.0.0.1 -uzabbix -pzabbix zabbix
终于zabbix-server启动成功了。
接着安装zabbix网站
//安装zabbix的网站程序 sudo apt-get install zabbix-frontend-php(数据库root,root,root)
好吧,又是安装完没有一点反应,果然,不知原因的只是解压到了/usr/share/zabbix目录下,什么都没发生。于是,手动拷贝到apache目录下
sudo cp -r /usr/share/zabbix /var/www/html/zabbix
现在访问,终于可以出现设置界面了
//停止zabbix-server sudo/etc/init.d/zabbix-server stop //启动zabbix-server sudo/etc/init.d/zabbix-server start http://服务器地址或域名/zabbix
不过安装到最后一步又出问题了,还算好,提供了下载,下载后ftp到服务器
复制过去后还是不行,那就得文件权限的问题了,于是ls- lh 果然如下,
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
因为在安装时也没注意账户,实际上对于这种应用,每个应用都要新建用户和用户组,这里就先全部授权
sudo chmod -R 777 /etc/zabbix
OK,终于可以了。登录用户名密码admin/zabbix。
配置zabbix_server.conf
# vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix StartTrappers=200 CacheSize=512M
设置mysql
(安装mysql时我把root账号的密码设置为zabbix)
Enter passworld:zabbix mysql>create database zabbix character set utf8 collate utf8_bin; mysql>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; mysql>flush privileges; mysql>set GLOBAL max_connections=1000; mysql>show variables like '%max_connections%'; mysql> quit; #cd /usr/share/doc/zabbix-server-mysql #zcat create.sql.gz | mysql -u root -p zabbix #cp -r /usr/share/zabbix /var/www/html/zabbix #service zabbix-server restart
修改服务端配置信息
配置PHP
sudo vim /etc/php5/apache2/php.ini修改项: post_max_size = 16M max_execution_time = 300 max_input_time = 300 date.timezone = "Asia/Shanghai" extension_dir = "/usr/lib/php5/20131226/"(gd.so被apt在到/usr/lib/php5/20131226下) extension=gd.so 修改完成后重启apache2 sudo service apache2 start
网页端配置
直接按照网页端配置执行。
-
地址:
http://ip/zabbix
-
用户名密码:
Admin/zabbix
服务器端配置
采用主动方式来进行数据信息获取,所以要配置一些数据
sudo vi /etc/zabbix/zabbix_server.conf
处理Agentd推送过来的数据的进程开大一些,默认是5
StartTrappers=200
服务器端在网页配置template
Configuration-->templates-->选择一个合适的原模板,点击进入详细页面然后full clone.
命名后修改items和Discovery rules的 Type。都设置为Zabbix agent (active)。
安装客户端
sudo apt-get install zabbix-agent
安装客户端后,若不是服务器本机,修改zabbix配置文件/etc/zabbix/zabbix_agent.conf的数据sudo vi /etc/zabbix/zabbix_agentd.conf
- 修改ServerAcive的IP,地址为服务端地址
ServerActive=127.0.0.1
-
设置为0 仅为主动模式,如果需要发送数据等 可以不修改此项
StartAgents=0
-
Hostname修改为网页里面添加的Hostname,需要保持一致。
Hostname=Zabbix server
在网页里添加Host
添加agent信息即可。注意选择刚才1.3.4中配置的模板及上面设置的Hostname。
Tips:
- 启动zabbix
sudo service zabbix-server start
or
sudo /etc/init.d/zabbix-server start - log file,启动不正常时,多查看log日志
/var/log/zabbix/zabbix_agentd.log
最后,安装zabbix客户端,安装过程也就结束了。
安装客户端后,若不是服务器本机,都需要修改zabbix配置文件/etc/zabbix/zabbix_agent.conf和/etc/zabbix/zabbix_sagentd.conf的一行
server=zabbix服务端地址或域名
可能遇到的问题
no active checks on server [127.0.0.1:10051]: host [ubuntu] not found
解决方法:
1.在页面上设置“组态->主机”将主机设置为监控客户端的机器hostname。
2./etc/zabbix/zabbix_agent.conf 中的hostname与1中设置的一致。
Ubuntu 仓库中提供的 Zabbix 软件包已经过时了。使用官方 Zabbix 仓库安装最新的稳定版本。
通过执行以下命令来安装仓库软件包:
下载deb
# wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+trusty_all.deb
# dpkg -i zabbix-release_3.0-1+trusty_all.deb
# apt-get update