zabbix问题-非常少的网络故障失败或罕见:Proxy超时的问题

本文详细介绍了在Zabbix监控系统中遇到的超时问题及其解决方案。通过调整zabbix_agentd.conf和zabbix_server.conf配置文件中的Timeout参数,解决了Zabbix agent与server之间的连接超时问题。

 

 解决方案

zabbix_agentd.conf中添加这些。

BufferSend = 10

BufferSize = 150

MaxLinesPerSecond = 100

Timeout = 29

重新启动代理

ps -ef | grep zabbix | grep -v grep | awk '{print $2}' | xargs kill -9

在zabbix_server里面添加

Timeout = 29

 重启zabbix_server

ps -ef | grep zabbix_server | grep -v grep | awk '{print $2}' | xargs kill -9

问题网上给的解决方案

zabbix server上日志报错:

 11110:20160816:114903.664 resuming Zabbix agent checks on host "master1": connection restored
 11110:20160816:114906.675 Zabbix agent item "tcp_connect.closing" on host "master1" failed: first network error, wait for 15 seconds
zabbix agent上日志报错:

 18601:20160816:113151.290 active check configuration update from [10.51.176.130:10051] started to fail (cannot connect to [[10.51.176.130]:10051]: [4] Interrupted system call)
从web界面查看overview显示没有数据,但是从zabbix_server上直接使用zabbix_get获取可以获取到数据,

考虑:1、进程运行正常;

    2、端口可以正常通信;

    3、item配置正确;


百度许多,都是查看防火墙,端口,进程之类的。  

最后发现可能是超时造成的,因此,修改配置文件:

vi zabbix_server.conf
Timeout=30
vi zabbix_agentd.conf
Timeout=30
重启server和agent,问题解决。

资料扩展(配置文件):

LogFile=/usr/local/zabbix/log/zabbix_agentd.log    #日志

Server=10.10.88.20    # zabbix server IP,此种表示被动监听。可以有多个IP,以逗号分隔,如 Server=123.56.178.128,192.168.0.41

ListenPort=10050    # agent 监听端口。默认也是10050

ListenIP=0.0.0.0    # agent监听的网络接口。0.0.0.0表示监听所有IP

StartAgents=3    #处理被动检查的预启动的zabbix_agent进程。默认值为3

ServerActive=10.10.88.20:10051    #主动模式。主动检查zabbix server的端口,如果没有指明端口,则默认为10051

Hostname=slave2    # 该项需要主动检查,并且必须与服务器上服务器上配置的主机名一致。如果未定义,则从HostnameItem获取值。
 How often list of active checks is refreshed, in seconds.

RefreshActiveChecks=120    # 主动模式下,agent主动检查监控项的刷新频率(隔多久从server获取一次item),单位s,默认120s

BufferSend=5    #数据在缓冲区的保留时间。默认只保留5秒

BufferSize=100    #内存缓冲区中的最大值。 如果缓冲区已满,代理将发送所有收集的数据到Zabbix Server或Proxy。默认值为100

Timeout=30    # 处理超时时间。默认30秒为超时

AllowRoot=0    # 是否允许agent以 root用户运行。0表示不允许,1表示允许,默认值为0

User=zabbix    #

Include=xxx    # 包含的配置文件,默认没有值。如Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

UserParameter=xxx    # 用户自定义监控项,即自定义key。如

  

转载于:https://www.cnblogs.com/charon2/p/10343506.html

version: "3.8" networks: zabbix-net: driver: bridge ipam: config: - subnet: 172.20.0.0/24 services: mysql-server: image: mysql:8.0.36 container_name: mysql-server restart: unless-stopped environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: Zmsl@123 MYSQL_ROOT_PASSWORD: Zmsl@123 TZ: Asia/Shanghai command: > --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin volumes: - mysql_data:/var/lib/mysql - mysql_logs:/var/log/mysql - mysql_conf:/etc/mysql/conf.d ports: - "3306:3306" networks: zabbix-net: ipv4_address: 172.20.0.10 zabbix-java-gateway: image: zabbix/zabbix-java-gateway:alpine-6.2-latest container_name: zabbix-java-gateway restart: unless-stopped environment: TZ: Asia/Shanghai networks: zabbix-net: ipv4_address: 172.20.0.20 zabbix-server-mysql: image: zabbix/zabbix-server-mysql:6.2-alpine-latest container_name: zabbix-server-mysql restart: unless-stopped depends_on: - mysql-server - zabbix-java-gateway environment: DB_SERVER_HOST: mysql-server MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: Zmsl@123 MYSQL_ROOT_PASSWORD: Zmsl@123 ZBX_JAVAGATEWAY: zabbix-java-gateway ZBX_JAVAGATEWAY_TIMEOUT: 30 ZBX_START_POLLERS: 5 ZBX_START_POLLERS_UNREACHABLE: 1 TZ: Asia/Shanghai volumes: - /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - zabbix_server:/etc/zabbix - /data/zabbix/server:/var/lib/zabbix - /data/zabbix/log:/var/log/zabbix ports: - "10051:10051" networks: zabbix-net: ipv4_address: 172.20.0.30 zabbix-web-nginx-mysql: image: zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest container_name: zabbix-web-nginx-mysql restart: unless-stopped depends_on: - mysql-server - zabbix-server-mysql environment: PHP_TZ: Asia/Shanghai ZBX_SERVER_HOST: zabbix-server-mysql DB_SERVER_HOST: mysql-server MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: Zmsl@123 MYSQL_ROOT_PASSWORD: Zmsl@123 ports: - "7099:8080" networks: zabbix-net: ipv4_address: 172.20.0.40 zabbix-agent: image: zabbix/zabbix-agent:alpine-6.2-latest container_name: zabbix-agent restart: unless-stopped environment: ZBX_HOSTNAME: zabbix-server-docker ZBX_SERVER_HOST: zabbix-server-mysql ZBX_SERVER_PORT: 10051 ZBX_PASSIVE_ALLOW: "true" ZBX_ACTIVE_ALLOW: "true" volumes: - zabbix_agent:/etc/zabbix ports: - "10050:10050" networks: zabbix-net: ipv4_address: 172.20.0.50 cap_add: - NET_RAW - NET_ADMIN volumes: mysql_data: mysql_logs: mysql_conf: zabbix_server: zabbix_agent:
最新发布
08-20
<think>我们正在使用Docker Compose部署Zabbix监控系统,包括以下组件: - Zabbix Server - Zabbix Web界面(使用Nginx和MySQL) - Zabbix Agent(通常部署在被监控主机上,但这里我们也可以部署一个用于监控Zabbix Server自身) - MySQL数据库 根据引用[1]和[3],我们可以构建一个docker-compose.yml文件。注意,引用[1]中提供了部分配置,但我们需要完善。 配置要点: 1. 数据库服务:MySQL,需要创建数据库、用户和密码。 2. Zabbix Server服务:依赖数据库,并连接Zabbix Agent。 3. Zabbix Web服务:使用Nginx和MySQL,需要连接到数据库和Zabbix Server。 4. Zabbix Agent服务:需要连接到Zabbix Server。 另外,时区设置很重要,引用[1]和[2]都提到了时区设置(Asia/Shanghai)。 我们采用官方镜像: - mysql:5.7(者8.0,但要注意Zabbix版本兼容性) - zabbix/zabbix-server-mysql - zabbix/zabbix-web-nginx-mysql - zabbix/zabbix-agent 下面是一个完整的docker-compose.yml配置示例: ```yaml version: '3' services: mysql-server: image: mysql:5.7 container_name: mysql-server environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix MYSQL_ROOT_PASSWORD: root_password volumes: - mysql-data:/var/lib/mysql ports: - "3306:3306" networks: - zabbix-net restart: unless-stopped zabbix-server: image: zabbix/zabbix-server-mysql:latest container_name: zabbix-server environment: DB_SERVER_HOST: mysql-server MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix ports: - "10051:10051" networks: - zabbix-net depends_on: - mysql-server restart: unless-stopped zabbix-web: image: zabbix/zabbix-web-nginx-mysql:latest container_name: zabbix-web environment: DB_SERVER_HOST: mysql-server MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix PHP_TZ: Asia/Shanghai ZBX_SERVER_HOST: zabbix-server ports: - "80:8080" networks: - zabbix-net depends_on: - mysql-server - zabbix-server restart: unless-stopped zabbix-agent: image: zabbix/zabbix-agent:latest container_name: zabbix-agent environment: ZBX_SERVER_HOST: zabbix-server ports: - "10050:10050" networks: - zabbix-net depends_on: - zabbix-server restart: unless-stopped networks: zabbix-net: driver: bridge volumes: mysql-data: ``` 说明: 1. 使用了一个自定义网络`zabbix-net`,所有服务都连接到此网络,以便通过服务名相互访问。 2. 数据库使用卷`mysql-data`持久化数据。 3. Zabbix Web服务的端口映射为80:8080,这样可以通过宿主机的80端口访问。 4. 时区设置:`PHP_TZ: Asia/Shanghai`,确保Web界面时间正确。 5. Zabbix Agent配置了`ZBX_SERVER_HOST`指向zabbix-server,这样Agent就会连接这个Server。 注意:Zabbix Server和Agent的端口10051和10050需要暴露,以便外部Agent连接(如果还需要监控其他主机)。如果只是监控本容器内的服务,也可以不暴露端口,因为它们在同一个网络内。 使用时,将上述内容保存为`docker-compose.yml`,然后运行`docker-compose up -d`。 另外,根据引用[3],可能需要调整一些配置,但上述配置是一个基础可用的版本。 §§相关问题§§ 1. 如何验证Zabbix各组件是否正常运行? 2. 如何添加其他主机到Zabbix监控? 3. 如何升级使用Docker Compose部署的Zabbix?</think>以下是使用 Docker Compose 部署 Zabbix 监控系统的完整配置方案,包含 Zabbix Server、Web、Agent 和 MySQL 组件: ```yaml version: '3' services: mysql-server: image: mysql:8.0 container_name: mysql-server environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_password MYSQL_ROOT_PASSWORD: root_password volumes: - mysql-data:/var/lib/mysql command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci networks: - zabbix-net restart: unless-stopped zabbix-server: image: zabbix/zabbix-server-mysql:6.0-latest container_name: zabbix-server environment: DB_SERVER_HOST: mysql-server MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_password ZBX_CACHESIZE: 512M volumes: - zabbix-export:/var/lib/zabbix/export - zabbix-snmptraps:/var/lib/zabbix/snmptraps ports: - "10051:10051" networks: - zabbix-net depends_on: - mysql-server restart: unless-stopped zabbix-web: image: zabbix/zabbix-web-nginx-mysql:6.0-latest container_name: zabbix-web environment: DB_SERVER_HOST: mysql-server MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_password PHP_TZ: Asia/Shanghai ZBX_SERVER_HOST: zabbix-server ZBX_SERVER_PORT: 10051 ports: - "80:8080" volumes: - zabbix-web:/usr/share/zabbix networks: - zabbix-net depends_on: - mysql-server - zabbix-server restart: unless-stopped zabbix-agent: image: zabbix/zabbix-agent:6.0-latest container_name: zabbix-agent environment: ZBX_SERVER_HOST: zabbix-server ZBX_HOSTNAME: zabbix-server ZBX_METADATA: linux ports: - "10050:10050" volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro networks: - zabbix-net depends_on: - zabbix-server restart: unless-stopped networks: zabbix-net: driver: bridge volumes: mysql-data: zabbix-export: zabbix-snmptraps: zabbix-web: ``` ### 配置说明: 1. **MySQL服务**: - 使用 MySQL 8.0 官方镜像 - 自动创建 `zabbix` 数据库和用户 - 数据持久化到 `mysql-data` 卷 - 设置 UTF8 字符集支持中文[^1] 2. **Zabbix Server**: - 连接 MySQL 数据库服务 - 优化缓存大小(512MB) - 暴露 10051 端口供 Agent 连接 - 持久化存储监控数据导出和 SNMP 陷阱 3. **Zabbix Web界面**: - 使用 Nginx + PHP 组合 - 设置时区为 `Asia/Shanghai`[^1][^2] - 映射宿主机 80 端口到容器 8080 端口 - 自动连接 Zabbix Server 和 MySQL 4. **Zabbix Agent**: - 监控 Zabbix Server 自身 - 同步宿主机时区配置 - 暴露 10050 端口用于外部监控 ### 部署步骤: 1. 创建 `docker-compose.yml` 文件并填入上述配置 2. 启动服务: ```bash docker-compose up -d ``` 3. 等待初始化完成(约2-5分钟) 4. 访问 `http://<宿主机IP>` 进入 Zabbix Web 5. 使用默认账号登录: - 用户名: `Admin` - 密码: `zabbix` ### 验证部署: ```bash docker-compose ps ``` 应显示所有4个容器状态为 `Up` > **重要安全提示**:生产环境中请修改默认密码(`zabbix_password` 和 `root_password`),并启用 SSL 加密访问[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值