安装部署
下载
打开下载页面 https://www.zabbix.com/download
选择操作系统版本,数据库版本
安装
rpm方式安装仓库
rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum方式安装zabbix
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
部署
数据库
create database zabbix default charset utf8; grant all privileges on zabbix.* to zabbix@127.0.0.1 identified by 'abcdef';
导入数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pabcdef zabbix
如果没有上面的路径下的文件的话(笔者就TM遇到了,而且无论remove再install还是怎么弄,死活都不出来~~)
打开源代码下载页面 https://www.zabbix.com/download_sources
选择正确的版本下载源代码包,解压缩源代码包,里面会有个 database 目录,下面有个 mysql 目录,再下面就是我们需要的三个文件了 schema.sql、images.sql、data.sql
依次导入到 zabbix 数据库
mysql -uzabbix -pabcdef zabbix < schema.sql mysql -uzabbix -pabcdef zabbix < images.sql mysql -uzabbix -pabcdef zabbix < data.sql
服务器配置
编辑服务器配置文件 /etc/zabbix/zabbix_server.conf
主要是数据库连接的几个参数,根据自己的情况进行修改即可
DBHost= DBName= DBUser= DBPassword= DBSocket= DBPort=
还有服务端口,我们强烈建议修改一下
ListenPort=
WebServer配置
编辑WebServer配置文件 /etc/httpd/conf.d/zabbix.conf
修改时区
php_value date.timezone Asia/Shanghai
启动服务
启动服务
systemctl restart zabbix-server zabbix-agent httpd
设置自动启动
systemctl enable zabbix-server zabbix-agent httpd
初始化
打开浏览器,输入 zabbix 网址 http://user_server_ip_or_name/zabbix/
看到如下界面表示签名的安装部署工作成功了~~

点击下一步,检查环境

点击下一步输入数据库信息

点击下一步输入服务器参数,这里不要改

点击下一步确认信息

登录
默认的登录用户名是 admin,密码是 zabbix,进入后记得修改密码哦~~

客户端部署
客户端的部署很简单,只需要操作两步即可。
安装
rpm方式安装仓库
rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum方式安装agent
yum -y install zabbix-agent
部署
也是两步
启动服务
systemctl restart zabbix-agent
设置自动启动
systemctl enable zabbix-agent
修改客户端授权IP地址
打款配置文件
vi /etc/zabbix/zabbix_agentd.conf
修改 Server=
Server=[Zabbix服务器IP地址,多个IP地址用逗号分开]
修改 Hostname=
Hostname=[Zabbix客户端IP地址,确保Zabbix服务器可以访问到的IP地址]
重启客户端
systemctl restart zabbix-agent
验证
安装工具
我们安装zabbix_get工具来验证客户端是否畅通
yum -y install zabbix-get
开始验证
语法
zabbix_get -s 192.168.1.168 -p 10050 -k "system.cpu.load[all]"
正确情况
[root@zabbix /]# zabbix_get -s 192.168.1.168 -p 10050 -k "system.cpu.load[all]" 0.690000
错误情况1:这是因为参数-s后面指定的IP错误,这个IP是客户端的对外IP地址(可以是公网IP,也可能是局域网IP,但不能是127.0.0.1)
[root@zabbix /]# zabbix_get -s 192.168.1.168 -p 10050 -k "system.cpu.load[all]" zabbix_get [694]: Get value error: cannot connect to [[192.168.1.168]:10050]: [111] Connection refused
错误情况2:这是因为在zabbix_agent上配置的Server=的IP地址不对,这个IP地址是zabbix服务器的对外IP地址
[root@zabbix /]# zabbix_get -s 192.168.1.168 -p 10050 -k "system.cpu.load[all]" zabbix_get [695]: Check access restrictions in Zabbix agent configuration
注意:当问题修复后,记得要使用验证工具验证一下,否则看到zabbix上依然是警告状态,需要等一会儿才会变正常
导入模板
导入zapache
下载
从网址下载压缩包 https://github.com/lorf/zapache 到工作电脑(非zabbix服务器)
解压缩文件 zapache-master.zip
导入
打开zabbix管理界面,进入 Configuration -> Templates,点击右上角的 import 按钮
分别导入压缩包内的两个 xml 模板文件 zapache-template.xml、zapache-template-active.xml
使用
像使用默认模板那样,在host下面的templates里add新添加的模板即可
客户端配置
开启server-status
我们开启apache的server-status模块,新版本的apache都会自带一个extra的httpd-info.conf,在httpd.conf里把它前面的 # 去掉即可,然后重启apache服务
注意:
如果你的程序用到了 rewrite 且全局进行重写的时候,会和这个server-status冲突,这时需要增加 condition 过滤,示例代码如下:
RewriteCond %{REQUEST_URI} !(server-status|server-info) [NC] ### server-status or server-info新版本的apache的httpd-info.conf的设置需要指定访问的ip和host
Require host localhost Require ip 127
配置zabbix_agent
复制压缩包内的 userparameter_zapache.conf.sample 配置文件
cp userparameter_zapache.conf.sample /etc/zabbix/zabbix_agentd.d/userparameter_zapache.conf
创建zapache脚本目录
mkdir -p /var/lib/zabbixsrv/externalscripts/
复制压缩包内的 zapache 脚本
cp zapache /var/lib/zabbixsrv/externalscripts/zapache chmod 0755 /var/lib/zabbixsrv/externalscripts/zapache
重启zaabix_agent
systemctl restart zabbix-agent
验证
我们可以通过下面的命令验证配置是否正确
/var/lib/zabbixsrv/externalscripts/zapache Uptime
新版本的zapache需要which支持,通过yum安装一下即可
yum install which
忘记密码
找回密码
如果忘记zabbix用户密码可以登录zabbix的数据库进行修改。
以mysql数据库举例:
Server version: 5.7.21 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| zabbix |
+--------------------+
5 rows in set (0.18 sec)
MySQL [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MySQL [zabbix]> select * from users;
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+-----------------+---------------+---------------+
| userid | alias | name | surname | passwd | url | autologin | autologout | lang | refresh | type | theme | attempt_failed | attempt_ip | attempt_clock | rows_per_page |
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+-----------------+---------------+---------------+
| 1 | Admin | Zabbix | Administrator | d41d8cd98f00b204e9800998ecf8427e | | 1 | 0 | en_GB | 30s | 3 | default | 0 | 114.248.153.101 | 1532052188 | 50 |
| 2 | guest | | | d41d8cd98f00b204e9800998ecf8427e | | 0 | 15m | en_GB | 30s | 1 | default | 0 | | 0 | 50 |
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+-----------------+---------------+---------------+
2 rows in set (0.00 sec)
MySQL [zabbix]> update users set passwd = md5('123456') where name = 'Zabbix';
Query OK, 1 row affected (0.44 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MySQL [zabbix]>