欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Zabbix Docker环境部署

程序员文章站 2022-04-18 19:55:51
...

Zabbix服务端部署

名称介绍

  • 宿主机:运行Docker容器的Linux服务器

1、Docker环境

Docker环境不属于本文档的介绍范围,安装请参考Docker官网

下文中使用到的docker命令介绍:

  • 搜索镜像:docker search [镜像名称]
  • 下载镜像:docker pull [镜像名称]
  • 安装镜像并启动镜像容器:
docker run --name [镜像别名] \
--link [关联镜像]:[关联镜像别名] \
-e [容器环境变量名称]=[容器环境变量值] \
-p [宿主机端口]:[容器端口] \
-v [宿主机目录]:[容器目录] \
-d [镜像名称]:[镜像版本]

其中 --link [关联镜像]:[关联镜像别名] -e [容器环境变量名称]=[容器环境变量值] -p [宿主机端口]:[容器端口] -v [宿主机目录]:[容器目录]为可选参数,各参数具体含义以及其他参数请参考Docker官网

  • 进入容器:docker exec -it [容器别名或容器ID] bash
  • 在容器中运行命令:docker exec -it [容器别名或容器ID] [Shell命令行]
  • 查看容器日志:docker logs [容器别名或容器ID]
  • 从宿主机拷贝文件或文件夹到容器中:docker cp [宿主机文件或目录] [容器ID]:[容器中的目录]
  • 从容器拷贝文件或文件夹到宿主机中:docker cp [容器ID]:[容器中的目录] [宿主机文件或目录]
  • 停止容器:docker stop [容器别名或容器ID]
  • 启动容器:docker start [容器别名或容器ID]
  • 重启容器:docker restart [容器别名或容器ID]
  • 删除容器:docker rm [容器别名或容器ID]
  • 删除镜像:docker rmi [镜像名称:镜像ID]

2、安装MySQL

  • (1) 搜索镜像:
docker search mysql
  • (2) 选择并下载镜像:
docker pull  mysql
  • (3) 安装并运行镜像:
    • 在宿主机中创建目录并赋予权限:
mkdir -p /var/mysql/data
chmod -R 775 /var/mysql/data
- 运行镜像:
docker run --name zabbix-mysql \
-p 3306:3306 \
-v /var/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root
-d mysql

3、安装Zabbix Java gateway

  • (1) 搜索镜像:
docker search zabbix-java-gateway
  • (2) 选择并下载镜像:
docker pull  zabbix/zabbix-java-gateway
  • (3) 安装并运行镜像:
docker run --name zabbix-java-gateway \
 -d zabbix/zabbix-java-gateway

4、安装Zabbix Server

  • (1) 搜索镜像:
docker search zabbix-server-mysql
  • (2) 选择并下载镜像:
docker pull  zabbix/zabbix-server-mysql
  • (3) 安装并运行镜像:
    • 在宿主机中创建目录并赋予权限:
mkdir -p /var/zabbix/data
chmod -R 775 /var/zabbix/data
- 运行镜像:
docker run --name zabbix-server \
--link zabbix-mysql:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-e MYSQL_DATABASE="zabbix" \
-e DB_SERVER_PORT="3306" \
-v /var/zabbix/data:/usr/lib/zabbix \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql
- 查看zabbix-server启动日志
docker logs zabbix-server

注意: 此时查看zabbix-server日志会发现容器启动失败,这是因为zabbix-server我们配置的启动使用zabbix用户,zabbix数据库,但是前面创建MySQL时没有进行此操作

5、解决Zabbix Server启动失败问题

  • (1)从Zabbix Server中下载Zabbix的MySQL数据库脚本到宿主机中
docker cp zabbix-server:/usr/share/doc/zabbix-server-mysql/create.sql.gz ./
zcat create.sql.gz > create.sql
  • (2)在Mysql中创建zabbix用户,并将SQL脚本导入到MySQL数据库中
docker cp ./create.sql zabbix-mysql:/var/mysql
docker exec -it zabbix-mysql bash
cd /var/mysql
mysql -u root -p
root
CREATE user 'zabbix'@'%' IDENTIFIED BY 'zabbix';
create database zabbix;
grant all on zabbix.* to 'zabbix'@'%';
use zabbix;
source create.sql;
  • (3)重启zabbix-server
docker restart zabbix-server

6、安装Zabbix Web Nginx MySQL

  • (1) 搜索镜像:
docker search zabbix-web-nginx-mysql
  • (2) 选择并下载镜像:
docker pull  zabbix/zabbix-web-nginx-mysql
  • (3) 安装并运行镜像:
docker run --name zabbix_web \
--link zabbix-mysql:mysql \
--link zabbix-server:zabbix-server \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_DATABASE="zabbix" \
-e ZBX_SERVER_HOST="zabbix-server" \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql

至此Zabbix服务容器全部安装完成。可以通过宿主机的IP来访问Zabbix的Web界面,默认账户:Admin 密码:zabbix
Zabbix Docker环境部署

7、Zabbix客户端 Zabbix Agent

zabbix-agent为Zabbix的客户端组件,用来收集需要监控的服务器信息。
zabbix可以直接使用linux组件来进行安装

  • (1)下载安装zabbix-agent
yum install zabbix-agent -y
  • (2)修改zabbix-agent
    zabbix-agent安装完毕之后,配置在/etc/zabbix/zabbix_agentd.conf
    修改配置文件:主要修改一下三项即可
#Zabbix-Agent被动模式下允许服务器的授权地址
Server=[zabbix-server的IP地址]
#Zabbix-agent主动模式下的上报地址
ServerActive=[zabbix-server的IP地址]
#Zabbix-agent的服务器名称
Hostname=Zabbix server

8、Zabbix Web添加主机

  • (1)打开并登录Zabbix Web
  • (2)Configuration -> Hosts -> Create host
    • Host name填写第7步中的zabbix_agentd.conf中的Hostname
    • Groups选择对应的服务器,例如Linux选择:Linux servers
    • Agent interfaces填写被监控的服务器的ip地址和端口号(就是第7步中部署zabbix-agent的服务器的Ip,如果没有修改过第7步中zabbix_agentd.conf中的zabbix-agent监听的端口号,则默认端口为10050)
  • (3)切换到Templates界面,在Link new templates选择对应的模板,例如Linux服务器可以选择:Template OS Linux。选择完成之后点击add按钮,默认即添加完成
  • (4)点击Add按钮,即可成功添加服务器,在列表中会显示刚才添加的服务器信息