Zabbix使用过程中的问题总结

来源:互联网 发布:smali 转java 编辑:程序博客网 时间:2024/04/26 23:52

zabbix是一款专业的针对主机、数据库和其它网络设备进行实时监控的平台软件,采用了B/S 架构模式,方便安装部署。 通过该软件,用户可以方便的查看被监控对象的基本信息和运行状态,同时,它还内置了报警机制,当设备发生异常状况时,可以及时的通知相关人员。除此之外,zabbix还提供了一个web操作界面和API接口,但是该界面不是非常友好,基于此,公司决定重新定义自己的web界面,通过zabbix的api,将获取到的数据,重新处理下,然后呈现到前端浏览器,在此过程中,我把碰到的一些问题总结如下:

1. 主动/被动模式

主动模式和被动模式的区别一开始我也非常模糊,其实这是zabbix的两种工作方式,是相对于zabbix的agent端来说的,定义为:

主动模式:zabbix的agent端,也就是客户端,主动把自己监测到的数据,上报给zabbix服务器,zabbix服务器不需要向agent发起请求。

被动模式:zabbix服务器向agent发送请求,告诉agnet我需要哪些数据,然后agnet执行相关操作,把执行结果返回给服务端。

绝大多数情况下,zabbix的监控项使用的都是被动模式,公司的监控设备如果比较少,被动模式完全可以胜任。

2. 日志监控

如果想通过zabbix监控系统日志,必须使用主动模式。

3. selinux

zabbix的Server端和Agent端必须关闭selinux,否则在以后的使用过程中,经常会出现一些意想不到的问题。

4. 访问权限问题

如果某个节点设备报如下错误:Received empty response from Zabbix Agent at [*.*.*.*]. Assuming that agent dropped connection because of access permission,请检查/etc/zabbix/zabbix_agentd.conf配置文件中的Server参数是否正确,如果该参数值原来为127.0.0.1,请将它修改为一个固定的ip地址。

注意:zabbix监控自身节点时,也有可能发生该种情况。所谓自身节点,指的就是zabbix服务器本身。

5. 执行权限问题

获取某个监控项的值时,如果返回类似sh: /usr/bin/sudo: Permission denied这样的错误,除了检查该脚本是否有执行权限外,还需要特别检查下selinux的状态是否已关闭。如果没有关闭,请关闭selinux。否则,即使该脚本拥有了执行权限,还是会报上面的错误。

6. 数据库监控

zabbix本身内置了对mysql数据库的监控,但这显然不能满足大多数公司的需求,如果想监控更多的数据库,需要使用dbforbix这个插件。dbforbix只需要部署在zabbix的服务端即可,agent端不需要部署,因为它是通过jdbc的方式来获取数据,另外,它的运行还需要java环境的支持。安装好dbforbix后,需要把相关的模板导入到zabbix中,然后修改/opt/dbforbix/conf/config.props文件,config.props文件主要用来配置各种数据库的jdbc连接参数,其中有三个参数需要特别注意下:

ZabbixServerList=ZabbixServer1

ZabbixServerList定义了zabbix服务器名称,这个名称并没有什么特别的意义,可以随意命名。

ZabbixServer1.Address=127.0.0.1

Address定义了zabbix服务器地址,由于dbforbix和zabbix服务器本身是在一个机器上,所以这里只需要填写127.0.0.1即可。

ZabbixServer1.Port=10051

Port定义了zabbix服务器端口号。

7. 自定义报警脚本

默认情况下,用户自定义的报警脚本必须存放在/usr/lib/zabbix/alertscripts目录下,否则报警信息将无法发送。当然,你也可以修改报警脚本的存放目录,只需要修改/etc/zabbix/zabbix_server.conf配置文件中的AlertScriptsPath参数即可。

0 0
原创粉丝点击