一、主机规划¶
1.1 推荐配置¶
Zabbix6.0官方配置要求: https://www.zabbix.com/documentation/6.0/zh/manual/installation/requirements
<colgroup> <col style="width: 19%" /> <col style="width: 19%" /> <col style="width: 19%" /> <col style="width: 20%" /> <col style="width: 20%" /> </colgroup>| 规模 | 平台 | CPU/内存 | 数据库 | 受监控的主机数量 |
|---|---|---|---|---|
| 小型 | CentOS | Virtual Appliance |
MySQL InnoDB | 100 |
| 中型 | CentOS | 2 CPU cores/2GB | MySQL InnoDB | 500 |
| 大型 | RedHat Enterprise Linux |
4 CPU cores/8GB RAID10 | RAID10 MySQL InnoDB 或 PostgreSQL | >1000 |
| 极大型 | RedHat Enterprise Linux |
8 CPU cores/16GB | Fast RAID10 MySQL InnoDB 或 PostgreSQL |
>10000 |
1.2 容量估算¶
磁盘容量计算
<colgroup> <col style="width: 50%" /> <col style="width: 50%" /> </colgroup>| 参数 | 所需磁盘空间的计算公式 (单位:字节) |
|---|---|
| Zabbix 配置文件 | 固定大小。通常为 10MB 或更少。 |
| History (历史数据) | days (items/refresh rate) 24 3600 bytes items:监控项数量。 days:保留历史数据的天数。 refresh rate:监控项的更新间隔。 bytes:保留单个值所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节。 |
| Trends (趋势数据) | days (items/3600) 24 3600 bytes items:监控项数量。 days:保留历史数据的天数。 bytes:保留单个趋 势数据所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节。 |
| Events (事件数据) | days events 24 3600 bytes events:每秒产生的事件数量。假设最糟糕的情况下,每秒产生 1 个事件。 days:保留历史数据的天数。 bytes:保留单个趋势数据所需的字节数,取决于数据库引擎,通常为 ~170 字节。 |
1.3 主机规划¶
| 角色 | 主机名 | eth0/eth1 | 配置 |
|---|---|---|---|
| Zabbix服务端 | zabbix-server01 | 192.168.1.40/172.16.1.40 | 1C1G(实际推荐1C2G) |
| Zabbix客户端 | web01 | 192.168.1.41/172.16.1.41 | 1C1G |
| Zabbix客户端 | db01 | 192.168.1.42/172.16.1.42 | 1C1G |
| Zabbix客户端 | nfs01 | 192.168.1.43/172.16.1.43 | |
| 其他综合架构部分的主机都是客户端 |
二、部署ngx+php环境并测试¶
1、添加ngx的yum源
[root@zabbix-server01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
2、查看ngx版本
| [root@zabbix-server01 ~]# yum list nginx --showduplicates | sort -r |
|---|

3、安装版本为1.20.1的ngx
| [root@zabbix-server01 ~]# yum install nginx-1.20.1-1.el7.ngx -y |
|---|
4、配置ngx
[root@zabbix-server01 ~]# vim /etc/nginx/conf.d/zbx.local.cn.conf
server {
listen 80;
server_name zbx.local.cn;
root /app/code/zbx;
location / {
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
5、配置php的yum源
[root@zabbix-client02 conf.d]# cd /etc/yum.repos.d/
[root@zabbix-client02 yum.repos.d]# vim php.repo
[webtatic-php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64
enabled = 1
gpgcheck = 0
6、安装相关依赖
| [root@zabbix-client02 yum.repos.d]# yum install -y php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd |
|---|
检查安装结果
[root@zabbix-server01 ~]# rpm -qa |egrep 'nginx|php'
php72w-cli-7.2.34-1.w7.x86_64
php72w-process-7.2.34-1.w7.x86_64
php72w-gd-7.2.34-1.w7.x86_64
php72w-pecl-mongodb-1.7.4-1.w7.x86_64
php72w-mbstring-7.2.34-1.w7.x86_64
php72w-ldap-7.2.34-1.w7.x86_64
nginx-1.20.1-1.el7.ngx.x86_64
php72w-xml-7.2.34-1.w7.x86_64
php72w-pear-1.10.12-1.w7.noarch
php72w-pdo-7.2.34-1.w7.x86_64
php72w-devel-7.2.34-1.w7.x86_64
php72w-mysqlnd-7.2.34-1.w7.x86_64
php72w-pecl-memcached-3.1.5-1.w7.x86_64
php72w-fpm-7.2.34-1.w7.x86_64
php72w-embedded-7.2.34-1.w7.x86_64
php72w-opcache-7.2.34-1.w7.x86_64
php72w-bcmath-7.2.34-1.w7.x86_64
php72w-common-7.2.34-1.w7.x86_64
php72w-pecl-igbinary-3.1.2-1.w7.x86_64
php72w-pecl-redis-3.1.6-1.w7.x86_64
mod_php72w-7.2.34-1.w7.x86_64
7、php配置
替换用户名
| [root@zabbix-server01 ~]# sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf |
|---|
检查结果
[root@zabbix-server01 ~]# egrep '^(user|group)' /etc/php-fpm.d/www.conf
user = nginx
group = nginx
修改配置文件
[root@zabbix-server01 ~]# vim /etc/php.ini
#第368行
max_execution_time = 300
#第378行
max_input_time = 600
#第656行
post_max_size = 80M
8、创建目录创建测试文件
[root@zabbix-server01 ~]# mkdir -p /app/code/zbx/
[root@zabbix-server01 ~]# chown -R nginx.nginx /app/code/zbx/
[root@zabbix-server01 ~]# vim /app/code/zbx/info.php
<?php
phpinfo();
?>
9、启动服务nginx,php-fpm
[root@zabbix-server01 ~]# systemctl enable --now nginx
[root@zabbix-server01 ~]# systemctl enable --now php-fpm
10、测试访问
添加host解析(C:\Windows\System32\drivers\etc\hosts)
| 192.168.1.40 zbx.local.cn |
|---|
打开浏览器输入http://zbx.local.cn/info.php进行访问

三、部署数据库¶
zabbix 6.0 不支持 mariadb 5.5(默认源中的mariadb)安装mariadb 10.5

1、配置maraidb yum源
[root@zabbix-server01 ~]# vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
2、安装并验证
[root@zabbix-server01 ~]# yum install -y mariadb-server
[root@zabbix-server01 ~]# rpm -qa |grep -i mariadb
MariaDB-common-10.5.23-1.el7.centos.x86_64
MariaDB-server-10.5.23-1.el7.centos.x86_64
MariaDB-compat-10.5.23-1.el7.centos.x86_64
MariaDB-client-10.5.23-1.el7.centos.x86_64
3、启动mariadb
| [root@zabbix-server01 ~]# systemctl enable --now mariadb |
|---|
4、mariadb配置
数据库初始化
[root@zabbix-server01 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): 回车
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
... skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
创建库,创建用户
[root@zabbix-server01 ~]# mysql
#创建数据库要指定字符集
MariaDB [(none)]> create database zabbix charset utf8 collate utf8_bin;
#创建zabbix用户(zbx,php在同一台机器上)
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
#创建zabbix用户(zbx,php不在同一台机器上)
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'l72.16.1.%' identified by 'zabbix';
5、下载zabbix6.0LTS的源码包
下载链接:https://www.zabbix.com/cn/download_sources#60LTS

6、向数据库中导入sql文件
[root@zabbix-server01 ~]# tar xf zabbix-6.0.25.tar.gz
[root@zabbix-server01 ~]# cd zabbix-6.0.25/database/mysql/
[root@zabbix-server01 mysql]# mysql zabbix <schema.sql
[root@zabbix-server01 mysql]# mysql zabbix <images.sql
[root@zabbix-server01 mysql]# mysql zabbix <data.sql
[root@zabbix-server01 mysql]# mysql zabbix <double.sql
[root@zabbix-server01 mysql]# mysql zabbix <history_pk_prepare.sql
检查结果
| [root@zabbix-server01 mysql]# mysql -e 'show tables from zabbix;' |
|---|
四、编译安装zabbix-server服务端及后续配置¶
1、准备编译安装zabbix-server
| [root@zabbix-server01 mysql]# yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel |
|---|
2、进行配置
[root@zabbix-server01 ~]# cd zabbix-6.0.25/
[root@zabbix-server01 zabbix-6.0.25]# ./configure --sysconfdir=/etc/zabbix/ --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre
3、根据提示执行make install
| [root@zabbix-server01 zabbix-6.0.25]# make install |
|---|
验证结果
[root@zabbix-server01 zabbix-6.0.25]# echo $?
0
补充:如果是6.0.14版本可能会出现以下报错信息

解决方法:执行./configure之前配置临时配置export CFLAGS="-std=gnu99",配置完成后再执行./configure和make install
4、修改zbx服务端配置文件(DB相关)
[root@zabbix-server01 zabbix-6.0.25]# zabbix_server --version
zabbix_server (Zabbix) 6.0.25
5、修改zbx服务端配置文件(DB相关)
修改第38行内容
[root@zabbix-server01 zabbix-6.0.25]# vim +38 /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
修改第123行内容
[root@zabbix-server01 zabbix-6.0.25]# vim +123 /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
结果验证
[root@zabbix-server01 zabbix-6.0.25]# egrep -vn '^$|#' /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
99:DBName=zabbix
115:DBUser=zabbix
123:DBPassword=zabbix
507:Timeout=4
593:LogSlowQueries=3000
708:StatsAllowedIP=127.0.0.1
6、启动zabbix服务端
#添加虚拟用户
[root@zabbix-server01 ~]# mkdir -p /var/log/zabbix/
[root@zabbix-server01 ~]# useradd -s /sbin/nologin -M zabbix
[root@zabbix-server01 ~]# chown -R zabbix.zabbix /var/log/zabbix/
#启动zbx服务端
[root@zabbix-server01 ~]# zabbix_server
#检查端口
[root@zabbix-server01 ~]# ss -lntup|grep 10051
#检查进程
[root@zabbix-server01 ~]# ps -ef |grep zabbix
7、实现systemctl 管理zabbix
#书写systemctl 配置文件
[root@zabbix-server01 ~]# vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target
#加载配置文件
[root@zabbix-server01 ~]# systemctl daemon-reload
#关闭手动启动的zbx server
[root@zabbix-server01 ~]# pkill zabbix_server
#检查是否关闭成功
[root@zabbix-server01 ~]# ps -ef |grep zabbix
root 14151 1762 0 19:28 pts/0 00:00:00 grep --color=auto zabbix
#启动与检查
[root@zabbix-server01 ~]# systemctl enable zabbix-server
[root@zabbix-server01 ~]# systemctl start zabbix-server
[root@zabbix-server01 ~]# systemctl status zabbix-ser
五、部署前端代码代码进行访问¶
1、复制ui相关代码到nginx根目录
| [root@zabbix-server01 ~]# cp -r zabbix-6.0.25/ui/* /app/code/zbx/ |
|---|
2、变更目录拥有者
六、访问测试¶
1、打开浏览器输入http://zbx.local.cn/访问测试,语言选择【中文】

2、页面都是【OK】后,点击【下一步】

3、输入php连接的数据库的信息(这里mysql和php在一台机器上,不用修改相关信息)

4、输入网站名字和选择时区(上海)

信息汇总

5、zbx前端配置文件

6、登录Zabbix,账号Admin,密码zabbix


7、前端的配置文件(连接数据库与主机名等信息)
[root@zabbix-server01 ~]# cd /app/code/zbx/conf/
[root@zabbix-server01 conf]# egrep 'DB|ZBX_SERVER_NAME' zabbix.conf.php
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = 'localhost';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'zabbix';
$DB['SCHEMA'] = '';
$DB['ENCRYPTION'] = false;
$DB['KEY_FILE'] = '';
$DB['CERT_FILE'] = '';
$DB['CA_FILE'] = '';
$DB['VERIFY_HOST'] = false;
$DB['CIPHER_LIST'] = '';
$DB['VAULT_URL'] = '';
$DB['VAULT_DB_PATH'] = '';
$DB['VAULT_TOKEN'] = '';
$DB['DOUBLE_IEEE754'] = true;
$ZBX_SERVER_NAME = 'Zabbix监控';
七、配置客户端¶
1、配置zbx源
[root@zabbix-server01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
[root@zabbix-server01 ~]# sed -i 's#https://repo.zabbix.com/zabbix#https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix#g' /etc/yum.repos.d/zabbix.repo
2、安装客户端
| [root@zabbix-server01 ~]# yum install -y zabbix-agent2 |
|---|
3、配置客户端
[root@zabbix-server01 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1 #服务端地址
ServerActive=127.0.0.1 #服务端地址
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf
4、启动
[root@zabbix-server01 ~]# systemctl enable zabbix-agent2.service
[root@zabbix-server01 ~]# systemctl start zabbix-agent2.service
结果验证
[root@zabbix-server01 ~]# ps -ef | grep agent2
zabbix 15965 1 0 20:52 ? 00:00:00 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root 16022 1762 0 20:53 pts/0 00:00:00 grep --color=auto agent2
[root@zabbix-server01 ~]# ss -lntup |grep agent2
tcp LISTEN 0 128 [::]:10050 [::]:* users:(("zabbix_agent2",pid=15965,fd=9))
5、查看web页面的主机数据


八、日常查看数据¶
1、查看主机

2、查看最新数据

3、查看图形
依次点击【监测】-【主机】-【图形】


九、zbx显示中文乱码¶
原因:zbx显示中文的字体有问题,导致显示中文异常。
解决:把zbx中文字体替换即可
1、打开C:\Windows\Fonts,复制微软雅黑类型的简体字到机器的/app/code/zbx/assets/fonts/上

2、替换zabbix自用的字体
[root@zabbix-server01 ~]# cp /app/code/zbx/assets/fonts/DejaVuSans.ttf{,.bak}
[root@zabbix-server01 ~]# cd /app/code/zbx/assets/fonts/
[root@zabbix-server01 fonts]# ls
DejaVuSans.ttf DejaVuSans.ttf.bak msyh.ttc
[root@zabbix-server01 fonts]# cp msyh.ttc DejaVuSans.ttf
cp:是否覆盖"DejaVuSans.ttf"? Y
3、效果展示
