munin 因為plugin而亮

2021-09-22 13:38:44 字數 3671 閱讀 7358

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);

returnexec($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 複製 我又去了解...