munin是乙個網路監控軟體。
munin是乙個server-nodes的結構,乙個server對應多台node,每台node就是被監控的節點,server是統計node的資料並進行繪圖生成html的節點。server的配置檔案是:/etc/munin/munin.conf ,每個node都有各自的配置檔案:/etc/munin/munin-node.conf
先看一下最後的統計效果:
如何安裝:
談及為什麼使用munin,一定會提到的一點:munin能讓使用者非常快捷方便的編寫和使用外掛程式。當需要定製某些特製的功能的時候,寫乙個外掛程式的代價非常小。外掛程式就是乙個指令碼,可以使用php,bash,perl等語言進行編寫。下面以乙個外掛程式,使用php語言,完成統計redis的使用記憶體為例:
1 在有redis的機子上(192.168.0.19)安裝munin-node
2 進入/usr/share/munin/plugins/ (其實在任意乙個目錄都是可以的)
3 建立檔案redis_memory_
這裡的redis_memory_最後乙個下劃線後面的內容我預設是希望填寫埠號,因為我在192.168.0.19上有2個redis,分別放在7000和7001兩個埠上
所以最後的redis外掛程式應該是redis_memory_7000 和 redis_memory_7001
4 編輯redis_memory_1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/local/bin/php
<?php
if
(isset($ar**[1]) && $ar**[1] ==
'config'
)
echo
'memory.value '
. igetmemory(sgetport($ar**[0])) . php_eol;
if
(isset($ar**[1]) && $ar**[1] ==
'suggest'
)
function igetmemory($port)
'"
, $port);
return
exec($cmd);
}
a) 指令碼成功的標誌是
./redis_memory_ 能出現:memory.value 653653653
./redis_memroy_ config 能出現:
graph_title redis_memory_7000
graph_category open_message
graph_vlabel memory
memory.label memory
munin在生成的時候會呼叫這兩個命令來生成統計的,graph_title是標題,graph_category是分類,memory.label 是memory的標籤,graph_vlabel memory是縱座標的內容,memory.value 是具體的值。
還有更多的屬性:
b)這個指令碼執行成功的條件有:
安裝了php,並且php 命令安裝在/usr/local/bin/php
安裝了redis,redis-cli 安裝在/usr/local/bin/redis-cli
c)我這邊是使用redis-cli命令來取memory資訊,當然也可以使用redis的客戶端phpredis等來取
5 chmod +x redis_memory_
6 做鏈結(必須使用絕對路徑)
ln –s /usr/share/munin/plugins/redis_memory_ /etc/munin/plugins/redis_memory_7000
ln –s /usr/share/munin/plugins/redis_memory_ /etc/munin/plugins/redis_memory_7001
7 設定有哪些server能進入munin取資料,/etc/munin/munin-node.conf
allow ^127\.0\.0\.1all
ow192
\.168\.0
\.19
allow192\.168\.0\.19
8 /etc/init.d/munin-node restart
server(192.168.0.19):
1 安裝munin
2 修改/etc/munin/munin.conf
要修改的部分:
htmldir /home/yejianfeng/www/munin
要增加的部分:
[zwt-01]
address 192.168.0.17
use_node_name yes
好了,完成了。但是還有幾個想說的:
1 如果在過程**現錯誤, /var/log/munin/munin_node.log是非常好的資訊記錄
2 曾經被問過乙個問題
為什麼不在server端使用http來獲取node的資訊(比如要獲取ngnix status或者redis的),這樣node就不用配置munin-node了,這樣在server同樣可以生成。
我是這樣說服自己的:
a) munin是使用tcp在server和node之間進行通訊的,如果使用http,這就像是大炮換鳥槍的做法
b) 使用node模式有node的log,便於除錯
c) 如果不使用server-node,那就相當於純粹把munin當做畫圖工具而已,還不如xxoo
d) 如果不使用node的話category的排版會相當複雜
3 munin server會每5分鐘到node中進行munin node中進行取資料操作,所以,如果剛修改後發現還沒變,請稍安勿躁。
munin 因為plugin而亮
munin是乙個網路監控軟體。munin是乙個server nodes的結構,乙個server對應多台node,每台node就是被監控的節點,server是統計node的資料並進行繪圖生成html的節點。server的配置檔案是 etc munin munin.conf 每個node都有各自的配置檔...
大學,男生因為孤獨而優秀,女生因為優秀而孤獨
有些人有些事經歷了,終究只能是一種閱歷,竟不能成為回憶 不想面對卻又不得不承認的是 我們的年代,我們的生活確實淡漠了,男生 1 追女生從來都是件簡單的事情。如果你覺得你追得很艱難,多半是你追錯人了。如果乙個女生,你費盡力氣才追上,那麼還不如費盡力氣也追不上。因為,這樣艱辛才擁有乙個女朋友,你們的愛情...
因為proto而產生的instanceof問題
最近有了解下new的實現原理,發現乙個關於instanceof的問題。function foo name,age function createclass let obj createclass foo,zl console.log obj instanceof foo false 複製 我又去了解...