关于Mirantis OpenStack开源组件LMA工具链相关问题整理

简单介绍:

LMA组件全称为Logging, Monitoring, and Alerting toolchain of Mirantis OpenStack,是服务于Mirantis OpenStack的一套监控运维组件。其通过collectd实现采集,通过elasticsearch-kibana实现日志分析,通过influxdb-grafana实现集群状态可视化,通过nagios实现告警信息生成及消息推送。架构如下图所示:

关于Mirantis OpenStack开源组件LMA工具链相关问题整理_第1张图片

 

因为作者采用的是基于Fuel 9.2 部署的 LMA 1.0.0.x 版本,而非最新的基于MCP(用不起)的最新版本LMA。因此在使用过程中发现了一些问题,特此记录,以方便大家过坑。(主要是方便自己^^)

附上自动化部署,有需要的可以直接使用:MOS的离线自动化准备脚本。

 

已知问题:

1. Kibana页面兼容性问题:

经测试,火狐浏览器的兼容性好于谷歌浏览器。

 

2. LMA组件移除后,Fuel界面连接不消失的问题:

问题描述:

当任意LMA角色(包括 influxdb-grafana, elasticsearch-kibana、nagios)节点部署,且节点数量仅有1个时。若移除该节点,此时应当认为集群下已无任何LMA角色节点,但是Fuel的集群主界面关于LMA的链接图标依旧存在。此时若再次部署,则会生成新的链接图标。

 

问题原因:

经查看数据库发现数据的记录确实是重复的,应该是移除实现代码的问题。

 

解决办法:

既然是重复的数据,删除即可,具体方法如下:

1. 登录fuel的后台;

2. 使用默认的用户连接postgres数据库:

sudo -u postgres psql

3. 在postgresql命令行下,切换至nailgun数据库:

\c nailgun

4. 在postgresql命令行下,查看插件的链接信息:

select * from cluster_plugin_links;

    此查询语句执行后,就能看到重复的数据信息。

5. 删除重复的插件链接信息:

delete from cluster_plugin_links where id = xxx;

   注:曾尝试将'hidden'字段设置为true,但是事实证明并不管用。。。因此还是删吧。各位再执行删除的时候千万小心,另外删之前备份下数据绝对是好习惯。

6. 这时候再看Fuel界面,就无问题了。

 

3. 如何访问InfluxDB:

默认 influxdb 是绑定管理网ip的,因此想要从公网访问数据库的话,需要先做下ip转发:

iptables -t nat -A PREROUTING -d {公网ip} -p tcp --dport 8086 -j DNAT --to-destination {管理网ip}:8086

 

数据库连接信息在 Fuel 的设置菜单中:

关于Mirantis OpenStack开源组件LMA工具链相关问题整理_第2张图片

 

建议使用influxdb studio工具(有钱的大佬可以使用dbeaver企业版):

下载地址:https://github.com/CymaticLabs/InfluxDBStudio/releases

关于Mirantis OpenStack开源组件LMA工具链相关问题整理_第3张图片

 

4. 如何完整移除节点:

collectd:

按照官方文档实施即可。

 

influxdb-grafana:

节点被移除之后,部分节点的监控信息无法被移除,这里以比较典型的cinder举例。

首先,通过如下命令,能获得cinder下已经down掉的服务:

cinder service-list

其次,使用如下命令,能停用已经down掉的服务:

cinder service-disable   

OK到这里,问题来了。此时被disable的节点服务的信息依旧会被LMA采集并发送到influxdb。而grafana默认的查询语句,只要对应节点的服务不是up状态,就会被计算到非健康情况下。那么这时候能采用的方法就是完全移除掉disabled和down掉的节点服务信息。

使用如下命令,移除节点服务信息:

cinder-manage service remove  

上述命令仅在节点还存在的时候生效。假如此时节点已经被完全移除,且信息依旧存在,上述命令执行会抛出以下异常:

Service cinder-backup could not be found on host xxxxx

到这里,博主目前已知的解决方法只有2种,但是个人感觉都不太好:

方法一:

直接操作数据库,删除数据。例如:

mysql -e "update services set deleted = 1 where host like 'node-2%' and disabled = 1 " cinder

此方法操作过于暴力,万一操作不慎,对于集群会是毁灭性打击,没有强悍的OpenStack技术人员不建议这么搞。

 

方法二:

官方文档的方式,即自行修改Grafana的查询语句。

例如:

但本人表示那么多图表,一个一个改太麻烦了。

所以希望如果有有经验的高人,能指导一下。

你可能感兴趣的:(openstack,fuel,cloud)