### 一、rpm包安装

1. 需要在另一台有外网的电脑上下载相关的rpm包

```

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

yum clean all

```

修改vim /etc/yum.repos.d/zabbix.repo

修改参数:enabled=1 保存退出

![image-1657788515947](https://zmzycc.top/upload/2022/07/image-1657788515947.png)

下载并保存Zabbix相应的rpm包

```

yum install --downloadonly --downloaddir=/zabbix/ zabbix-server-mysql zabbix-agent

yum install --downloadonly --downloaddir=/zabbix/ centos-release-scl

yum install centos-release-scl

yum install --downloadonly --downloaddir=/zabbix/ zabbix-web-mysql-scl zabbix-nginx-conf-scl

```

不是直接安装,而是通过参数“--downloadonly”下载并保存 Zabbix 后端及其依赖的 rpm 包。

1.首先关闭防火墙,以及修改SELINUX的值为disabled

![image-1657788948034](https://zmzycc.top/upload/2022/07/image-1657788948034.png)

零时关闭

```

setenforce 0 #不用关机重启

```

解压上传zabbix压缩文件,并执行以下即可

数据库中

```

# mysql -uroot -p

password

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> create user zabbix@localhost identified by 'password';

mysql> grant all privileges on zabbix.* to zabbix@localhost;

mysql> quit;

```

导入初始架构和数据,系统将提示您输入新创建的密码。

```

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

```

为Zabbix server配置数据库

编辑配置文件 /etc/zabbix/zabbix_server.conf

```

DBPassword=password(密码是你上面给zabbix用户设置的密码)

```

为Zabbix前端配置PHP

编辑配置文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf,并取消注释

```

# listen 80;

# server_name example.com;

```

编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf加一个nginx,如下所示

```

listen.acl_users = apache,nginx

```

修改时区

```

php_value[date.timezone] = Asia/Shanghai

```

启动Zabbix server和agent进程

```

systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

```

启动Zabbix server和agent进程,并为它们设置开机自启:

```

systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

```

完成!

### 二、源码编译安装

1. 安装编译所需的依赖

```

yum -y install gcc gcc-c++ curl curl-devel net-snmp net-snmp-devel perl-DBI libxml2-devel libevent-devel pcre mysql-devel

```

2. 对于所有 Zabbix 守护进程,需要一个非特权用户。 如果从非特权用户帐户启动 Zabbix 守护程序,它将以该用户身份运行。

```

adduser -s /sbin/nologin zabbix

```

3. 下载源码包

```

wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.32.tar.gz

tar -zxvf zabbix-5.0.32.tar.gz

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

```

mysql编译安装--with-mysql=/usr/local/mysql/bin/mysql_config

yum安装的--with-mysql即可

4. 完成预编译后,zabbix不需要进行预编译,直接安装即可。因此,执行命令:

```

make install

chown -R zabbix:zabbix /usr/local/zabbix/

```

5. 接下来,我们导入zabbix的数据库。

首先,我们要创建zabbix的数据库,在创建zabbix数据库时,要特别注意,zabbix对数据库的字符比较严格,进入mysql数据库中,执行命令:

```

create database zabbix character set utf8 collate utf8_bin;

grant all privileges on zabbix.* to zabbix@localhost identified by 'zhangyou1.';

flush privileges;

```

6. 下面,我们进行导入zabbix的数据库数据,zabbix的数据库文件在源码包下database目录中,在该目录下有很多子目录,用于支持各种不同的数据库,在这里,我们选择MySQL数据库,进入该子目录下,发现里面有三个.sql文件,分别是schema.sql,images.sql以及data.sql,接下来,我们分别将这三个数据库文件进行导入,执行命令:

```

/home/opt/zabbix-5.0.32/database/mysql

mysql -uzabbix -pzhangyou1. zabbix < /home/opt/zabbix-5.0.32/database/mysql/schema.sql

mysql -uzabbix -pzhangyou1. zabbix < /home/opt/zabbix-5.0.32/database/mysql/images.sql

mysql -uzabbix -pzhangyou1. zabbix < /home/opt/zabbix-5.0.32/database/mysql/data.sql

```

7. 修改配置文件,填写数据库密码

vim /usr/local/zabbix/etc/zabbix_server.conf

```

LogFile=/tmp/zabbix_server.log

DBHost=127.0.0.1

DBName=zabbix

DBUser=zabbix

DBPassword=zhangyou1.

```

8. zabbix的ui界面在/home/opt/zabbix-5.0.32/ui/在这个路径下

9. nginx的配置文件如下即可

![image-1678888622206](https://zmzycc.top/upload/2023/03/image-1678888622206.png)

10. 修改php的配置文件

11. vim /etc/opt/remi/php74/php.ini

```

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

date.timezone = Asia/Shanghai

```

12. 重启php和nginx

```

systemctl restart php

systemctl restart nginx

```

13. vim /etc/systemd/system/zabbix-server.service

```

[Unit]

Description=Zabbix Server

After=syslog.target network.target network-online.target

Wants=network.target network-online.target

[Service]

Type=simple

User=root

ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

RemainAfterExit=yes

PIDFile=/var/run/zabbix/zabbix_server.pid

[Install]

WantedBy=multi-user.target

```

14. systemctl start zabbix-server

报错

![image-1678890239577](https://zmzycc.top/upload/2023/03/image-1678890239577.png)

解决

find / -name libmysqlclient.so.20

![image-1678890350543](https://zmzycc.top/upload/2023/03/image-1678890350543.png)

ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64

再次重启即可,浏览器访问

![image-1678891163654](https://zmzycc.top/upload/2023/03/image-1678891163654.png)

![image-1678891360988](https://zmzycc.top/upload/2023/03/image-1678891360988.png)

接下来

![image-1678891654854](https://zmzycc.top/upload/2023/03/image-1678891654854.png)

下载下来再,再上传到它指定的目录即可

![image-1678892472426](https://zmzycc.top/upload/2023/03/image-1678892472426.png)

接下来启动客户端

15. vim /etc/systemd/system/zabbix-agent.service

```

[Unit]

Description=Zabbix Agent

After=syslog.target network.target network-online.target

Wants=network.target network-online.target

[Service]

Type=simple

User=root

ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

```

16. 重启

```

systemctl daemon-reload

systemctl start zabbix-agent

```

![image-1678892640527](https://zmzycc.top/upload/2023/03/image-1678892640527.png)

成功!

图形乱码

![image-1678952172398](https://zmzycc.top/upload/2023/03/image-1678952172398.png)

第一种方法:替换字库文件

```

#cd /usr/share/zabbix/assets 切换到zabbix安装目录assets/fonts下,具体安装目录可能不一致,可以find一下

wget https://www.xxshell.com/download/sh/zabbix/ttf/msyh.ttf #下载字库文件

mv DejaVuSans.ttf DejaVuSans.ttf_backup #备份默认字库文件

cp msyh.ttf DejaVuSans.ttf #替换字库文件

#替换完成刷新zabbix页面

```

第二种方法:修改配置文件指定字库文件

```

cd /usr/share/zabbix/assets/fonts #切换到zabbix安装目录assets/fonts下,具体安装目录可能不一致,可以find一下

wget https://www.xxshell.com/download/sh/zabbix/ttf/msyh.ttf #下载字库文件

vim /usr/share/zabbix/include/defines.inc.php #替换文件内容

define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name

define('ZBX_FONT_NAME', 'DejaVuSans');

#将文件中的“DejaVuSans”替换为字体文件名称(不包含扩展名)具体如下:

define('ZBX_GRAPH_FONT_NAME', 'msyh'); // font file name

define('ZBX_FONT_NAME', 'msyh');

#替换完成刷新zabbix页面

```

忘记了登录密码

生成一个md5类型的新密码

```

echo -n 123456 | openssl md5

[root@VM-4-12-centos ~]# echo -n 123456 | openssl md5

(stdin)= e10adc3949ba59abbe56e057f20f883e

```

登录数据库

```

mysql -uroot -p

use zabbix;

select userid,alias,surname,name,passwd from users;

update users set passwd='e10adc3949ba59abbe56e057f20f883e' where userid='1';

```