基於ELK的OpenStack日誌獲取和分析 [2] - Kibana使用

作者: 趙怡


a) 安裝、配置Kibana

安裝:

添加kibana的yum源:

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

/etc/yum.repos.d/kibana.repo

[kibana-4.5]

name=Kibana repository for 4.5.x packages

baseurl=http://packages.elastic.co/kibana/4.5/centos

gpgcheck=1

gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch

enabled=1

 

# 通過yum安裝kibana

# sudo yum install kibana -y

 

配置:

 

啓動:

# sudo systemctl daemon-reload

# sudo systemctl enable kibana.service

# sudo systemctl start kibana.service

 

使用:

先可以通過以下命令確認elastic search是否已經獲取到logstash上的index數據信息。

# curl 'localhost:9200/_cat/indices?v'

health status index         pri rep docs.count docs.deleted store.size pri.store.size

yellow open   .kibana         1   1          6            1     30.3kb         30.3kb

yellow open   nova-index      5   1    2674455            0    721.6mb        721.6mb

yellow open   neutron-index   5   1   32665606            0     10.9gb         10.9gb

 

WEB頁面訪問: http://KIBANA_IP:5601

剛進入頁面時,  會要求你輸入index名字, 可以填入neutron-index, 以及nova-index, 並按CREATE。



進入Discover頁面, 查看歷史以及實時的LOG, 其中:

1. 右上角可以配置頁面刷新速率以及顯示數據的時間段

2. 上方有一個搜索欄, 可以填入查詢語句進行內容過濾, 對於log源, 一般可以通過ERROR OR WARN* OR TRACE

過濾出ERROR, WARN, TRACE的log。

3. 左側可以選擇需要顯示的列表字段, 以及各字段中出現頻率最高的內容。字段主要有: 消息獲取時間, log消息從哪個host來的, log文件路徑, log類型, log消息的具體內容等等。

 

配置頁面數據刷新時間:

 

 

配置數據顯示的時間段:

 

 

 頁面數據過濾和列表顯示項:

 

 

 通過Visualize界面可以根據數據創建各種圖表:



 

2.  如何在Python中調用ELK接口

ElasticSearch提供了完全的RestAPI接口, 可以對接第三方軟件。

API接口文檔託管在GITHUB上: https://github.com/elastic/elasticsearch/tree/master/rest-api-spec/src/main/resources/rest-api-spec/api

如果使用Python來調用ElasticSearch做搜索, 可集成pyelasticsearch庫來實現, 示例如下:

#!/bin/python
from pyelasticsearch import ElasticSearch
 
es = ElasticSearch('http://127.0.0.1:9200/')
result = es.search('ERROR OR WARN* OR TRACE', index='neutron-index')
print result

執行:

# ./es-search.py

{u'hits': {u'hits': [{u'_score': 0.9617385, u'_type': u'neutron', u'_id': u'AVZ9KOqvuRi2TVAok7PV', u'_source': {u'type': u'neutron', u'@timestamp': u'2016-08-12T05:10:48.133Z', u'host': u'EXTENV-10-65-0-25', u'path': u'/var/log/neutron/server.log', u'message': u'2016-08-12 13:10:48.119 26577 WARNING keystonemiddleware.auth_token [-] Identity response: {"error": {"message": "An unexpected error prevented the server from fulfilling your request.", "code": 500, "title": "Internal Server Error"}}',  .....}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章