使用zabix结合 实现一套监控报警装置
不管是web开发还是大数据开发
我们的离线项目还是实时项目也好,都需要把我们的应用提交到我们服务器或者容器中去执行
整个应用过程中怎么保证线上整体环境的稳定运行
监控很重要
现在比较主流的就是 普罗米修斯以及zabix
我要做一个监控工具,需要具备这么几个功能
1. 指标的采集
2. 信息的存储
3. 通过界面实现可视化功能 对我们相关指标以图形的功能进行展示
4. 一旦出现问题有报警功能
zabix 本身就可以实现指标采集 存储 以及展示和报警
zabix 和我们grafa以及瑞祥云进行结合 来完成我们整个监控系统
我们的应用程序需要在当前环境下去执行
使用监控系统对运行环境来进行监控
使用zabix 对运行环境进行监控,在整个监控过程中
zabix 需要完成这些功能
1. 对指标进行采集
2.对数据进行存储
3.使用图形对相关指标进行展示
4.如果一旦发生问题 需要对相关责任人进行报警 比如说发邮件
这个是zabix本身的功能
第一个部分就是展示部署
zabix 本身支持 我要想获取指标 我可以主动去拉取,一个是你可以报告
zabix可以监控硬件、监控硬件比普罗米修斯强大一些
普罗米修斯可以上云(本身就是基于go语言开发的)
我现在要在102 103 104(我需要在这3台节点上部署zabix-agent)
他会获取到相关信息的指标的,然后吧收集到的指标信息 发送给zabix-service
zabix的基础架构,接下来对zabix和普罗米修斯的对比。普罗米修斯是go语言开发
如果我们企业使用的是容器的化 呢么puluomixiusi
如果是对传统服务器进行相关监控 呢么这个时候可以使用zabix
如果我们呢监控的是物理机 呢么此时用zbaix是没有问题的
如果现在上云了 就是用普罗米修斯,因为普罗米修斯在设计的时候就支持云环境的监控
我比如说我要对物理机做监控 我就可以用zabix,我可以用普罗米修斯 如果上云的化
部署 安装 集群规划
zabix包含这4部分 这4部分分别在那个节点
zabix-service来负责收集
mysql 进行存储
zabix-web 负责展示
可视化来展示我们的指标
这是关于我们集群的规划
所以我们要在3台节点上安装zabix-agent
然后再102 节点上安装mysql作为存储
zabix-web 作为展示
之后启动zabix 可以通过ps -ef 查看进程 来看我们服务启动是否正常
之后我们可以连接zabix服务器
并且登录zabix服务
看到这个页面说明zabix安装正常,接下来 我们用一个真实的场景 来完成 zabix对指标的监控
我们以监控hdfs集群为例子
参照集群规划监控102 103 104
zabix实战
主机:102,103,104 就是我们要监控的主机
监控项:我要监控什么指标 我要在这3个节点 上去监控dataNode进程
触发器: 阈值
动作 发邮件 比如说指标发生异常了
比如说 我此时要求监控数据的每一个node节点的dataNode=1 如果小于1 就代表有异常了
此时就需要报警通知了
我们配置我们的主机为hadoop102,主机完毕之后我们要配置我们的监控项
当前这个主机上面的监控项有那些指标
目前我现在只是对102的主机进行监控,但是监控这个主机上的那些指标
创建监控项
比如说我此时要监控目标主机上dataNode的进程
我此时只是监控进程数量=1 就可以 如果小于1 的化就代表有问题了
当我们监控指标 满足什么条件时候 我要做什么操作
触发器和动作
我们现在监控的是102 data节点上 的dataNode的数量
我此时会在这里配置一个报警事件
触发器 如果一旦满足这个条件了 我想给相关责任人发送邮件
我们对zabix配置了
主机
触发项
事件
动作
关闭data-node节点,就会触发报警系统,然后 我就会收到通知邮件
我们也可以基于grafa来做 这个图形展示
如果我要用grafa做的化,我大概要那些配置 dashboard 很明显此时的数据应该从zabix中来 呢么我们现在要做的就是将grafa集成到zabix中
我们下来要做的是使用grafa做数据的展示
我们现在想使用grafa 把我们102 103 104 这3台机器上 他的一个dataNode进程情况进行展示
这样就可以了
目前我们的报警信息主要是通过邮件方式发送,我们可以使用zabix 或者gfa 或者第三方的告警平台来进行集成。会提供更多的告警媒介打电话,发短信 发微信之类,通过zabix+瑞祥云来实现告警信息的发送一旦接收到来自zabix的告警信息