Centos7 安装Zabbix

Centos7 安装Zabbix

一、环境准备

设置虚拟机能正常上网

1、把虚拟机网卡设置NAT模式

2、虚拟机Ping VMnet8网关、Ping www.baidu.com

二、获取Zabbix

1、换yum源,备份原配置

1
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载阿里云镜像源

1
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3、清理缓存并测试

1
2
3
yum clean all
yum makecache
yum install wget

4、下载CentOS 7 专用的仓库包

1
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

5、安装正确的仓库包

1
rpm -ivh zabbix-release-4.0-2.el7.noarch.rpm

6、清理缓存并重新安装

1
2
yum clean all
yum install zabbix-server-mysql zabbix-web-mysql -y

若报403 Forbidden: 直接使用官方源

1
wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

下载完成后,继续执行安装步骤:

1
2
3
4
# 安装仓库包
rpm -ivh zabbix-release-4.0-2.el7.noarch.rpm
# 安装 Zabbix 组件
yum install zabbix-server-mysql zabbix-web-mysql -y

若遇到yum 自动下载 el8 版本(Error: Package: zabbix-server-mysql-4.0.50-1.el8.x86_64 (zabbix)Requires: libnetsnmp.so.35()(64bit)) :

1、移除所有错误的 el8 仓库文件

1
2
ls -la /etc/yum.repos.d/ | grep -i zabbix
#通常会看到类似 zabbix.repo的文件。用 cat命令查看其内容,确认其 baseurl是否指向 el7而不是 el8

2、重新下载并安装正确的 el7 仓库包

1
2
3
4
5
6
7
8
9
# 1. 删除现有的 Zabbix 仓库包(如果已安装)
rpm -e zabbix-release

# 2. 下载针对 CentOS 7 的 Zabbix 4.0 仓库包
# 注意:如果 wget 因证书问题失败,请使用 curl 或添加 `--no-check-certificate` 参数
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

# 3. 安装正确的仓库包
rpm -ivh zabbix-release-4.0-2.el7.noarch.rpm

3、清理 yum 缓存并重新安装

1
2
yum clean all
yum install zabbix-server-mysql zabbix-web-mysql -y

修改步骤:

1、编辑 Zabbix 仓库配置文件

1
vi /etc/yum.repos.d/zabbix.repo

2、替换成以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

3、清理 yum 缓存

1
yum clean all

4、重新安装

1
yum install zabbix-server-mysql zabbix-web-mysql -y

三、部署步骤

1、安装

1
2
3
rpm -ivh zabbix-release-4.0-2.el7.noarch.rpm

rpm -ql zabbix-release //查看一下这个包里面有哪些文件

2、安装mariadb,创建zabbix库,授权zabbix用户

1
yum install mariadb-server.x86_64

3、启动mariadb、设置开机自启、对数据库进行安全初始化::

1
2
3
systemctl start mariadb.service
systemctl enable mariadb.service
mysql_secure_installation //一路选择y

4、创建zabbix库:记得指定utf8,如下命令:后面才可以支持中文。

1
create database zabbix character set utf8 collate utf8_bin;

5、对zabbix授权,设置密码为fa@123:

1
grant all on zabbix.* to zabbix@localhost identified by 'fa@123';

导入zabbix表结构和初始数据:

导哪里的数据呢?可以查的:

1
rpm -ql zabbix-server-mysql  | grep sql

导入数据,并设置数据库用户名、密码:

1
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pfa@123 zabbix

怎么确认有没有导入成功了?使用下面命令,检查zabbix库是否导入成功:

1
mysql zabbix -e 'show tables;'

6、配置启动zabbix-server:

1
vim /etc/zabbix/zabbix_server.conf

使用/DBH,搜索,看到如下几个,如果有注释,记得取消掉:

1
2
3
4
DBHost=localhost //或写127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=along@123

启动zabbix-server,并设置开机自启

1
2
systemctl start zabbix-server
systemctl enable zabbix-server

如果zabbix-server进程没进来,报错,不能链接数据库等,可以使用如下命令:

记得关掉selinux、防火墙:

1
2
3
4
vim /etc/selinux/config 	//SELINUX=disabled
systemctl stop firewalld
setenforce 0
getenforce //状态为disabled

使用netstat -lntup查看zabbix进程(若显示未安装输入下列命令)

1
2
3
4
5
6
7
8
# 对于基于 Red Hat/CentOS/Fedora 的系统
sudo yum install -y net-tools
# 或
sudo dnf install -y net-tools

# 对于基于 Debian/Ubuntu 的系统
sudo apt update
sudo apt install -y net-tools

四、访问

浏览器输入ip/zabbix访问

若没反应

1
2
3
4
5
6
7
8
9
10
11
12
13
systemctl start httpd
systemctl enable httpd
systemctl stop firewalld
setenforce 0
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --query-port=80/tcp
firewall-cmd --reload

//排查
1.Zabbix Server (10051) 运行正常​ -> 截图已证实。
2.Web 服务 (Apache/Nginx) 是否运行?​ -> 检查 systemctl status httpd。
3.80 端口是否监听?​ -> 检查 netstat -lntup | grep :80。
4.防火墙/SELinux 是否放行?​ -> 临时关闭测试。

访问成功向导显示发现PHP存在一个时区问题,其他都是ok的,

我们到后台设置一下即可:

1
2
vim /etc/php-fpm.d/zabbix.conf 			//若无文件输入下面地址
vi /etc/httpd/conf.d/zabbix.conf

找到类似于下面这行代码(可能被注释掉了,或者被设置为其他时区,比如 Europe/Riga):

1
2
apacheconf
; php_value date.timezone Europe/Riga

修改为上海时区:将值改为

1
Asia/Shanghai

重启 Apache 服务

1
sudo systemctl restart httpd

若有遗漏,访问https://cloud.tencent.com/developer/article/2142578对比