Zabbix http poller processes more than 75% busy 报警解决

本文介绍如何通过调整ZabbixServer配置来提升其性能,包括增加初始化进程数量、定期重启服务等方法,有效解决轮询进程繁忙及内存不足等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"poller processes"可以看出zabbix server轮询进程繁忙,Zabbix进程分配到内存不足都有可能,如果需要彻底解决,可以通过如下解决:

  1. 观察zabbix server所在的服务器,是否内存不够,可以正常分配内存到zabbix server进程
  2. 增加Zabbix Server启动时初始化的进程数量,这样直接增加了轮询的负载量,这样就可以降低忙的情况

 
增加初始化进程的方法:编辑Zabbix Server的配置文件/etc/zabbix/zabbix_server.conf,找到配置StartPollers的段落:

### Option: StartPollers
#       Number of pre-forked instances of pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartPollers=5

取消StartPollers=一行的注释或者直接在后面增加:

StartPollers=12

将StartPollers改成多少取决于服务器的性能和监控的数量。如果内存足够的话可以设置更高。设置完成之后运行:

service zabbix-server restart

重启Zabbix。
 
当然还有另外一种从整体上降低Zabbix服务器负载的方法就是定期重启Zabbix。

这种方法可以用Cron实现,运行:

@daily service zabbix-server restart > /dev/null 2>&1

计划可以每天自动重启Zabbix服务以结束僵尸进程并清理内存等。

### Zabbix Proxy Last Seen More Than 600 Seconds Ago Solution 当遇到 `Zabbix proxy last seen more than 600 seconds ago` 的问题时,通常是因为 Zabbix Server 和 Zabbix Proxy 之间的通信中断或延迟过高。以下是可能的原因以及解决方案: #### 可能原因分析 1. **网络连接问题**: 如果 Zabbix Server 和 Zabbix Proxy 之间存在网络不稳定的情况,可能会导致超时错误。 2. **配置文件设置不当**: Zabbix Proxy 或 Agent 的配置文件中的参数可能导致性能下降或无法正常同步数据。 3. **资源不足**: 如果 Zabbix Proxy 所运行的主机 CPU、内存或其他硬件资源不足,则会影响其处理能力。 4. **日志记录过多**: 大量的日志记录会占用磁盘空间并降低系统性能。 #### 解决方案 ##### 调整 Timeout 参数 在 `/etc/zabbix/zabbix_proxy.conf` 文件中调整以下参数以优化时间间隔和重试机制: ```ini Timeout=300 StartPollers=20 ``` 上述命令分别设置了请求的最大等待时间和启动轮询器的数量[^1]。 ##### 检查服务状态 确认 Zabbix Proxy 是否正在运行,并尝试重新启动它来清除任何潜在的问题: ```bash systemctl status zabbix-proxy systemctl restart zabbix-proxy ``` 如果仍然存在问题,可以查看服务日志寻找更多线索: ```bash journalctl -u zabbix-proxy -f ``` ##### 修改客户端分配 对于迁移场景下的问题,可以通过更改 Zabbix Server 端 Web 配置将某些 hosts 移动到新的代理上。具体操作如下: - 登录 Zabbix 前端界面; - 导航至 Configuration -> Hosts 页面; - 编辑目标 host 并将其链接到新指定的代理实例[^2]。 ##### 提升硬件规格 评估当前部署环境是否满足官方推荐最低需求标准。如果不符,请考虑升级物理设备或者虚拟机资源配置。 ##### 数据库维护 定期执行数据库清理工作可以帮助保持良好的查询效率。例如删除过期的历史数据表项等。 --- ### 示例脚本:批量更新Host关联Proxy 下面提供一段 Python 脚本来辅助完成大规模 Host 切换任务: ```python import requests from pprint import pprint def update_host(hostid, newproxy_name): url = 'http://your_zabbix_server/api_jsonrpc.php' payload = { "jsonrpc": "2.0", "method": "host.update", "params": {"hostid": str(hostid), "proxy_hostid": get_proxy_id(newproxy_name)}, "auth": "<Your Auth Token>", "id": 1 } response = requests.post(url, json=payload).json() return response['result'] def get_proxy_id(proxyname): # Implement logic to fetch id based on name here... pass if __name__ == "__main__": result = [] for hst in ['example-host-id']: res = update_host(hst,'new-proxy-name') result.append(res) pprint(result) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值