Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控

记录了学习过程,官方文档地址http://book.open-falcon.org/zh_0_2/usage/getting-started.html

另外还看了Open-falcon作者的写的设计理念的文,见open-falcon编写的整个脑洞历程

1 主机监控

1.1 主机配置

打开Open-falcon的前端页面http://IP地址:8081,可以看到一个登陆界面,先注册一个名为root的root账户,然后登陆

切换到Dashboard,可以看到左下方有一系列的主机名,只要主机启动了open-falcon的agent端并且配置正确,open-falcon就能自动地获取到主机,主机是用Endpoint表示的,暂且理解为一个主机的标识

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第1张图片

这里的Endpoint,open-falcon会根据agent客户端目录下的config/cfg.json配置的hostname来决定,我这里默认的是localhost.localdomain

当前的Endpoint是IP地址,现在把cfg.json的这一项改成“open-falcon-server”

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第2张图片

重启客户端,之后就能看见新的endpoint,原来的endpoint数据就终止了。如果客户端的cfg.json里没有配置hostname,open-falcon会用系统的hostname

总结:

  1. cfg.json的hostname配置决定了Endpoint
  2. cfg.json的默认hostname配置为system.hostname
  3. cfg.json的hostname配置为空字符串,Endpoint也是system.hostname,就是/etc/sysconfig/network里面配置的那个,就是hostname这个命令的返回值

 Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第3张图片

另外,使用http://IP地址:1988,可以看到一个基本的主机信息界面,不要使用https

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第4张图片

1.2 监控项

现在来看dashboard右侧的Counters,和Zabbix的Item类似,基本就是监控项的意思。Open-falcon的监控项基本不需要自己配置,而是由agent自己决定,但是某些特殊的监控项还是需要手动配置的(例如端口监控,原因见作者的编写脑洞历程)

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第5张图片

选中左侧的Endpoint,再选中要画图的Counters,点击看图,选择喜欢的视角,这里选择了Endpoint视角,可以按监控项出图

如果只要看一个监控项的图,也可以直接点击Counter的名字,就可以出图了

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第6张图片

Endpoint视角,每个图对应一个监控项,所有主机的数据都画在上面

这里可以看到,上面切换hostname的过程,当新的Endpoint生效,原先的Endpoint数据就终止了

  Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第7张图片

1.3 主机组

Open-falcon的模板和主机组是绑定的,这里面的模板不再包含一组监控项,而是直接包含了一些类似Zabbix的Trigger的东西

模板绑定主机组后,里面的每个告警策略都会对主机组里的每个主机生效,目前暂时无法完成一些细粒度的操控

现在切换到HostGroup,新建一个主机组,加号按钮表示创建,左边的框写主机组名字,也是很极简主义了

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第8张图片

现在往组里添加主机

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第9张图片

 Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第10张图片

这里填写主机名的Endpoint,务必要与Dashboard那里的Endpoint一直

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第11张图片

这个提示界面,一开始我还以为failure了,仔细看看,他会在两个框里列出成功和失败的添加

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第12张图片

1.4 模板

添加模板,类似主机组的极简界面

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第13张图片

这里配置一个端口报警,作为实验,记得添加报警组,配置完两个Save按钮都点一点。端口1000上本来就没有服务,就会触发端口1000异常报警。官方给的报警示例是6080端口,我嫌弃麻烦,还要改配置

所有agent上报的metric,官方贴心地给出了一个连接,表示所有metric可以在这里找https://github.com/open-falcon-archive/agent/tree/master/funcs

我点进去看是agent源码……行吧

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第14张图片

最后,把这个模板绑定到主机组,在HostGroups界面

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第15张图片

在红圈里的框框输入模板名字,然后Bind

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第16张图片

 回到Dashboard界面,可以从Counter里看到我们刚配置的端口报警,现在点进去没有数据的,大概等个60秒

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第17张图片

 等到出图后

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第18张图片

点Alarm-dashboard

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第19张图片

1.5 Nodata配置

这一步我踩了一个巨大的坑,具体细节见我这篇博文

Open-falcon的nodata模块踩坑经历——agent.alive/pdl=falcon,module=nodata一直为-1的问题

Nodata这个组件的作用呢,比如,agent挂掉了,那么agent.alive返回的肯定是no data,这个无法用大于小于0来判断,所以需要Nodata组件

在Nodata界面点击加号添加,配置一下,基本都是默认配置,这样当机器agent挂掉,agent.alive返回的就是-1,而不是nodata

如果你跟我一样还没有设置tag,现在进行到这一步,就不要写tag,不要按官网教程写module=nodata,pdl=falcon

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第20张图片

 

现在把agent关掉

#关闭agent 
cd ~/open-falcon  #切换到工作目录
./open-falcon stop agent

等一会,大概三分钟,打开agent.alive的图,可以看见如下曲线,agent挂了的时候nodata会给他补-1

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第21张图片

 

现在就可以利用这个counter报警了,再新建一个模板(你用之前那个也行)

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第22张图片

 不要忘记把模板绑定到主机组,然后静静等待,报警很快就来

另外,官方文档曾经提到nodata设置的周期必须和原监控指标一致

我尝试了一下把这个nodata的周期设置为10s,可能是因为时间比较短,我没有发现数据上报有问题,留待日后研究

3 集群聚合

这个我理解就是进行一些集群级别的数据分析处理,比如一个集群的平均cpu使用率等等

为了严肃对待我又开了一个虚拟机,安好了agent,姑且认为他们两个是一个集群

注意新机器的agent配置文件要修改,IP地址都要改成open-falcon-server那台机器的IP,hostname也要修改,不然就无法区分两台机器了

启动agent即可,看一下日志,没有报连接错误就对了

没有错误是不可能的

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第23张图片

这种no route to host错误,我估计是防火墙的端口没有开

去server那台机子上,打开/etc/sysconfig/iptables文件,添加6030、8433端口的入站规则,并重启防火墙

#添加-A INPUT -p tcp -m state --state NEW -m tcp --dport 端口号 -j ACCEPT
sudo vim /etc/sysconfig/iptables

#重启防火墙
sudo service iptables restart

看一下日志,开始传递数据了

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第24张图片

Dashboard也可以看到新加入的机器(这台机器的1988页面打不开,我猜测是没有部署前端组件的问题) 。照上面的方法加入主机组

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第25张图片

现在开始集群聚合

 Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第26张图片

创建了这样的监控项,统计集群里agent的存活率,就是统计agent没有挂掉的机器比例,之所以分母设置为2而不是$#,因为如果某台agent挂了,$#就不会去统计他,这样这个统计项永远都是100%、

不过这样写死集群数量也不太好,有个宏系统就好了

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第27张图片

配置好之后,看一下./open-falcon monitor aggregator的日志,比较慢,等到日志写了开始发送聚合数据再去看,如下图,他会把分子分母的值,还有计算结果写在日志里

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第28张图片

看一下新出来的一个虚拟Endpoint,servers-aggregator,以及新监控配置agent.palive/type=percent

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第29张图片

现在关掉一个agent,不能关掉aggregator所在主机的agent,因为aggregator也要通过agent上报数据

看一下图,完美的一个折线,说明集群agent存活率掉到了50%

Centos6.10下Open-falcon学习记录(零)——主机监控、Nodata组件、集群监控_第30张图片

你可能感兴趣的:(Open-falcon学习)