Docker 部署 Zabbix6.4

一、安装docker

1.1.离线安装docker

  • docker网址:https://download.docker.com/linux/static/stable/x86_64/
[root@VM-16-15-centos ~]# mkdir docker_install
[root@VM-16-15-centos ~]# cd docker_install/
[root@VM-16-15-centos docker_install]# vim docker.service 
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
[root@VM-16-15-centos docker_install]# vim install.sh
#!/bin/sh
tar -xvf ./$1
cp ./docker/* /usr/bin/
cp ./docker.service /usr/lib/systemd/system/
chmod +x /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
systemctl enable docker.service
docker -v

1.2 安装docker

[root@VM-16-15-centos docker_install]# ls
docker-23.0.3.tgz  docker.service   install.sh
[root@VM-16-15-centos docker_install]# ./install.sh docker-23.0.3.tgz
Docker version 23.0.3, build 3e7cbfd

1.3 更改数据默认存储位置

[root@VM-16-15-centos ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "data-root": "/home/docker"
}
  • data-root /graph:取决于具体的系统版本或者kernel版本决定要用data-root还是graph

1.4 查看更改信息

#更改前:
[root@VM-16-15-centos ~]# docker info  | grep "Docker Root Dir"
 Docker Root Dir: /var/lib/docker
#更改后:
[root@VM-16-15-centos ~]# docker info  | grep "Docker Root Dir"
  Docker Root Dir: /home/docker

二、部署docker-zabbix

2.1 拉取镜像

[root@VM-16-15-centos ~]# docker pull zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
[root@VM-16-15-centos ~]# docker pull zabbix/zabbix-server-mysql:alpine-6.4-latest
[root@VM-16-15-centos ~]# docker pull mysql:8.0

2.2 启动容器

PS:默认情况下,容器的网卡都是经过 NAT 的,为了保证相关服务可以正常被外部访问,容器都使用主机模式的网络(--network=host),即端口连接、端口监听都使用物理机的地址。

#docker网络
[root@VM-16-15-centos ~]# docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
#zb-mysql
[root@VM-16-15-centos ~]# mkdir -p /u01/zabbix_mount/mysql/data   /u01/zabbix_mount/mysql/conf 
[root@VM-16-15-centos ~]# cd /u01/zabbix_mount/mysql/conf
#提前创建my.cnf配置文件
[root@VM-16-15-centos ~]# vim my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
max_connections=40960

character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
#lower_case_table_names = 1
explicit_defaults_for_timestamp = true
max_connect_errors = 600
back_log = 110
table_open_cache = 600
table_definition_cache = 700
table_open_cache_instances = 64
thread_stack = 512K
external-locking = FALSE
thread_cache_size = 20
interactive_timeout = 1800
#wait_timeout = 1800
#lock_wait_timeout = 3600
skip-log-bin


pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

!includedir /etc/mysql/conf.d/

[root@VM-16-15-centos ~]#  docker run --name mysql-server -itd \
--restart always  \
-p 10001:3306 \
-v /u01/zabbix_mount/mysql/data:/var/lib/mysql   \
-v /u01/zabbix_mount/mysql/conf/my.cnf:/etc/my.cnf
-e MYSQL_DATABASE="zabbix"      \
-e MYSQL_USER="zabbix"      \
-e MYSQL_PASSWORD="zabbix_pwd"    \
-e MYSQL_ROOT_PASSWORD="root_pwd"   \
--network=zabbix-net   \
mysql:8.0    \
--character-set-server=utf8 \
--collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password

#server
#创建一个zabbix—server容器把配置文件cp出来用于挂载
[root@VM-16-15-centos ~]# mkdir -p /u01/zabbix_mount/zabbix/conf
[root@VM-16-15-centos ~]# cd /u01/zabbix_mount/zabbix/conf
[root@VM-16-15-centos conf]# docker run -itd --name test-zabbix zabbix/zabbix-server-mysql:alpine-6.4-latest 
d22596ab51f3d9cbec758b97f5b22dd64ab1660491bb58580e59f32c02a0574b
[root@VM-16-15-centos conf]# docker cp test-zabbix:/etc/zabbix/zabbix_server.conf ./
[root@VM-16-15-centos conf]# ls
zabbix_server.conf
#cp之后就可以删除了
[root@VM-16-15-centos conf]#  docker rm -f test-zabbix 
test-zabbix
[root@VM-16-15-centos conf]# docker run --name zabbix-server -itd  \
--restart always  \
-e DB_SERVER_HOST="mysql-server"   \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix"  \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net   \
-v /u01/zabbix_mount/zabbix/conf/zabbix_server.conf:/etc/zabbix/zabbix_server.conf \
-p 10051:10051  \
zabbix/zabbix-server-mysql:alpine-6.4-latest

#web
#如上把nginx的配置文件cp出来
[root@VM-16-15-centos ~]# mkdir -p /u01/zabbix_mount/nginx/conf
[root@VM-16-15-centos ~]# cd /u01/zabbix_mount/nginx/conf
[root@VM-16-15-centos conf]# docker run -itd --name test-nginx zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
d22596ab51f3d9cbec758b97f5b22dd64ab1660491bb5812359f32c02a01234
[root@VM-16-15-centos conf]# docker cp test-nginx:/etc/zabbix/nginx.conf ./
[root@VM-16-15-centos conf]# ls
nginx.conf 
[root@VM-16-15-centos conf]#  docker rm -f test-nginx 
test-nginx
[root@VM-16-15-centos ~]# docker run --name zabbix-web-nginx-mysql -itd \
--restart always  \
-e ZBX_SERVER_HOST="zabbix-server-mysql"  \
-e DB_SERVER_HOST="mysql-server"  \
-e MYSQL_DATABASE="zabbix"  \
-e MYSQL_USER="zabbix"   \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e ZBX_SERVER_NAME="运维系统平台" \
-e MYSQL_ROOT_PASSWORD="root_pwd"  \
--network=zabbix-net \
-p 10002:8080 \
-v /u01/zabbix_mount/nginx/conf/nginx.conf:/etc/zabbix/nginx.conf
zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
  • ZBX_SERVER_NAME:启动web设置前端页面名称只能设置一次,目前没有找到修改方法;
  • 启动容器后需修改每个容器内时间,否则页面数据展示时间不正常;

2.3 查看

[root@VM-16-15-centos ~]# docker ps -a
CONTAINER ID   IMAGE                                             COMMAND                   CREATED       STATUS        PORTS                                                    NAMES
7c219dc4c4d5   zabbix/zabbix-server-mysql:alpine-6.4-latest      "/sbin/tini -- /usr/…"   3 weeks ago   Up 21 hours   0.0.0.0:10051->10051/tcp, :::10051->10051/tcp            zabbix-server-mysql
9f2b9810914b   zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest   "docker-entrypoint.sh"    3 weeks ago   Up 12 days    8443/tcp, 0.0.0.0:10002->8080/tcp, :::10002->8080/tcp    zabbix-web-nginx-mysql
043bc2106096   mysql:8.0                                         "docker-entrypoint.s…"   3 weeks ago   Up 11 days    33060/tcp, 0.0.0.0:10001->3306/tcp, :::10001->3306/tcp   mysql-server

2.4 访问

  • IP+10002

  • 默认用户名/密码是:Admin/zabbix

在这里插入图片描述
PS:目前版本是官网最新版本;部署过程如有错误请指出。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Docker是一种容器化技术,可以帮助我们快速部署和管理应用程序。Zabbix是一款开源的网络监控系统,可以用于监控服务器、网络设备等。下面是使用Docker部署Zabbix 6.4的步骤: 1. 安装DockerDocker Compose:首先需要在服务器上安装DockerDocker Compose。你可以根据操作系统的不同,选择相应的安装方式。 2. 创建Docker Compose文件:在服务器上创建一个名为docker-compose.yml的文件,并添加以下内容: ``` version: '3' services: zabbix-server: image: zabbix/zabbix-server-mysql:latest restart: always ports: - 10051:10051 environment: - DB_SERVER_HOST=mysql-server - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_DATABASE=zabbix depends_on: - mysql-server zabbix-web: image: zabbix/zabbix-web-nginx-mysql:latest restart: always ports: - 80:80 environment: - DB_SERVER_HOST=mysql-server - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_DATABASE=zabbix depends_on: - mysql-server mysql-server: image: mysql:latest restart: always ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=root_password - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_DATABASE=zabbix ``` 3. 启动容器:在终端中进入到docker-compose.yml所在的目录,执行以下命令启动容器: ``` docker-compose up -d ``` 4. 访问Zabbix Web界面:等待一段时间后,可以通过浏览器访问Zabbix Web界面。在浏览器中输入服务器的IP地址或域名,即可打开Zabbix Web界面。 以上就是使用Docker部署Zabbix 6.4的简要步骤。如果你有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值