安裝log.io 實時日誌監控工具


日誌是個好東西,對技術人員來說寫日誌能紀錄成長,分享經驗;對機器來說紀錄日誌能及時發現錯誤,為日後的排錯提供信息。如果還在一台機器上用tail -f監聽單個日誌或者用multitail監聽多個日誌也太out了,我們需要一種工具能紀錄上百台機器、不同類型的日誌,並最好能匯集到一個界面裡方便查看,最好還是實時的。log.io就是這樣一個實時日誌監控工具,採用node.js + socket.io開發,使用瀏覽器訪問,每秒可以處理超過5000條日誌變動消息。有一點要指出來的是log.io只監視日誌變動並不存儲日誌,不過這個沒關係,我們知道日誌存儲在哪個機器上。

和其他的監控工具一樣,log.io 也採用服務器-客戶端的模式。log.io 由兩部分組成:server 和harvester, server 運行在機器A(服務器)上監視和紀錄其他機器發來的日誌消息;log harvester 運行在機器B(客戶端)上用來監聽和收集機器B上的日誌改動,並將改動發送給機器A,每個需要紀錄日誌的機器都需要一個harvester.

在機器A 和B 上
因為log.io 基於node.js,所以在服務器和客戶端都要安裝node.js,這裡採用編譯安裝的辦法,首先安裝需要的依賴包: $ sudo apt-get install g++ make git libssl-dev pkg-config 下載node.js 源代碼,編譯並安裝: $ wget http://nodejs.org/dist/v0.8.14/node-v0.8.14.tar.gz $ tar zxvf node-v0.8.14.tar.gz $ cd node-v0.8.14/ $ ./configure $ make $ sudo make install 安裝NPM: $ curl https://npmjs.org/install.sh | sudo sh 安裝log.io(包含了log server 和log harvester) $ sudo npm config set unsafe-perm true $ sudo npm install -g --prefix=/usr/local log.io 在機器A 上啟動server
$ sudo log.io server start 在機器B 上配置和啟動harvester
server 用來監聽各個機器發來的日誌消息,harvester 用來把本機的日誌發給server,所以harvester 配置的時候需要指定server 的主機地址(或域名)。如何告訴harvester 哪些日誌需要監控呢?log_file_paths 就是指定日誌路徑的地方。下面的配置是harvester 把auth.log 和harvester.log 這兩個日誌的改動發送給server: $ sudo vi /etc/log.io/harvester.conf exports.config = { // Log server host & port server: { host: 'log.vpsee.com', // 也可以用IP 地址 port: 8998, }, // Watch the following log files, defined by label:path mappings log_file_paths: { logio_auth: '/var/log/auth.log', logio_harvester: '/var/log/log.io/harvester.log', }, instance_name : 'log_node_1' } 啟動harvester: $ sudo log.io harvester start 測試
打開瀏覽器訪問log server 所在的機器A,域名是log.vpsee.com(也可以用IP 地址),端口是8998:

留言

這個網誌中的熱門文章

Json概述以及python對json的相關操作

Docker容器日誌查看與清理

遠程控制管理工具ipmitool