Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新

简介: Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新

docker常用命令

# 查看运行的容器
docker ps
# 查看日志
docker logs containerID
# 重启容器
docker restart containerID
# 创建 zabbix 专用网络
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
# 查询
docker network ls
# 容器启动命令查询
docker pull cucker/get_command_4_run_container
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run_container containerID

Preparation

  • 安装Docker。
  • 为Zabbix创建专用网络zabbix-net。
  • 创建数据库用户zabbix和数据库zabbix。

IP地址说明

  • 172.20.240.0【Zabbix 专用网络的 Gateway IP 下边有查询方法】
  • 172.17.0.8【云服务器的内网IP】

1.Server

# pull 镜像
docker pull zabbix/zabbix-server-pgsql:5.4-centos-latest
# 启动容器
docker run --name 5.4-zabbix-server-pgsql \
-e DB_SERVER_HOST="172.17.0.8" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-p 10051:10051 \
-d zabbix/zabbix-server-pgsql:5.4-centos-latest

开启JAVAGATEWAY服务:

# 容器启动【开启JAVAGATEWAY服务】
docker run --name 5.4-zabbix-server-pgsql \
-e DB_SERVER_HOST="172.17.0.8" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" \
-e ZBX_JAVAGATEWAY_ENABLE="true" -e ZBX_JAVAGATEWAY="172.20.240.0" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-p 10051:10051 \
-d zabbix/zabbix-server-pgsql:5.4-centos-latest
# 数据库会自动初始化166张表

2.Agent

2.1 agent

# pull 镜像
docker pull zabbix/zabbix-agent:centos-5.4-latest
# 启动容器
docker run --name 5.4-zabbix-agent \
-e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="172.20.240.0" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
-v /etc/localtime:/etc/localtime \
-p 10050:10050 \
-d zabbix/zabbix-agent:centos-5.4-latest

其他启动命令:

# 其他启动命令
# Connects from Zabbix server or Zabbix proxy in other containers (Passive checks)
docker run --name some-zabbix-server --link some-zabbix-agent:zabbix-agent -d zabbix/zabbix-server:latest
# Connect to Zabbix server or Zabbix proxy containers (Active checks)
docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -d zabbix/zabbix-agent:latest
#  Privileged mode
docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server --privileged -d zabbix/zabbix-agent:latest
docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -v /dev/sdc:/dev/sdc -d zabbix/zabbix-agent:latest

踩坑记录:

# 1.报错
active check configuration update from [云服务器内网IP:10051] started to fail (cannot connect to [[云服务器内网IP]:10051]: [111] Connection refused)
# 解决
# Zabbix server 启动时添加
-p 10051:10051 \
# 2.报错
# agent
no active checks on server [云服务器内网IP:10051]: host [zabbix-agent] not found
# server
cannot send list of active checks to "172.20.240.0": host [zabbix-agent] not found
# 解决修改 -e ZBX_HOSTNAME="zabbix-agent" 为
-e ZBX_HOSTNAME="Zabbix server" # 或者修改 Web 端的 Hosts->Name
# 3.报错
failed to accept an incoming connection: connection from "172.20.240.0" rejected, allowed hosts: "云服务器内网IP"
# 解决修改 -e ZBX_SERVER_HOST="云服务器内网IP" 为
-e ZBX_SERVER_HOST="172.20.240.0"
# 172.20.240.0 为 Zabbix 专用网络的 Gateway IP 地址 查看方式
docker inspect containerZabbixServerID | grep "Gateway"
            "Gateway": "",
            "IPv6Gateway": "",
                    "Gateway": "172.20.240.0",
                    "IPv6Gateway": "",

2.2 agent2

Zabbix agent 2 是新一代的 Zabbix agent,可以代替 Zabbix agent 使用。Zabbix agent 2 有以下特点:

  • 减少TCP连接数。
  • 提供改进的检查并发性。
  • 易于使用插件进行扩展。
  • 一个插件应该能够:提供仅由几行简单代码组成的简单检查;提供复杂的检查,包括长时间运行的脚本和独立的数据收集,并定期发回数据。

是 Zabbix agent 的临时替代品(因为它支持之前的所有功能)【新一代的 agent 是临时替代品???】

# pull 镜像
docker pull zabbix/zabbix-agent2:5.4-centos-latest
# 启动容器
docker run --name 5.4-zabbix-agent2 \
-e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="172.20.240.0" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
-v /etc/localtime:/etc/localtime \
-p 10050:10050 \
-d zabbix/zabbix-agent2:5.4-centos-latest

3.Web interface

# pull 镜像
docker pull zabbix/zabbix-web-nginx-pgsql:5.4-centos-latest
# 启动容器
docker run --name 5.4-zabbix-web-nginx-pgsql \
-e DB_SERVER_HOST="172.17.0.8" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" \
-e ZBX_SERVER_HOST="172.20.240.0" \
--restart unless-stopped \
-v /etc/localtime:/etc/localtime \
-v /usr/share/zabbix/assets/fonts:/usr/share/zabbix/assets/fonts \
--network=zabbix-net \
-p 443:8443 \
-p 9090:8080 \
-e PHP_TZ="Asia/Shanghai" \
-d zabbix/zabbix-web-nginx-pgsql:5.4-centos-latest
# 用于解决图表中文乱码问题
# -v /usr/share/zabbix/assets/fonts:/usr/share/zabbix/assets/fonts 
# /usr/share/zabbix/assets/fonts 文件夹下放置 DejaVuSans.ttf 文件
# 界面实例将 443/TCP 端口(HTTPS)暴露给主机。

其他启动命令:

# Linking the container to Zabbix server
docker run --name some-zabbix-web-nginx-pgsql --link some-zabbix-server:zabbix-server -e DB_SERVER_HOST="some-postgres-server" -e POSTGRES_USER="some-user" -e POSTGRES_PASSWORD="some-password" -e ZBX_SERVER_HOST="some-zabbix-server" -e PHP_TZ="some-timezone" -d zabbix/zabbix-web-nginx-pgsql:tag
# Linking the container to PostgreSQL database
docker run --name some-zabbix-web-nginx-pgsql --link some-postgres-server:postgres -e DB_SERVER_HOST="some-postgres-server" -e POSTGRES_USER="some-user" -e POSTGRES_PASSWORD="some-password" -e ZBX_SERVER_HOST="some-zabbix-server" -e PHP_TZ="some-timezone" -d zabbix/zabbix-web-nginx-pgsql:tag
# socket 统计信息查看
ss -lnt
# 结果
State   Recv-Q    Send-Q    Local Address:Port    Peer Address:Port
LISTEN    0     128     *:22          *:*
LISTEN    0     128     *:5432          *:*
LISTEN    0     128     *:10050         *:*
LISTEN    0     128     *:9090          *:*
LISTEN    0     128     *:10051         *:*
LISTEN    0     128     [::]:5432       [::]:*
LISTEN    0     128     [::]:10050        [::]:*
LISTEN    0     128     [::]:9090       [::]:*
LISTEN    0     128     [::]:10051        [::]:*

4.Java gateway

# pull 镜像
docker pull zabbix/zabbix-java-gateway:5.4-centos-latest
# 启动容器
docker run --name 5.4-zabbix-java-gateway \
-e ZBX_START_POLLERS=50 \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-p 10052:10052 \
-d zabbix/zabbix-java-gateway:5.4-centos-latest
# 其他启动命令
# Linking the container to Zabbix server or Zabbix proxy
docker run --name some-zabbix-java-gateway --link some-zabbix-server:zabbix-server -d zabbix/zabbix-java-gateway:tag

启用Java gateway时Server的启动参数也要进行调整:

  • ZBX_JAVAGATEWAY_ENABLE

The variable enable communication with Zabbix Java Gateway to collect Java related checks. By default, value is false.

  • Other variables
# Additionally the image allows to specify many other environment variables listed below【仅贴出 Java gateway 相关参数】
# 本次使用默认参数
ZBX_JAVAGATEWAYPORT=10052
ZBX_STARTJAVAPOLLERS=5

修改后的启动命令:

docker run --name 5.4-zabbix-server-pgsql \
-e DB_SERVER_HOST="172.17.0.8" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" \
-e ZBX_JAVAGATEWAY_ENABLE="true" -e ZBX_JAVAGATEWAY="172.20.240.0" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-p 10051:10051 \
-d zabbix/zabbix-server-pgsql:5.4-centos-latest

5.总结及更新内容

Docker部署方便,load导出的镜像就无需下载各种依赖了。

  • 20230331 更新了对IP的说明。
  • 20230331 添加了前端图表中文乱码的解决方法。
相关实践学习
基于ECS搭建云上博客
本实验教您如何在ECS云服务器(Alibaba Cloud Linux 3)的环境下,通过部署LAMP环境并安装WordPress快速搭建个人博客。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
机器学习/深度学习 人工智能 监控
Java与AI模型部署:构建企业级模型服务与生命周期管理平台
随着企业AI模型数量的快速增长,模型部署与生命周期管理成为确保AI应用稳定运行的关键。本文深入探讨如何使用Java生态构建一个企业级的模型服务平台,实现模型的版本控制、A/B测试、灰度发布、监控与回滚。通过集成Spring Boot、Kubernetes、MLflow和监控工具,我们将展示如何构建一个高可用、可扩展的模型服务架构,为大规模AI应用提供坚实的运维基础。
807 0
存储 jenkins 持续交付
1164 2
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
1244 0
|
Java 应用服务中间件 Docker
java-web部署模式概述
本文总结了现代 Web 开发中 Spring Boot HTTP 接口服务的常见部署模式,包括 Servlet 与 Reactive 模型、内置与外置容器、物理机 / 容器 / 云环境部署及单体与微服务架构,帮助开发者根据实际场景选择合适的方案。
839 25
|
Java 应用服务中间件 Linux
在Java 12环境中配置和部署Apache Tomcat的步骤。
这段部署Tomcat的冒险旅程充满技术挑战,但同时也像游戏一样充满乐趣。它需要你提前准备,仔细执行,并随时准备解决意外情况。成功后,你就可以在这匹强壮的网络野马上,带着你的Java应用,冲向Web开发的璀璨星空。
436 56
|
安全 Java Docker
Docker 部署 Java 应用实战指南与长尾优化方案
本文详细介绍了Docker容器化部署Java应用的最佳实践。首先阐述了采用多阶段构建和精简JRE的镜像优化技术,可将镜像体积减少60%。其次讲解了资源配置、健康检查、启动优化等容器化关键配置,并演示了Spring Boot微服务的多模块构建与Docker Compose编排方案。最后深入探讨了Kubernetes生产部署、监控日志集成、灰度发布策略以及性能调优和安全加固措施,为Java应用的容器化部署提供了完整的解决方案指南。文章还包含大量可落地的代码示例,涵盖从基础到高级的生产环境实践。
986 3
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
870 70
|
数据采集 监控 Oracle
GraalVM 24 正式发布阿里巴巴贡献重要特性 —— 支持 Java Agent 插桩
阿里巴巴是 GraalVM 全球顾问委员会的唯一中国代表,阿里云程序语言与编译器团队和可观测团队合作实现了 GraalVM 应用的无侵入可观测能力,并在 ARMS 平台上线了该功能。目前在 GraalVM 24 中发布的是支持 Java agent 的第一步,其余能力将在 GraalVM 的后续版本中陆续发布。
1044 23
|
运维 网络安全 文件存储
找不到类似 Docker Desktop 的 Web 管理界面?试试这些开源方案
Docker Desktop 是本地容器化开发的利器,但存在无法通过 Web 远程管理、跨平台体验不一致等问题。为此,推荐几款轻量级、可 Web 化管理的 Docker 工具:Portainer 功能全面,适合企业级运维;CasaOS 集成应用商店和 NAS 功能,适合家庭/个人开发环境;Websoft9 提供预集成环境,新手友好。这些工具能有效提升容器管理效率,满足不同场景需求。
1604 3
|
人工智能 自然语言处理 前端开发
从理论到实践:使用JAVA实现RAG、Agent、微调等六种常见大模型定制策略
大语言模型(LLM)在过去几年中彻底改变了自然语言处理领域,展现了在理解和生成类人文本方面的卓越能力。然而,通用LLM的开箱即用性能并不总能满足特定的业务需求或领域要求。为了将LLM更好地应用于实际场景,开发出了多种LLM定制策略。本文将深入探讨RAG(Retrieval Augmented Generation)、Agent、微调(Fine-Tuning)等六种常见的大模型定制策略,并使用JAVA进行demo处理,以期为AI资深架构师提供实践指导。
2415 73

热门文章

最新文章