如果觉得 Packages 方式安装比较复杂,可以尝试 Docker 版本的安装方式,相比 Docker 方式其实还有更简单的,就是 Appliance 方式,这个方式的原理其实就是下载一个集成 Zabbix 的镜像,大家可以自行尝试。
如果您的环境为自己装的系统,需要去掉SELINUX和防火墙的因素干扰,由于为测试环境,所以做如下处理(如果为生产环境,谨慎关闭)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld && systemctl disable firewalld
yum -y install docker
systemctl start docker && systemctl enable docker
网段需要自行规划
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--network=zabbix-net \
-d mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-trunk
下面为 tags 字段,不同 tag 对应不同的的版本
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-trunk
这里会出现 Zabbix agent未运行,由于采用的是 docker 环境,如果单启动一个 agent 容器仅仅是监控容器,所以需要对宿主机进行安装 agent。
cat <<EOF > /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.5/rhel/7/\$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
EOF
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
yum -y install zabbix-agent2
记住 Zabbix Server 容器 IP 的地址。
docker inspect b9d115428089 | grep IPAddress
vim /etc/zabbix/zabbix_agentd2.conf
grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
(通过该命令查看有效配置)
systemctl start zabbix-agent2 && systemctl enable zabbix-agent2
由于前端的 Zabbix server 的配置里为 127.0.0.1,而环境为Docker,所以默认会报如下的错,此时需要修改为主机的 IP 地址
通过 ipconfig 查找本机IP,并将前端里的 127.0.0.1 修改为主机地址
如果您的环境为自己装的系统,需要去掉SELINUX和防火墙的因素干扰,由于为测试环境,所以做如下处理(如果为生产环境,谨慎关闭)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld && systemctl disable firewalld
CentOS 8 默认去除掉了 Docker,取而代之的为podman,有兴趣的朋友可以了解下。
dnf -y install docker
systectl start podman && systemctl enable podman
podman pod create --name zabbix -p 80:8080 -p 10051:10051
podman run --name zabbix-agent \
-e ZBX_SERVER_HOST="127.0.0.1,localhost" \
--restart=always \
--pod=zabbix \
-d docker.io/zabbix/zabbix-agent:alpine-trunk
创建 mysql 目录,这里是在当前目录下创建
mkdir mysql
podman run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
-v ./mysql/:/var/lib/mysql/:Z \
--restart=always \
--pod=zabbix \
-d docker.io/library/mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
podman run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--restart=always \
--pod=zabbix \
-d docker.io/zabbix/zabbix-server-mysql
podman run --name zabbix-web-mysql -t \
-e ZBX_SERVER_HOST="127.0.0.1" \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--restart=always \
--pod=zabbix \
-d docker.io/zabbix/zabbix-web-nginx-mysql
看到这里大家会发现 CentOS 8 相比 7 少了一个本地 agent 安装的步骤,大家可以自行思考下,为什么会是这个情况,另外呢官方提供了 docker-compose 方式,但实际来看要求比较高,需要部分修改,所以就不写出来了,同时官方也提供 K8S 的安装方式,大家可以自行尝试.