Node Exporter 自定義監控

文本文件收集器


對於自定義的監控,開採用文本收集器方式,官方描述如下


文本文件收集器與Pushgateway相似,因為它允許從批處理作業中導出統計信息。它也可以用於導出靜態指標,例如計算機所扮演的角色。Pushgateway應該用於服務級別指標。文本文件模塊用於綁定到計算機的指標。


要使用它,請
--collector.textfile.directory在節點導出器上設置標誌。收集器將*.prom 使用文本格式解析該目錄中與glob匹配的所有文件。注意:不支持時間戳。


自定義監控案例


背景


增加系統進程個數監控、系統殭屍進程個數監控


環境說明


<code>

pwd

/usr/local/node_exporter

.

├── bin │   ├── node_exporter ├── conf │   └── node_exporter.conf └── textfile_collector/<code>


實現步驟


編寫獲取監控指標的腳本process,這個腳本會當作參數傳入下面的全局腳本,可以寫很多這樣的監控指標


<code>$ cat bin/process 
 

echo

procs_total `ps aux|wc -l`

echo

procs_zombie `ps axo pid=,

stat

=|grep Z|wc -l` $ sh bin/process procs_total 214 procs_zombie 0/<code>


編寫全局腳本runner, 這個腳本會將各監控指標數據生成到textfile_collector/*.prom文件


<code>$ cat bin/runner 
 
 
textfile_dir=$(dirname 

$0

) metric=

"

$1

"

shift

script=

"

$textfile_dir

/

$metric

"

prom_file=

"

$textfile_dir

/

$metric

"

.prom

if

[[ ! -x

"

$script

"

|| -d

"

$script

"

]];

then

echo

"ERROR: Can't find>$metric

'. Aborting."

exit

1

fi

VALUE=`

"

$script

"

"

$@

"

`

if

[[ ! -n

$VALUE

]];

then

exit

0

else

echo

"

${VALUE}

"

>>

"

$prom_file

"

.$$ && mv

"

$prom_file

"

.$$ ../textfile_collector/

"

$prom_file

"

fi

/<code>


做個定時任務每隔30s執行一次腳本,產生的監控數據供文本文件採集器採集


<code>$ crontab -l 

*

* *

* *

sleep 30; bash /usr/local/node_exporter/bin/runner process &> /dev/null/<code>


手動執行一次看下產生的效果


<code>$ sh -x  /usr/

local

/node_exporter/bin/runner process ++ dirname /usr/

local

/node_exporter/bin/runner + textfile_dir=/usr/

local

/node_exporter/bin + collector_dir=/usr/

local

/node_exporter + metric=process +

shift

+>local

/node_exporter/bin/process + prom_file=/usr/

local

/node_exporter/textfile_collector/process.prom + [[ ! -x /usr/

local

/node_exporter/bin/process ]] + [[ -d /usr/

local

/node_exporter/bin/process ]] ++ /usr/

local

/node_exporter/bin/process + VALUE=

'procs_total 222 procs_zombie 0'

+ [[ ! -n procs_total 222 procs_zombie 0 ]] +

echo

'procs_total 222 procs_zombie 0'

+ mv /usr/

local

/node_exporter/textfile_collector/process.prom.4990 /usr/

local

/node_exporter/textfile_collector/process.prom $ cat textfile_collector/process.prom procs_total 221 procs_zombie 0/<code>


查看metrics值是否新增了該監控項


<code>$ curl 

127.0

.

0

.

1

:

9100

/metrics

|grep -E "Logical_CPU_core_total|

logined_users_total

|procs_total|

procs_zombie

"| grep -v "

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed

100

57440

0

57440

0

0

9736

k

0

--

:--

:--

--

:--

:--

--

:--

:--

10.9

M procs_total

221

procs_zombie

0

/<code>


Node Exporter 自定義監控

最後說下自動發現的規則,默認node_exporter是沒有啟用collector需要啟動時候指定下采集器類型,這裡啟動方式採用systemd


<code>$ cat /etc/systemd/system/multi-user.target.wants/node_exporter.service 
[Unit]
Description=Node Exporter

[Service]
 
EnvironmentFile=/usr/local/node_exporter/conf/node_exporter.conf
ExecStart=/usr/local/node_exporter/bin/node_exporter $OPTIONS

[Install]
WantedBy=multi-user.target/<code>


分享到:


相關文章: