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启动成功!!