zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
Zabbix主要功能:
- CPU负荷
- 内存使用
-磁盘使用
- 网络状况
- 端口监视
- 日志监视。
环境部署:
Centos 7.0 系统
文件存储目录 /usr/local/src
LNMP 环境
Zabbix-3.2.4
ZABBIX 安装具体过程 :
一、配置LNMP环境 并验证LNMP环境运行状态 。[[email protected] ~]# service mysqld restart
Shutting down MySQL. SUCCESS!
Starting MySQL.. SUCCESS!
[[email protected] ~]# service nginx restart
Restarting nginx (via systemctl): [ 确定 ]
[[email protected] ~]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
二、创建导入zabbix 数据库。[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# tar -zxf zabbix-3.2.4.tar.gz
[[email protected] ~]# mysql -u root -p
Enter password:
mysql> create database zabbix character set utf8; #创建zabbix 数据库,设置默认为utf8模式 。
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to [email protected]‘%‘identified by ‘[email protected]‘ with grant option; #添加管理zabbix数据库的用户zabbix ,并分配其所有权限;且设置密码为[email protected]
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> use zabbix; #切换进入zabbix数据库
Database changed
mysql> select user,host from mysql.user; #查看用户列表
+--------+-----------+
| user | host |
+--------+-----------+
| zabbix | % |
| root | 127.0.0.1 |
| root | localhost |
+--------+-----------+
3 rows in set (0.00 sec)
mysql> source /usr/local/src/zabbix-3.2.4/database/mysql/schema.sql #导入schema.sql文件到zabbix数据库
mysql>source /usr/local/src/zabbix-3.2.4/database/mysql/images.sql #导入images.sql文件到zabbix数据库
mysql>source /usr/local/src/zabbix-3.2.4/database/mysql/data.sql #导入data.mysql文件到zabbix数据库
三、安装zabbix
1、添加zabbix用及组[[email protected] src]# groupadd zabbix
[[email protected] src]# useradd zabbix -g zabbix -s /bin/false
2、安装依赖包[[email protected] src]# yum install net-snmp-devel curl curl-devel mysql-devel -y
3、安装zabbix[[email protected] zabbix]# ./configure --prefix=/usr/local/zabbix --with-libcurl --with-net-snmp --with-mysql --enable-server --enable-agent
[[email protected] zabbix]# make && make install
4、添加zabbix对应的服务端口[[email protected] zabbix]# vi /etc/services
#ZABBIX
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
:wq
5、修改zabbix配置文件[[email protected] zabbix]# vi /usr/local/zabbix/etc/zabbix_server.conf #修改zabbix_server.conf配置文件
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=123456 #数据库密码
ListenIP=127.0.0.1 #数据库ip地址
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #zabbix运行脚本存放目录
:wq
[[email protected] zabbix]# vi/usr/local/zabbix/etc/zabbix_agentd.conf #修改zabbix_agentd.conf 配置文件
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1 #启用自定义key
:wq! #保存退出
6、添加开机启动脚本[[email protected] zabbix]# cp /usr/local/src/zabbix-3.2.4/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server #服务端
[[email protected] zabbix]# cp /usr/local/src/zabbix-3.2.4/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd #客户端
[[email protected] zabbix]# chmod +x /etc/rc.d/init.d/zabbix_* #添加脚本执行权限
[[email protected] zabbix]# chkconfig zabbix_server on #添加开机启动
[[email protected] zabbix]# chkconfig zabbix_agentd on #添加开机启动
7、修改zabbix开机启动脚本中的zabbix安装目录[[email protected] zabbix]#vi /etc/rc.d/init.d/zabbix_server #编辑服务端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
:wq! #保存退出
[[email protected] zabbix]#vi /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件
BASEDIR=/usr/local/zabbix/#zabbix安装目录
:wq! #保存退出
8、配置web站点[[email protected] zabbix]# cd /usr/local/src/zabbix-3.2.4
[[email protected] zabbix-3.2.4]# cp -r ./frontends/php/ /usr/local/nginx/html/zabbix
[[email protected] zabbix-3.2.4]# chown www.www -R /usr/local/nginx/html/zabbix/ #/usr/local/nginx/html为Nginx默认站点目录 www为Nginx运行账户
[[email protected] zabbix]# service zabbix_server start #启动zabbix服务端
[[email protected] zabbix]# service zabbix_agentd start #启动zabbix客户端
9、修改php配置文件参数[[email protected] zabbix]# vi /etc/php.inipost_max_size =16M
max_execution_time =300
max_input_time =300
:wq! #保存退出
[[email protected] zabbix]# vi /usr/local/php/etc/php-fpm.conf #编辑修改
request_terminate_timeout = 300
:wq! #保存退出
[[email protected] zabbix]#service php-fpm reload #重启php-fpm
四、通过 web 调配zabbix访问界面
2、检查系统环境设置,必须全部都为ok,才能继续Next
3、配置MySQL数据库信息
Database:MySQL
Database
host:127.0.0.1
Database
port:use default port
Database
name:zabbix
User:zabbix
4、默认即可 ,next
5、默认即可 ,next
6、finish
五、故障处理及中文显示
1、时间不一致故障处理strtotime(): Invalid date.timezone value ‘ShangHai‘, we selected the timezone ‘UTC‘ for now. [zabbix.php:21 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CWebUser::setSessionCookie() → strtotime() in include/classes/user/CWebUser.php:135]
date(): Invalid date.timezone value ‘ShangHai‘, we selected the timezone ‘UTC‘ for now. [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → local_generateHeader() → CView->getOutput() → include() → date() in app/views/layout.htmlpage.header.php:46]
解决方法:修改/etc/php.ini 文件中date.timezong = Asia/ShangHai[[email protected] ~]# vi /etc/php.ini
date.timezone = Asia/ShangHai
:wq
[[email protected] ~]# service php-fpm restart
2、中文界面配置,如下图操作。
至此,zabbix server环境及部署工作准备完成 ,后期将陆续对客户端进行调配 ,实现对客户端的实时监控;通过邮件或微信的方式进行报警等功能 。