docker环境下安装zabbix(docker安装zabbix更简单!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)

sudo yum install -y yum-utils

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://guzonhto.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

######解决docker pull拉取镜像慢的问题##########

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://yxzrazem.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

 

 

1. 安装数据库

下载镜像,zabbix 6.x版本要求使用mysql 8.0。

$ docker pull mysql:8.0

 

 

创建存储卷,用于持久化mysql数据。

$ docker volume create -d local  mysql_data #存放mysql数据
$ docker volume create -d local  mysql_logs #存放mysql日志
$ docker volume create -d local  mysql_conf #存放mysql配置文件 

注释:存储卷默认存储位置路径为:/var/lib/docker/volume/${volume_name}。关于存储卷的知识,不清楚的朋友可查看此文《Docker容器实战十一:数据存储》

 

 

启动容器

docker run --name mysql-server -t \ -v mysql_data:/var/lib/mysql \ -v mysql_logs:/var/log/mysql \ -v mysql_conf:/etc/mysql \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="123456" \ --restart=unless-stopped \ -d mysql:8.0 \ --character-set-server=utf8 --collation-server=utf8_bin \ --default-authentication-plugin=mysql_native_password

 

 

2. 安装zabbix-java-gateway

下载镜像

$ docker pull zabbix/zabbix-java-gateway:alpine-6.2-latest

 

 

启动容器

$ docker run --name zabbix-java-gateway -t \
   --restart=unless-stopped \
      -d zabbix/zabbix-java-gateway:alpine-6.2-latest

 

 

3. 安装zabbix-server

下载镜像

$ docker pull zabbix/zabbix-server-mysql:6.2-alpine-latest

 

 

创建存储卷,用于存储zabbix配置文件。

$ docker volume create -d local  zabbix_server

 

 

启动server容器,开放10051/TCP端口,用于接收监控数据。添加--link参数,实现mysql和java-gateway容器间的互相通信。

$ docker run --name zabbix-server-mysql -t \
    -v zabbix_server:/etc/zabbix \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="123456" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --link mysql-server:mysql \
      --link zabbix-java-gateway:zabbix-java-gateway \
      --restart=unless-stopped \
      -p 10051:10051 \
      -d zabbix/zabbix-server-mysql:alpine-6.2-latest

注释:此方式适合所有容器部署在同一台主机上,如果是分开部署,则在前面的步骤需要开放相关端口,并通过局域网进行连接。

 

 

4. 安装Zabbix Web 界面

下载镜像

$ docker pull zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest

 

 

 

启动web容器

$ docker run --name zabbix-web-nginx-mysql -t \
   -e PHP_TZ="Asia/Shanghai" \
   -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 MYSQL_ROOT_PASSWORD="123456" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -p 80:8080 \
      --restart unless-stopped \
      -d zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest

 

 

5. 登录zabbix

192.168.8.102  或者  192.168.8.102/zabbix   两种访问都试试

 

 

 

 #######################################################################################################

安装agent

docker pull zabbix/zabbix-agent:alpine-6.2-latest

 

 docker volume create -d local zabbix_agent

 

 

启动agent容器(注意指定server端服务地址为容器IP地址!!!!!!!!)

$ docker run --name zabbix-agent -t \
      -v zabbix_agent:/etc/zabbix \
      -e ZBX_HOSTNAME="host-01" \
      -e ZBX_SERVER_HOST="192.168.8.102" \ 
      -e ZBX_SERVER_PORT=10051 \
      -p 10050:10050 \
      --restart=unless-stopped \
      --privileged \
      -d zabbix/zabbix-agent:alpine-6.2-latest
即以下写法:(

docker run --name zabbix-agent -t -v zabbix_agent:/etc/zabbix -e ZBX_HOSTNAME="host01" -e ZBX_SERVER_HOST="172.17.0.4" -e ZBX_SERVER_PORT=10051 -p 10050:10050 --restart=unless-stopped --privileged -d zabbix/zabbix-agent:alpine-6.2-latest

)

注释:如果是部署在zabbix Server主机上的监控agent,此时的ZBX_SERVER_HOST需改为zabbix server的容器IP,而不能用主机IP。

 

 

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

添加监控主机

 

 

 如果是部署在zabbix Server主机上的监控agent,此时的ZBX_SERVER_HOST需改为zabbix server的容器IP,而不能用主机IP。agent应该是server主机搞错了,导致添加监控主机失败!!!!!

 

 

从下面截图看,问题已经得到解决!!!!!!!!

 

 可以看到监控的数据,一切正常

 

 

 

 

 

 

 

 

 

 

 

 

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

一:安装docker

安装部署docker.sh

####################################脚本docker安装BEGINS
[root@zabbix-agent yidong]# cat *.sh
#!/bin/bash
cat << EOF
1.安装docker
2.启动docker
3.退出
EOF
read -p "请选择一个变量来定位:" Select
case $Select in
1)
echo "安装docker软件开始-----------------------"
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i "s#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#g" /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
sleep 10
echo "安装docker软件结束-----------------------"
;;
2)
echo "启动docker服务端----------------------------------------------------------------"
systemctl enable docker --now
sleep 10
echo "启动docker完毕!!!!!!!!!"
;;
3)
echo "退出---------------------------------------------------------------------------"
sleep 10
exit 1
esac

#######################################################################END

 

 

 

 

 配置镜像加速器:

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://guzonhto.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

自此,docker安装完成。。。。。。。。。。。。。。。。。。。。。。。。。。。。

docker基础命令

查看正在运行的进程 :ps aux|grep http
打开浏览器:ip:port ,可以看到==》It works! ,即成功安装。
停止容器 :docker stop 容器id
删除容器 :docker rm 容器id

docker images 查看镜像

 

 

 

启动服务 :systemctl start docker
查看正在运行中的容器 :docker ps

二:安装httpd容器:
运行httpd容器 :docker run -d -p 80:80 httpd

 

 





 

 

 

 三:安装mysql

docker run --name mysql-server -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" -e MYSQL_ROOT_PASSWORD="123456" -p 3306:3306 -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_bin
查看是否启动 :docker logs mysql-server,如下图即成功启动。

 

 查看是否启动 :docker logs mysql-server,如下图即成功启动。

 

 

四:安装zabbix-java-gateway

安装:docker run --name zabbix-java-gateway -t -d zabbix/zabbix-java-gateway:latest
查看进程 :docker ps
查看日志 :docker logs 容器id

如下图所示即成功安装:

 

 

docker logs 9c6#检查启动日志!!

 五:安装zabbix-server

安装 : docker run --name zabbix-server-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" -e MYSQL_ROOT_PASSWORD="123456" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" --link mysql-server:mysql --link zabbix-java-gateway -p 10051:10051 -d zabbix/zabbix-server-mysql:latest

 

 

六, 安装nginx

安装:docker run --name zabbix-web-nginx-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" -e MYSQL_ROOT_PASSWORD="123456" --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -p 80:80 -d zabbix/zabbix-web-nginx-mysql:latest
查看安装:docker logs zabbix-web-nginx-mysql

 

 

 

 

docker logs 3f4618  #检查nignx启动成功!!

 

posted @ 2023-04-10 14:31  往事已成昨天  阅读(1357)  评论(0编辑  收藏  举报