ubuntu 24采用docker compose 部署zabbix server 4.0+zabbix proxy4.0 +zabbix agent4.0
环境:
os:ubuntu 24.04
zabbix:4.0.9
ip地址 角色
192.168.1.100 zabbix server
192.168.1.105 zabbix proxy
192.168.1.106 zabbix agent
说明:
agent端不建议使用docker,因为docker容器里监控宿主机不是那么方便.
1.设置hostname
192.168.1.100
hostnamectl set-hostname zabbix-server
192.168.1.105
hostnamectl set-hostname zabbix-proxy
192.168.1.106
hostnamectl set-hostname zabbix-agent
2.每个机器都部署docker+docker compose
参考安装连接
https://www.cnblogs.com/hxlasky/p/22238069
################################zabbix server#######################
1.准备 docker-compose.yml 文件
mkdir /opt/zabbix
vi /opt/zabbix/docker-compose.yml
version: '3.7'
services:
mysql:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/mysql:5.7.30
container_name: zabbix-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: "Root@123456"
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: "Zabbix@123"
command:
- mysqld
- --character-set-server=utf8
- --collation-server=utf8_bin
- --default-authentication-plugin=mysql_native_password
volumes:
- ./mysql_data:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
networks:
- zbx-net
healthcheck:
test: ["CMD","mysqladmin","ping","-h","127.0.0.1","-uroot","-pRoot@123456"]
interval: 10s
timeout: 5s
retries: 10
zabbix-server:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/zabbix-server-mysql:ubuntu-4.0.9
container_name: zabbix-server
restart: always
ports:
- "10051:10051"
environment:
DB_SERVER_HOST: mysql
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: "Zabbix@123"
MYSQL_ROOT_PASSWORD: "Root@123456"
ZBX_CACHESIZE: 256M
ZBX_STARTPOLLERS: 20
volumes:
- ./zabbix_server_alertscripts:/usr/lib/zabbix/alertscripts
- ./zabbix_server_externalscripts:/usr/lib/zabbix/externalscripts
- /etc/localtime:/etc/localtime:ro
depends_on:
mysql:
condition: service_healthy
networks:
- zbx-net
zabbix-web:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/zabbix-web-apache-mysql:ubuntu-4.0.9
container_name: zabbix-web
restart: always
ports:
- "8080:80"
environment:
DB_SERVER_HOST: mysql
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: "Zabbix@123"
ZBX_SERVER_HOST: zabbix-server
PHP_TZ: Asia/Shanghai
volumes:
- /etc/localtime:/etc/localtime:ro
depends_on:
- mysql
- zabbix-server
networks:
- zbx-net
networks:
zbx-net:
driver: bridge
2.创建本地持久化目录
cd /opt/zabbix
mkdir -p mysql_data zabbix_server_alertscripts zabbix_server_externalscripts
3.启动
cd /opt/zabbix
docker compose up -d
4.界面登录访问
http://192.168.1.100:8080
默认的账号密码是:Admin/zabbix
5.登录容器查看
docker exec -ti zabbix-server /bin/bash
docker exec -ti zabbix-mysql /bin/bash
docker exec -ti zabbix-web /bin/bash
6.查看日志
docker compose logs zabbix-server
docker compose logs mysql
docker compose logs zabbix-web
################################zabbix proxy#######################
192.168.1.106机器上操作
1.准备 docker-compose.yml 文件
mkdir /opt/zabbix
cd /opt/zabbix
vi /opt/zabbix/docker-compose.yml
先按 Esc 键确保处于普通模式
输入命令 :set paste 并回车
version: '3.7'
services:
proxy-mysql:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/mysql:5.7.30
container_name: zabbix-proxy-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: "ProxyRoot@123456"
MYSQL_DATABASE: zabbix_proxy
MYSQL_USER: zabbix_proxy
MYSQL_PASSWORD: "Proxy@123"
command:
- mysqld
- --character-set-server=utf8
- --collation-server=utf8_bin
- --default-authentication-plugin=mysql_native_password
volumes:
- ./proxy_mysql_data:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
networks:
- proxy-net
healthcheck:
test: ["CMD","mysqladmin","ping","-h","127.0.0.1","-uroot","-pProxyRoot@123456"]
interval: 10s
timeout: 5s
retries: 10
zabbix-proxy:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/zabbix-proxy-mysql:ubuntu-4.0.9
container_name: zabbix-proxy
restart: always
ports:
- "10051:10051"
environment:
DB_SERVER_HOST: proxy-mysql
MYSQL_DATABASE: zabbix_proxy
MYSQL_USER: zabbix_proxy
MYSQL_PASSWORD: "Proxy@123"
# ========== 修改这里为你的zabbix server真实IP ==========
ZBX_SERVER_HOST: 192.168.1.100
ZBX_PROXYMODE: 0
ZBX_HOSTNAME: "zabbix-proxy" ##zabbix proxy 主机名称
ZBX_CACHESIZE: 128M
ZBX_STARTPOLLERS: 10
volumes:
- ./proxy_alertscripts:/usr/lib/zabbix/alertscripts
- ./proxy_externalscripts:/usr/lib/zabbix/externalscripts
- /etc/localtime:/etc/localtime:ro
depends_on:
proxy-mysql:
condition: service_healthy
networks:
- proxy-net
networks:
proxy-net:
driver: bridge
2.启动
mkdir -p /opt/zabbix/proxy_mysql_data
mkdir -p /opt/zabbix/proxy_alertscripts
mkdir -p /opt/zabbix/proxy_externalscripts
cd /opt/zabbix
docker compose up -d
3.查看日志
docker compose logs proxy-mysql
docker compose logs zabbix-proxy
4.登录容器
docker exec -ti proxy-mysql /bin/bash
docker exec -ti zabbix-proxy /bin/bash
################################zabbix agent#######################
在192.168.1.106机器上操作
1.准备 docker-compose.yml文件
mkdir -p /opt/zabbix
cd /opt/zabbix
vi /opt/zabbix/docker-compose.yml
version: '3.7'
services:
zabbix-agent:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/zabbix-agent:centos-4.0.9
container_name: zabbix-agent
restart: always
privileged: true
environment:
# 修改为你的Zabbix Proxy IP地址
ZBX_SERVER_HOST: "192.168.1.105"
ZBX_SERVER_ACTIVE: "192.168.1.105:10051"
#主机名,Web后台创建主机必须完全一致(大小写敏感)
ZBX_HOSTNAME: "zabbix-agent"
ZBX_ENABLE_REMOTE_COMMANDS: "1"
ZBX_UNSAFE_USER_PARAMETERS: "1"
volumes:
# 挂载宿主机资源,用于采集磁盘、进程、CPU等
- /:/rootfs:ro
- /proc:/proc
- /sys:/sys
- /dev:/dev
- /etc/localtime:/etc/localtime:ro
networks:
- agent-net
networks:
agent-net:
driver: bridge
2.启动
root@zabbix-agent:/# cd /opt/zabbix
docker compose up -d
3.查看日志
docker compose logs zabbix-agent
4.登录容器
docker exec -ti zabbix-agent /bin/bash
5.相关文件外放到宿主机
宿主机上创建目录
mkdir /opt/zabbix/scripts
mkdir /opt/zabbix/zabbix_agentd.d
7.停掉容器
cd /opt/zabbix
docker compose down
8.修改docker-compose.yml
cd /opt/zabbix
vi docker-compose.yml
version: '3.7'
services:
zabbix-agent:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/zabbix-agent:centos-4.0.9
container_name: zabbix-agent
restart: always
ports:
- "10050:10050"
privileged: true
environment:
# 修改为你的Zabbix Proxy IP地址
ZBX_SERVER_HOST: "192.168.1.105"
ZBX_SERVER_ACTIVE: "192.168.1.105:10051"
#主机名,Web后台创建主机必须完全一致(大小写敏感)
ZBX_HOSTNAME: "zabbix-agent"
ZBX_ENABLE_REMOTE_COMMANDS: "1"
ZBX_UNSAFE_USER_PARAMETERS: "1"
volumes:
# 挂载宿主机资源,用于采集磁盘、进程、CPU等
- /:/rootfs:ro
- /proc:/proc
- /sys:/sys
- /dev:/dev
- /etc/localtime:/etc/localtime:ro
- /opt/zabbix/scripts:/etc/zabbix/scripts
- /opt/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d
networks:
- agent-net
9.重新部署
cd /opt/zabbix
docker compose up -d
浙公网安备 33010602011771号