關於Mirantis OpenStack開源元件LMA工具鏈相關問題整理
簡單介紹:
LMA元件全稱為Logging, Monitoring, and Alerting toolchain of Mirantis OpenStack,是服務於Mirantis OpenStack的一套監控運維元件。其通過collectd實現採集,通過elasticsearch-kibana實現日誌分析,通過influxdb-grafana實現叢集狀態視覺化,通過nagios實現告警資訊生成及訊息推送。架構如下圖所示:
因為作者採用的是基於Fuel 9.2 部署的 LMA 1.0.0.x 版本,而非最新的基於MCP(用不起)的最新版本LMA。因此在使用過程中發現了一些問題,特此記錄,以方便大家過坑。(主要是方便自己^^)
已知問題:
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 的設定選單中:
建議使用influxdb studio工具(有錢的大佬可以使用dbeaver企業版):
下載地址:https://github.com/CymaticLabs/InfluxDBStudio/releases
4. 如何完整移除節點:
collectd:
按照官方文件實施即可。
influxdb-grafana:
節點被移除之後,部分節點的監控資訊無法被移除,這裡以比較典型的cinder舉例。
首先,通過如下命令,能獲得cinder下已經down掉的服務:
cinder service-list
其次,使用如下命令,能停用已經down掉的服務:
cinder service-disable <hostname> <binary>
OK到這裡,問題來了。此時被disable的節點服務的資訊依舊會被LMA採集併發送到influxdb。而grafana預設的查詢語句,只要對應節點的服務不是up狀態,就會被計算到非健康情況下。那麼這時候能採用的方法就是完全移除掉disabled和down掉的節點服務資訊。
使用如下命令,移除節點服務資訊:
cinder-manage service remove <binary> <host>
上述命令僅在節點還存在的時候生效。假如此時節點已經被完全移除,且資訊依舊存在,上述命令執行會丟擲以下異常:
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的查詢語句。
例如:
但本人表示那麼多圖表,一個一個改太麻煩了。
所以希望如果有有經驗的高人,能指導一下。