目录
1. 准备工作
1.1 Linux+MySQL+PHP环境
1.2 添加软件包安装源
1.3 若mysql为空密码,需要修改mysql的root密码
1.4 时间同步
2. 开始安装
2.1 创建zabbix用户
2.2 创建zabbix数据库
2.3 yum安装zabbix
2.4 导入zabbix数据库的sql文件
2.5 配置zabbix_server.conf
2.6 浏览器访问http://x.x.x.x/zabbix ,开始配置zabbix
3.部署Zabbix Agent
3.1 客户端安装agent
3.2 客户端配置zabbix_agentd.conf文件
3.3 重启zabbix-agent服务
1. 准备工作
1.1 Linux+MySQL+PHP环境(zabbix安装后自动装了apache)
Server1:(角色:server)
- CentOS6.8 x64
- 192.168.1.190
- zabbix server
Server2:(角色:agent)
- CentOS6.8 x64
- 192.168.1.191
- zabbix agent
Zabbix架构
下面是我根据自己的理解,画的一个简单版架构图,旨在帮助大家能够快速理解Zabbix环境,zabbix server和agent之间的工作原理,适合入门新手;由于是简版图,所以展示的只是比较单一情况的架构,不包括zabbix所有模块、站库分离、zabbix proxy、数据收集的主动/被动模式、分布式等等。后续有时间的时候我会画出更多详细的原理图。更多权威信息,也请查看官方文档(http://www.zabbix.com/manuals)
Tips:
- 在开始部署之前,简单的解释一下zabbix server/agent的工作原理。zabbix作为一款开源的监控软件,是典型的C/S架构,分为server端和agent端,所有被监控的服务器上都要安装一个zabbix-agent的客户端软件,用来收集服务上的硬件信息、操作系统信息、应用信息等,负责收集和整理数据的服务器叫zabbix server,在zabbix server上,至少需要安装安装两个软件,一个是zabbix-server,另外一个是zabbix-agent,可能有的初学同学有疑问,为啥zabbix server上还要安装agent呢,这是因为zabbix server也要监控自己这台(或多台proxy)服务器的运行状况。
- zabbix的数据收集方式有两种,一种是主动式收集,另一种是被动式收集。这里的主动和被动都是相对于Server而言,如果Server的硬件配置比较好,可以采用主动方式收集数据,轮询去找所有的agent要数据,这样可以减少客户端的性能资源消耗,如果Agent的服务器硬件配置比较好,可以采用被动方式收集数据,由agent定期主动提交数据给server。
1.2 添加软件包安装源
我的系统版本是CentOS6.8 x64,因此在添加软件包源的时候选择的是epel中6系列的rpm源;若你的系统是CentOS5.x或者7.x也不必担心,可以去到http://dl.fedoraproject.org 中去寻找对应的源,切勿添加了错误的源,这样可能会导致后续再安装软件的时候都会检测不到对应版本的软件包,而需要额外很多不必要的操作。
[root@example00 ~]# yum -y install wget
[root@example00 ~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@example00 ~]# rpm -ivh epel-release-6-8.noarch.rpm
1.3 若mysql为空密码,需要修改mysql的root密码
[root@example00 ~]# mysql -u root -p
mysql> use mysql;
mysql> UPDATE user SET password = PASSWORD('123456') WHERE user='root';
mysql> flush privileges;
mysql> exit
1.4 时间同步
若是本地的自己测试环境,可以不关心时间同步的问题,但若是生产环境(支付、游戏、交易)或者是开发版测试环境,那么必须要保持服务器的时间同步,否则可能会导致灾难性的问题。
[root@example00 ~]# crontab -l
*/20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1
2. 开始安装
2.1 创建zabbix用户
[root@example00 ~]# groupadd zabbix
[root@example00 ~]# useradd -g zabbix -m zabbix -s /sbin/nologin
2.2 创建zabbix数据库
[root@example00 ~]# mysql -u root -p
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@'192.168.1.190' identified by 'zabbix' with grant option;
mysql> flush privileges;
mysql> show databases;
mysql> exit
2.3 yum安装zabbix
查找zabbix的软件包
[root@example00 src]# yum list | grep zabbix
zabbix22.x86_64 2.2.16-1.el6 epel
zabbix22-agent.x86_64 2.2.16-1.el6 epel
zabbix22-dbfiles-mysql.noarch 2.2.16-1.el6 epel
zabbix22-proxy-mysql.x86_64 2.2.16-1.el6 epel
zabbix22-server-mysql.x86_64 2.2.16-1.el6 epel
zabbix22-web-mysql.noarch 2.2.16-1.el6 epel
安装zabbix必须的包
[root@example00 src]# yum -y install zabbix22 zabbix22-agent zabbix22-dbfiles-mysql zabbix22-proxy-mysql zabbix22-server-mysql zabbix22-web-mysql
2.4 导入zabbix数据库的sql文件
[root@example00 src]# cd /usr/share/zabbix-mysql/
[root@example00 zabbix-mysql]# ls
data.sql images.sql schema.sql upgrades
[root@example00 zabbix-mysql]# mysql -u root -p zabbix < schema.sql
[root@example00 zabbix-mysql]# mysql -u root -p zabbix < images.sql
[root@example00 zabbix-mysql]# mysql -u root -p zabbix < data.sql
注意:
zabbix-server的数据库导入顺序不能乱,3个都要导入
zabbix-proxy的数据库导入,只需要schema就可以
2.5 配置zabbix_server.conf
[root@example00 zabbix-mysql]# cd /etc/zabbix
[root@example00 zabbix]# ls
alertscripts externalscripts web zabbix_agent.conf zabbix_agentd.conf zabbix_proxy.conf zabbix_server.conf
[root@example00 zabbix]# vim zabbix_server.conf
78 DBHost=192.168.1.190 # 服务器的公网IP地址
113 DBPassword=zabbix # zabbix-server的mysql数据库密码
启动zabbix-server服务
[root@example00 zabbix]# /etc/init.d/zabbix-server start
Starting Zabbix server: [ OK ]
启动apache的httpd服务
[root@example00 zabbix]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
2.6 浏览器访问http://x.x.x.x/zabbix,开始配置zabbix
如果安装检查时提示php参数不对,需要修改php的配置文件
[root@example00 zabbix]# find / -name php.ini
/etc/php.ini
[root@example00 zabbix]# vim /etc/php.ini
440 max_execution_time = 300
449 max_input_time = 300
729 post_max_size = 16M
946 date.timezone = PRC
重启apache服务,使得配置生效
[root@example00 zabbix]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
刷新浏览器页面后,PHP必要的检查项目就都通过了
zabbix web的默认登录账号/密码为:admin/zabbix
源码编译安装方法
参考链接:http://blog.chinaunix.net/uid-25266990-id-3380929.html
3. 部署Zabbix Agent
客户端安装agent
[root@example01 ~]# yum -y install zabbix22-agent
客户端配置zabbix_agentd.conf文件
[root@example01 ~]# vim /etc/zabbix/zabbix_agentd.conf
81 Server=192.168.1.190 # zabbix server的地址
122 ServerActive=192.168.1.190 # zabbix server的地址
重启zabbix-agent服务
[root@example01 ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent: [ OK ]
浏览器上刷新Zabbix Web UI的监控页面,就可以查看到通过监控数据绘画的监控图
好了,整个安装过程就到此为止,若你在安装的过程中有报错没解决成功,可以看下我后面发布的几篇关于排错的文章。若你觉得松哥写的文章对你有用,谢谢土豪“喜欢”和“打赏”,我将继续坚持分享。