你想了解你的Docker容器里面都發(fā)生了些什么事情么?你有沒想過使用一個合適的Beat去讀取Docker的指標(biāo)然后把這些信息都存放到ElasticSearch?那么Dockbeat這個方案可能挺適合你的。
為了能使得資源被最大化的利用,我們會把應(yīng)用部署到基于Docker的大數(shù)據(jù)基礎(chǔ)設(shè)施里面。到了2015年,我們第一次使用ELK去監(jiān)控我們整個環(huán)境,包括主機、網(wǎng)絡(luò)、用戶等等。可惜的是我們卻沒有特別好的辦法去監(jiān)控Docker容器,直到Beats項目發(fā)布之后
Beats允許我們構(gòu)造一個非常輕量級的數(shù)據(jù)傳輸客戶端,然后能夠很容易的把數(shù)據(jù)傳輸?shù)紼lasticSearch,然后通過Kibana進行可視化分析。然后,我們就想,要不創(chuàng)建一個我們自己的Beat來采集Docker的信息吧
從Docker1.5開始,Docker提供了一些新的API可以幫助我們采集Docker的指標(biāo)信息。這個API能夠?qū)崟r的收集CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤IO等性能指標(biāo)。所以我們就有辦法基于Beats和Docker新提供的API創(chuàng)建出我們自己的Beat:Dockbeat了
DockBeat是如何運作的
Dockbeat是用于監(jiān)控Docker的,它從Docker暴露出來的API進行指標(biāo)的收集,然后把他們送到LogStash或者直接送到ES。由于它非常輕量,所以對服務(wù)器的性能影響非常小,收集完后就能在Kibana上面進行可視化分析了。DockBeat提供了五種不同類型的信息收集功能:
- Container:收集容器自己的屬性
- CPU:收集容器使用的CPU指標(biāo)
- Net:容器使用的網(wǎng)絡(luò)指標(biāo)
- Memory:容器使用的內(nèi)存指標(biāo)
- Blkio:容器的IO訪問指標(biāo)
如何使用Dockbeat
和其他Beat一樣,把配置文件配好,直接啟動就行,Beat這點倒是挺不錯的
延伸
DockBeat在收集指標(biāo)這個沒什么特別的,反正Docker給了API調(diào)用就是了,但是對于它究竟怎么獲取的日志,少年我還是比較感興趣的。畢竟Docker自帶的logdriver實在。。。太難用了(1.08),性能不好,指定文件也麻煩,多行日志什么的居然都沒的配置。然后看了半天之后。。。那個log指的是收集dockbeat自己的錯誤日志。。那就是,并沒有什么用=。=