zabbix介绍
zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的 企业级的开源解决方案 ( 基于 GPL V2 )
zabbix由 2 部分构成,zabbix server与可选组件zabbix agent
- 服务端 zabbix server
- 客户端 zabbix agent 负责收集数据发送到服务端
工作架构

工作原理
- PROXY 1.收集下面不同的(客户端)agent端提交上来的数据,进行汇总,汇总后交给server
- zabbix-server 2.得到PROXY提交的数据,将数据插入database
- zabbix-database 3.数据库
- zabbix-web-GUI 4.图形化用户接口 lamp (php从数据库得到数据,分析后展示在图形化界面)
注意:目前建议使用3版本(2版本功能相对较差,有bug)
进程构成:
- zabbix_agentd:客户端守护进程,此进程手机客户端数据,如cpu负载,内存,硬盘的使用情况
- zabbix_get :zabbix 工具,单独使用的命令,常用于排错(例如安装完后,数据不到服务端,可以用get来排错)
- zabbix_sender :zabbix工具,用于发送数据给 server 或者 proxy,在脚本完成之后使用sender 主动将数据提交(向数据库提交数据)
- zabbix_server :zabbix服务端守护进程,所有的数据都是被主动提交或主动提交到zabbix_server端 (只负责数据处理)
- zabbix_proxy :zabbix的代理守护进程,功能类似server,唯一不同的是他只是一个中转站,他需要把收集到的数据提交/被提交到server里
- zabbix_java_gateway: zabbix2.0之后引入的一个功能,顾名思义:java网关类似于,agent,他只适用于java方面,它只能主动去获取数据,它的数据最终会给到server或proxy
性能:
1 2 3 |
zabbix 是轮巡方式收集,还是比较节省资源,并不是所有节点一次性收集 目前官方给出最大支持30000台 采用分布式后可以支持的节点更多 |
1.构建基础环境(centos7)
1.关闭selinux
1 2 3 |
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config |
2.关闭防火墙
1 2 |
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 |
3.开启网卡(设置ip)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static #修改为静态 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=1d7031cc-b015-4c2b-8c44-4af1f7d9e6f7 DEVICE=ens33 ONBOOT=yes #开机自启 IPADDR=192.168.66.20 #设置ip NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.66.2 #默认网关 DNS1=8.8.8.8 DNS2=114.114.114.114 |
4.部署yum源
1 2 3 4 5 6 7 8 9 10 11 12 |
阿里云的 一个是Centos-6的 一个是Centos-7 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 网易的。 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo wget http://mirrors.163.com/.help/CentOS7-Base-163.repo |
1 2 |
yum clean all yum makecache |
5.安装常用软件
1 |
yum install -y lrzsz gcc vim gcc-c++ |
6.安装LAMP环境
1 2 3 4 5 6 7 |
#centos6默认mysql centos7默认mariadb,原因mysql被oracle收购后,红帽防止他以后对mysql进行某种干预 yum install -y mariadb mariadb-server httpd php php-mysql systemctl enable httpd systemctl restart httpd systemctl enable mariadb systemctl restart mariadb |
7.初始化数据库mariadb(mysql会自动初始化,mariadb不会)
1 |
mysql_secure_installation |


1 2 |
#测试登录mariaDB mysql -uroot -p |
8.安装zabbix程序
1 2 3 4 5 |
#官方下载地址 https://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/ rpm -ivh https://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent |
9.初始化数据库
1 2 3 4 5 |
mysql -uroot -p #创建数据库 CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; #创建用户和密码并且赋值数据库权限 grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix' |
1 2 3 4 5 6 7 8 |
设置完成后我们进入到下面目录中 cd /usr/share/doc/zabbix-server-mysql-3.2.1 会发现有个叫create.sql.gz的sql脚本模板模板文件 zcat create.sql.gz | mysql -uroot -p5950996 zabbix 导入后登陆mysql查看 mysql -uroot -p use zabbix; show tables; |
10.启动zabbix服务
1 2 3 4 5 |
vim /etc/zabbix/zabbix_server.conf 查找 DBHost=本机ip/localhost 查找 DBName=zabbix 查找 DBUser=zabbix 查找 DBPassword=zabbix |

保存退出,下来开启zabbix服务,并设置开机自启
1 2 |
systemctl start zabbix-server systemctl enable zabbix-server |

11.编辑zabbix前端php配置
1 |
vim /etc/httpd/conf.d/zabbix.conf |
打开zabbix.conf文件只修改一个地方,时区
1 |
php_value date.timezone Asia/Shanghai |

修改完apache配置文件夹,当然需要重启一下apache
1 |
systemctl restart httpd |
12.时间同步
因为我们需要使时间同步,所以需要安装时间同步软件包
1 |
yum -y install ntpdate |
1 2 3 4 5 6 7 |
nptdate cn.pool.ntp.org #这里需要构建一个时间同步服务器,所有服务器都指向这台服务器,保持大家时间一致 #这里我先指定到我当前机器,我暂时没有时间服务器 date -s 16:12:30 然后重启apche服务生效 systemctl restart httpd |
13.web安装zabbix
接下来访问web,开始安装zabbix
1 |
http://192.168.66.20/zabbix/ |


安装完成后登陆

默认账户:Admin 密码:zabbix

然后我们修改成中文模式。
1 |
Administration->Users->admin->Language->chinese |

14.然后开始着手准备安装客户端 (当然service本机也要被检测 )
1 |
vim /etc/zabbix/zabbix_agentd.conf |
1 2 3 4 5 6 7 8 9 10 11 12 |
修改: #服务器端地址 Server=服务器端地址 192.168.66.20 #修改默认监听端口(你也可以保持默认) ListenPort=xxxx #指定SeverActive ServerActive=同样是指向服务器端ip地址 #指定Hostname,你可以写个本机地址,也可以是解析到本机的域名 Hostname=本机ip/或者是解析到本机的域名 保存 退出 systemctl start zabbix-agent systemctl enable zabbix-agent |


1 2 |
#查看监听 netstat -anpt | grep 10050 |
15.接下来去web端界面配置监听客户端机器(可以一台可以多台,自己玩)
1 2 3 4 5 6 |
点击导航栏>配置->主机->创建主机 1.主机名称 自己定义(zabbix主服务器) 主机名称必须是一个英文字体 2.可见名称:zabbix服务器 #这里的可见名称就是在监控页面上给我们显示的名称 3.群组:将zabbix servers加入进来(这里的群组也可以自己在下面创建,只是分组没什么其他含义) 5.agent代理程序的接口:ip:也就是我们主机ip地址,端口是10050 |

16.然后为这台主机配置模板(就是你要监控哪些数据,你需要一个模板)

1 2 3 4 5 6 |
点击选择你要监听的服务 例如:apache服务啊 ping 服务啊 os linux 选择之后点添加,一定要点添加 |


1 |
主机资产记录:资产清单,如果你有几千台服务器,你监控的这台服务器是干嘛的,你需要详细记录,否则是记不住的(一般公司会有专人记录),所以就需要资产清单,你的服务器就是你的资产,清单列明他们都做哪些用处. |

1 |
宏:是设置一些变量的,给当前监控主机使用的。可以理解为环境变量 |
好添加完后,点更新

面板状态:
1 2 3 4 5 6 |
应用集:相当于在这台服务器当中我设置了很多的监控项目,有cpu,有内存,有磁盘。这些都要归到一个组里 归为一个应用集合,我可以继续添加更多监控项目,但都属于这个应用集。 触发器:如果cpu到100%的时候,要怎么办 图形:将监控的数据,以图表的形式展现出来 自动发现:自动发现主机规则,按这个规则发现主机后,自动加入到监控集中来 web检测: 模拟一个用户通过浏览器访问服务器,模拟客户端访问 可用性:哪些组件可用 |
然后我们返回到后台主界面,发现已经有一台机器在监控中了

点击导航栏->监测中->图形(依次选择群组,主机,图形)

1 |
17.导入中文字体,补全文字显示

从图中可以看到有很多小框,这不是乱码或者错误,是由于字符集丢失,虽然zabbix对中文支持很友好,但是他的字库里的字体是不全的。所以我们要替换他的字库为我们自己的。从自己windows电脑找一份替换掉他原来的就行。
操作如下:
<1>.win+R 输入fonts 回车打开windos字体库

我们就用宋体(找到宋体 simsun.ttc)
<2>.我们将字体拷贝到zabbix 的web前端程序目录下的字体文件夹中
1 2 3 4 5 6 7 8 |
rpm安装zabbix前端web目录在 /usr/share/zabbix/ 下 /usr/share/zabbix/fonts/ 下 二进制安装web程序目录下在根目录下的 /assets/fonts 下 有可能因为版本影响,目录发送改变,直接搜索web目录即可搜到 |

1 2 3 4 |
根据自己版本不同,可能回事tty 也可能会是 ttf格式 mv simsun.ttc simsun.tty or mv simsun.ttc simsun.ttf chmod a+x simsun.ttc |
<3>.然后更改一下zabbix的默认字体
1 2 3 4 |
vim /usr/share/zabbix/include/defines.inc.php 搜索font 修改默认字体为你的新字体 |

然后你再去看web端,缺省字体就有了

zabbix rpm安装 web目录在 /usr/share/zabbix
- 本文固定链接: https://www.yoyoask.com/?p=2579
- 转载请注明: shooter 于 SHOOTER 发表