如何配置 Topbeat並使用 Kibana 進行集中化檢視

系列教程
這是在 Ubuntu 14.04 上使用 ELK 集中化日誌系列教程中的第二篇。該系列共有4篇,其他2篇敬請期待~
關於 Topbeat
Topbeat 定期收集系統信息如每個進程信息、負載、內存、磁碟等等,然後將數據發送到 Elasticsearch 進行索引。當你使用 ELK Stack 的時候, Topbeat 可以作為其他服務監控系統(如 Prometheus 或 Statsd )的替代品。
寫在前面
這篇文章建立在你已經按照本系列教程的第一篇文章完成了 ELK Stack 的配置,如果你還沒有 ELK Stack 的配置,請你先按照第一篇文章配置好 ELK Stack 之後,再參照這篇文章進行 Topbeat 的配置。
我們同時假定除了你的 ELK 伺服器之外,你至少有一台運行著 Ubuntu 14.04 的機器用於收集系統信息。
在 ELK 伺服器上裝載 Kibana 儀錶盤
注意:這一部分的步驟其實包含於本系列的第一篇文章中,為了防止你在配置 ELK Stack 的時候不小心跳過了這一步,我們也將其納入到這篇文章中。
Elastic 提供了幾種 Kibana 的儀錶盤樣例和 beat 索引模式,來幫助你開始使用 Kibana。雖然在我們的教程中不會使用儀錶盤,但是不管怎麼我們都可以用它包含的 Filebeat 和索引模式載入它們。
首先,下載儀錶盤樣例,存到你的 home 目錄:
cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip
安裝 unzip 包:
unzip beats-dashboards-*.zip
然後載入儀錶盤樣例、可視化和 beat 索引模式到 Elasticsearch:
cd beats-dashboards-*
./load.sh</code></p>
這些是剛才我們載入的索引模式:
- [packetbeat-]YYYY.MM.DD
- [topbeat-]YYYY.MM.DD
- [filebeat-]YYYY.MM.DD
- [winlogbeat-]YYYY.MM.DD
在 Elasticsearch 中導入 Topbeat 引索模板
因為我們將通過 Topbeat 來向 Elasticsearch 中導入日誌文件,引索模板能夠幫助 Elasticsearch 智能識別 Topbeat 發過來的欄位。
首先,下載 Topbeat 引索模板到你的根目錄:
cd ~
curl -O https://raw.githubusercontent.com/elastic/topbeat/master/etc/topbeat.template.json
然後使用以下命令載入模板
curl -XPUT 'http://localhost:9200/_template/topbeat' -d@topbeat.template.json
現在,你的 ELK 伺服器已經準備好接收從 Topbeat 發來的信息了。下面,讓我們一起在客戶機上面配置 Topbeat 。
配置 Topbeat(添加客戶端伺服器)
如果想要你的客戶端向 ELK 伺服器上的 Logstash 發送數據,那麼就在它上運行下列步驟吧。
注意:下列步驟只適用於 Ubuntu 或者 Debian 系的客戶端,如果你的客戶端是 Red Hat 系的,那請參照這篇教程。
1、複製 SSL 安全證書
注意:如果你的客戶端已經連接過你的 ELK Stack 伺服器並擁有正確的 SSL 安全證書,那麼你可以跳過這一步。
從你的 ELK Stack 伺服器上拷貝 SSL 安全證書 到你的客戶端中。
scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp
提交你的登錄憑據之後,請確認 SSL 安全證書已經正確拷貝。然後回到你的客戶端上,複製剛剛的 SSL 安全證書到他所屬的目錄下( /etc/pki/tls/certs )
sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
完成了上述步驟之後,我們就可以開始安裝 Topbeat 了。
2、安裝 Topbeat 包
在客戶端上確認 Beats 的源列表( Beats source list )存在,步驟如下:
打開 /etc/apt/sources.list.d/beats.list
以進行編輯
sudo vi /etc/apt/sources.list.d/beats.list
確定下面這一行存在,如果不存在,請添加後保存退出:
deb https://packages.elastic.co/beats/apt stable main
Topbeat 和 Elasticsearch 還有 Filebeat 一樣使用 GPG 許可,它能通過下面的命令進行安裝
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
然後執行下列命令安裝 Topbeat 包
sudo apt-get update
sudo apt-get install topbeat
安裝好 Topbeat 之後,下一步就是配置啦!
3.配置 Topbeat
在這一步中,我們將配置 Topbeat 使它連接到 ELK 伺服器上的 Logstash 上去。這一節中我們將通過修改 Topbeat 的默認配置文件來完成對 Topbeat 的配置。
在客戶端上打開 Topbeat 的配置文件:
sudo vi /etc/topbeat/topbeat.yml
注意:Topbeat 的配置文件是 YAML 格式,所以其對格式的要求非常高,注意要採用與原配置文件相同的縮進格式。
在該配置文件的首部是 input
小節,在這一小節中,你需要指定你要把什麼類型的統計數據傳到你的 ELK 伺服器上,並且指定這些統計數據的單位。在這裡我們將使用默認配置,但如果有需要的話你也可以自己做出更改。
在 output
小節下面,找到內容為 elasticsearch:
的一行,其下面的代碼配置了 Elasticsearch 輸出,這是我們不需要用到的,刪除或者注釋掉他們(直到 #logstash:
的上面一行)。
然後找到被注釋掉的 Logstash 輸出語句 #logstash:
,去掉它的注釋使它能夠作用。
同時,去掉 hosts: ["localhost:5044"]
的注釋,並且將 localhost
換成你 ELK 伺服器的 IP 地址,實例如下:
### Logstash as output
logstash:
# The Logstash hosts
hosts: ["ELK_server_private_IP:5044"]
這段代碼配置 Topbeat 使其通過 5044 埠連接到你 ELK 伺服器上的 Logstash 。需要注意的是,這個埠號我們應與我們在上一篇文章中設置的一致。
接下來,找到 tls
小節,並去掉它的注釋。然後去掉標識為 certificate_authorities
一行的注釋,並將其值更改為 ["/etc/pki/tls/certs/logstash-forwarder.crt"].
,更改後的配置文件應該是這樣的:
tls:
# List of root certificates for HTTPS server verifications
certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
這段代碼配置 Topbeat 使用我們在上一篇文章中創建的 SSL 安全證書進行連接。
現在,讓我們重啟 Topbeat 使我們的改變生效:
sudo service topbeat restart
sudo update-rc.d topbeat defaults 95 10
如果你不確定你的配置是否正確,請與示例文件進行對比。
完成了上述這些之後,你的客戶端就已經在向 ELK 伺服器上的 Logstash 發送數據了!在你的每一台客戶端上重複上述步驟。
測試 Topbeat 是否正確安裝
如果你的 ELK Stack 已經正確配置,那麼你客戶端上的 Topbeat 應該已經開始往你的 ELK 伺服器上的 Logstash 發送日誌文件,而 Logstash 應該把上述的日誌文件加上時間戳在 Elasticsearch 中創建 topbeat-YYYY.MM.DD.
這樣的餓索引。
在你的 ELK 伺服器上面執行下列命令以確定 Elasticsearch 確實在以詢問 Topbeat 引索的方式接收信息。
curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'
你將得到這樣的輸出:
{
"_index" : "topbeat-2016.02.01",
"_type" : "process",
"_id" : "AVKeLSdP4HKUFv4CjZ7K",
"_score" : 1.0,
"_source":{"@timestamp":"2016-02-01T18:51:43.937Z","beat":{"hostname":"topbeat-01","name":"topbeat-01"},"count":1,"proc":{"cpu":{"user":0,"user_p":0,"system":50,"total":50,"start_time":"12:54"},"mem":{"size":0,"rss":0,"rss_p":0,"share":0},"name":"jbd2/vda1-8","pid":125,"ppid":2,"state":"sleeping"},"type":"process","@version":"1","host":"topbeat-01"}
}
在上面的輸出中,如果 total
顯示為 0 ,那麼表示 Elasticsearch 沒有任何 Topbeat 的數據,你需要重新安裝並查錯。
反之,如果你得到了像上面一樣的輸出,那麼請繼續下一步。
連接 Kibana
當你在所有的客戶端上面都完成了 Topbeat 配置之後,你難免會想要比較各個客戶端的狀態,讓我們使用 Kibana 吧!
在任意一個瀏覽器,在地址欄鍵入你 ELK 伺服器的 FQDN 或者公網 IP ,登陸之後你將會看到 Kibana Discover 頁面(如下圖所示)。
從左側邊欄選擇明為 [topbeat]-YYY.MM.DD
的記錄,在右側查看記錄詳情。
在這個頁面你可以搜索你的 Topbeat 記錄。
如果你想要查看我們之前導入的 Topbeat 儀錶盤,那麼請按下面的方式操作:
點擊位於頂部的 Dashboard
按鈕,然後點擊 Load Saved Dashboard
,然後進入列表的第二頁,點擊 Topbeat-Dashboard
。
結語
現在,你的整個系統都由 Elasticsearch 和 Logstash 集中管理,你可以通過 Kibana 動態監視他們。
譯文鏈接: http://www.linuxstory.org/how-to-gather-infrastructure-metrics-with-topbeat-and-elk-on-ubuntu-14-04
轉載請註明出處,否則必究相關責任!
Expression of profibrotic and renin angiotensin system RAS genes in the left ventricle LV of Dahl salt sensitive DS rats in the five experimental groups at 11 weeks of age finasteride online worldwide delivery Br J Surg 2004; 91 6 699 704