网站首页 > 技术文章 正文
本文会以两种环境介绍此安装方式,一种是基于 Docker 的方式,第二种是基于 Podman 的方式。
Docker
本文环境
- 系统:Ubuntu 22.04
- 容器:Docker
安装 Docker
sudo apt install docker docker.io -y
Ubuntu 安装完成后自动启动服务,无需再次启动,如果存在服务异常可以使用下面命令启动
systemctl start docker
创建容器子网
创建一个桥接的网络子网
sudo docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
启动 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 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 前端容器
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
查看各容器状态
仅关注状态都是 UP 即可
访问前端
访问服务器的 IP 地址即可,用户名密码为 Admin/zabbix
效果图
问题
由于没有安装 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)
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
7.重启服务
systemctl restart zabbix-agent
8.前端修改
路径为 Configuration(配置)-》Hosts(主机),点击 Zabbix Server,弹出的界面找到 Agent 填写 IP 处,改为服务器的 IP 地址
9.效果
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
2.创建 mysql 的容器
需要创建./mysql/ 目录
mkdir /data && cd /data
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 mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
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
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
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
6.查看容器状态
都为 UP 即为正常。
效果
和 docker 的方式基本一样,用户名密码一样 Admin/zabbix
首页
主机页
最新数据
最后
容器部分基本都结束了,除了没有在 K8S 里运行,后续在附加篇幅会提到,安装起来相对简单,但是封装的镜像是个黑盒,对于新人而言,修改配置和优化配置难度较大,适合体验,感谢大家关注我的文章,如果觉得写的对您有帮助,希望帮忙关注与点赞,有任何问题可以留言或者私信我,我会及时回复大家,其次如果存在问题,也可以及时提出指正。
- 上一篇: 手把手教你创建容器服务Kubernetes集群
- 下一篇: 容器安全-Copa 容器安全厂商排名
猜你喜欢
- 2024-10-08 容器化Web应用:从部署到扩展 doctor容器化部署
- 2024-10-08 容器化最佳实践:构建高效开发流程
- 2024-10-08 云时代必修课-云原生CI/CD(持续集成与交付)全流程实战(完结)
- 2024-10-08 Kubernetes vs.Docker:了解容器和编排
- 2024-10-08 docker之容器编排工具-Mesos集群环境搭建
- 2024-10-08 x-cmd pkg | ctop - 针对容器的类 top 命令
- 2024-10-08 起源:Docker容器技术 容器开源
- 2024-10-08 Docker容器集群快速编排工具Compose应用实践
- 2024-10-08 HashiCorp Nomad Enterprise 1.7.6(x64)编排容器工作负载批处理
- 2024-10-08 Docker和Docker-compose docker和docker-compose区别
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)