zabbix5.0安装
### 一、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 保存退出

下载并保存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

零时关闭
```
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的配置文件如下即可

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
报错

解决
find / -name libmysqlclient.so.20

ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64
再次重启即可,浏览器访问


接下来

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

接下来启动客户端
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
```

成功!
图形乱码

第一种方法:替换字库文件
```
#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';
```