zabbix 监控 :
1) Zabbix 是一个企业级分布式开源监控解决方案。
2) Zabbix 支持主动轮询(polling)和被动捕获(trapping)。
3) Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。
功能强大且易于扩展的 Zabbix Agent:
1) 部署于被监控对象上;
2) 支持 Linux 和 Windows ;
Zabbix架构:
SERVER:
Zabbix软件的核心组件
数据库:
所有配置信息以及 Zabbix 采集到的数据都被存储在数据库中。
WEB 界面:
图形化展示监控信息
PROXY:
分担单个Zabbix server的负载。Zabbix proxy 需要使用独立的数据库。当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。
AGENT:
用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server,Zabbix agents 的极高效率缘于它可以利用本地系统调用来完成统计数据的采集。
Zabbix Java gateway
1) 从 Zabbix 2.0 开始,以 Zabbix 守护进程方式原生支持监控 JMX 应用程序就存在了,称之为“Zabbix Java gateway”。
2) Java gateway 是轻量级的,并不需要数据库。
3) 默认情况下,Zabibx server 不会启动与 JMX 监控相关的任何进程。但是,如果要使用它,则必须指定 Java pollers 的 pre-forked 实例数。 同样的,您也可以指定常规的 pollers 和 trappers。
4) 默认情况下,Java gateway 的日志会记录到 /tmp/zabbix_java.log 文件中,日志级别为“info”。有时候这些信息是不够的,需要将日志级别修改为“dubug”。为了提高日志记录级别,需要修改lib/logback.xml 文件并将 <root> 标记的 level 属性更改为“debug”:完成调试后,可以将日志记录级别修改回“info”。
5) Zabbix 的所有配置信息都存储在 Server 和Web前端进行交互的数据库中。例如,当你通过Web前端(或者API)新增一个监控项时,它会被添加到数据库的监控项表里。然后,Zabbix server 以每分钟一次的频率查询监控项表中的有效项,接着将它存储在 Zabbix server 中的缓存里。这就是为什么 Zabbix 前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。
Zabbix API:
1) Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。
2) Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,
3) 该API包含一组独立的方法;
4) 客户端和API之间的请求和响应使用JSON格式进行编码。
案例:
部署zabbix后端:
创建数据库:
导入数据库:
启动服务:
配置登录数据库的用户和密码:
查看服务是否启动:
安装客户端:
部署前端:(需要通过动态同步数据,需要安装PHP组件)
阿里云可以下载:
修改时区:
server1 的agent 配置
登陆前端:
Admin 的初始密码 : zabbix
创建 server1 监控
添加监控主机 server2 :
server2 的agent 配置
前端添加 server2 监控
对于前端出现乱码的解决方法,替换字体文件
自动发现:
自动注册:
zabbix API 的使用:
监控Nginx服务:
nginx 安装与配置:
添加 server3 nginx 监控项:
创建server3 nginx 监控项图形:
监控数据库:
数据库配置:
安装与配置percona:
导入模板:
效果:
对java应用tomcat的监控:
tomcat 安装与配置:
监控端安装与配置 zabbix-java-gateway 组件:
监控端配置:
效果:
客户端主动:
全克隆模板:
批量更新克隆模板的监控项,类型为主动式:
替换原模板:
效果:
分布式监控(代理):
代理主机部署:
被监控部署:
前端部署:
效果: