当前位置 : 主页 > 操作系统 > centos >

Zabbix 6 系列学习 04:容器方式安装

来源:互联网 收集:自由互联 发布时间:2023-09-06
本文会以两种环境介绍此安装方式,一种是基于 Docker 的方式,第二种是基于 Podman 的方式。 Docker 本文环境 系统:Ubuntu 22.04 容器:Docker 安装 Docker sudo apt install docker docker.io -y Ubuntu 安装

本文会以两种环境介绍此安装方式,一种是基于 Docker 的方式,第二种是基于 Podman 的方式。

Docker

本文环境

  • 系统:Ubuntu 22.04
  • 容器:Docker

安装 Docker

sudo apt install docker docker.io -y

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习

Ubuntu 安装完成后自动启动服务,无需再次启动,如果存在服务异常可以使用下面命令启动

systemctl start docker

创建容器子网

创建一个桥接的网络子网

sudo docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

Zabbix 6 系列学习 04:容器方式安装_docker_02

启动 Mysql 容器

sudo 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 \
--restart unless-stopped \
-d mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_03

启动 Zabbix Server 容器

sudo 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-6.0-latest


Zabbix 6 系列学习 04:容器方式安装_docker_04


启动 Zabbix 前端容器

sudo 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-6.0-latest

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_05

查看各容器状态

仅关注状态都是 UP 即可

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_06

访问前端

访问服务器的 IP 地址即可,用户名密码为 Admin/zabbix

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_07

效果图

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_08

问题

由于没有安装 Zabbix Agent ,导致没有监控到任何数据,那么是不是应该装一个 agent 的容器呢?其实不是,容器的 agent 只监控容器本身,而无法体现出宿主机的详细状态,所以需要在服务器原生安装一个 Agent

安装 Agent

1.下载 Zabbix 仓库文件

sudo wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bubuntu22.04_all.deb2

2.安装 Zabbix 仓库文件

sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb

3.更新仓库文件

sudo apt update -y

4.安装 Zabbix Agent

sudo apt install zabbix-agent -y

5.查看容器 IP

需要切换 root 用户,不切换会提示权限不足问题。

sudo -i
docker inspect -f '{{.Name}} =>{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

Zabbix 6 系列学习 04:容器方式安装_docker_09

6.修改 Zabbix Agent 配置文件

可以看到是 Zabbix Server 的 IP 是172.20.240.2,那么需要修改 Zabbix agent 的配置文件。

vim /etc/zabbix/zabbix_agentd.conf

需要修改两个地方,将 Server 和 ServerActive 的 127.0.0.1 改成 Zabbix Server 容器的 IP

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_10

Zabbix 6 系列学习 04:容器方式安装_docker_11

7.重启服务

systemctl restart zabbix-agent

8.前端修改

路径为 Configuration(配置)-》Hosts(主机),点击 Zabbix Server,弹出的界面找到 Agent 填写 IP 处,改为服务器的 IP 地址

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_12

9.效果

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_13

图标变绿色了

Zabbix 6 系列学习 04:容器方式安装_docker_14

最新数据

Podman 方式

Podman 是 RHEL 提供的一种开源的容器编排工具,类似 K8S,目前类 CentOS 自带(8版本后放弃了 Docker ),具体可以参考 Podman 的一些资料。

本文环境

  • CentOS 8 Stream
  • Podman 2.4

安装 Podman

dnf -y install podman

启动服务

systemctl start podman && systemctl enable podman

Podman 配置

1.创建 名称为 Zabbix 的 POD,并暴露 Server 和 WEB 的的端口

podman pod create --name zabbix -p 80:8080 -p 10051:10051

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_15

2.创建 mysql 的容器

需要创建./mysql/ 目录

mkdir /data && cd /data
mkdir ./mysql

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_16

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 mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_17

选择docker.io的镜像即可

3.创建 Zabbix Server 的容器

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 zabbix/zabbix-server-mysql:alpine-6.0-latest

Zabbix 6 系列学习 04:容器方式安装_docker_18

4.创建 Zabbix 前端的容器

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 zabbix/zabbix-web-apache-mysql:alpine-6.0-latest

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_19

5.创建 Zabbix Agent 容器

podman run --name zabbix-agent \
-e ZBX_SERVER_HOST="127.0.0.1,localhost" \
--restart=always \
--pod=zabbix \
-d zabbix/zabbix-agent:alpine-6.0-latest

Zabbix 6 系列学习 04:容器方式安装_docker_20

6.查看容器状态

都为 UP 即为正常。

Zabbix 6 系列学习 04:容器方式安装_docker_21

效果

和 docker 的方式基本一样,用户名密码一样 Admin/zabbix

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_22

首页

Zabbix 6 系列学习 04:容器方式安装_Zabbix 学习_23

主机页

Zabbix 6 系列学习 04:容器方式安装_docker_24

最新数据

Zabbix 6 系列学习 04:容器方式安装_docker_25

最后

容器部分基本都结束了,除了没有在 K8S 里运行,后续在附加篇幅会提到,安装起来相对简单,但是封装的镜像是个黑盒,对于新人而言,修改配置和优化配置难度较大,适合体验,感谢大家关注我的文章,如果觉得写的对您有帮助,希望帮忙关注与点赞,有任何问题可以留言或者私信我,我会及时回复大家,其次如果存在问题,也可以及时提出指正。


【文章原创作者:cc防御 http://www.558idc.com/gfip.html提供,感恩】
上一篇:Zabbix 6 系列学习 05:Zabbix Appliance
下一篇:没有了
网友评论