最近有个项目,因为启用了新的Zabbix Server,需要把对主机的Zabbix 监控从版本2.2 迁移到3.2。
步骤
如果不改变原先的HostGroup、Template、Host 等相关配置,可以利用Zabbix 的导入/导出功能实现多台机器的批量迁移。由于存在依赖关系,导入的顺序为
HostGroup → Template → Proxy → Host
- 通过管理界面,在新的Zabbix Server 上手动创建HostGroup。
- 导出旧的Zabbix Server 上的Template,并导入到新的Zabbix Server 上。
- 如果有些机器通过Proxy 和Zabbix Server 连接,则需要升级Proxy 机器上的Zabbix 版本,或者将Host 指向新的Proxy。
- 在新的Zabbix Server 上添加Proxy。
- 导出旧的Zabbix Server 上的Host,并导入到新的Zabbix Server 上。
备注:Zabbix 不支持导出Web Scenario,需要手动添加Web Scenario 以及相应的Trigger 和Graph。
安装Zabbix Proxy
$ wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+trusty_all.deb
$ dpkg -i zabbix-release_3.2-1+trusty_all.deb
$ apt-get update
$ apt-get install zabbix-proxy-sqlite3 -f
遇到的问题
通过Proxy 连接的Host 在导入成功后,监测状态显示"Zabbix agent on x is unreachable"。
解决方法:确认这些Host 已经出现在Proxy 的列表中后,disable Proxy 再重新 enable Proxy 即可。对于新增的Host,如果监控栏是灰色的,一般需要等待十几分钟后,Proxy 会自动发现这些Host。直连的Host 在导入成功后,监测状态显示"Zabbix agent on x is unreachable"。错误信息为"Assuming that agent dropped connection because of access permissions"
解决方法:修改Host 机器上的 /etc/zabbix/agentd.conf 文件,将新的Zabbix Server 的IP 地址加到"Server=" 的设置中,同时确保该Server 在 /etc/hosts 文件中。如何使用自定义的脚本进行告警通知?
- 在Administration 下的Media types 中新增Media type,类型选择Script。
- 在Administation 下的Users 中,选择需要通知的user,在Media 标签页下添加新增的Media。
- 在Configuration 下的Actions 中添加action 定义告警的条件和方式。
- 自定义脚本要有执行权限。
- 错误信息 "cannot connect to [[47.89.53.224]:10350]: [4] Interrupted system call"
解决方法:查看防火墙是否开启了10350端口的访问。