Prometheusカスタムexporterモニタkey
3406 ワード
Prometheusカスタムexporterモニタkey
Prometheusのnode_exporterに必要なモニタリング項目がない場合は、zabbixのようにkeyをカスタマイズして、必要なモニタリング項目をサポートすることができます.
たとえば、論理cpuコア数に基づいてloadのアラート値を決定し、論理cpuコア数を統計するkeyを追加します.
統計スクリプトの追加
key値実装スクリプトの追加
権限の追加
スクリプト効果の実行
コマンド$1パラメータを実行するにはパスを追加する必要はありません.その後、promファイルが生成されます.exporterはファイルを認識し、データを収集できます.
node_を起動exporter、key値を新しく追加するpromパスを指定します
metrics値がモニタリング項目を追加したかどうかを確認します
=======================================================
スクリプトの最適化
1つのスクリプトで複数のモニタリング項目key valueの追加を実現
効果の実行
Prometheusのnode_exporterに必要なモニタリング項目がない場合は、zabbixのようにkeyをカスタマイズして、必要なモニタリング項目をサポートすることができます.
たとえば、論理cpuコア数に基づいてloadのアラート値を決定し、論理cpuコア数を統計するkeyを追加します.
統計スクリプトの追加
mkdir /usr/local/node_exporter-0.16/key
vim /usr/local/node_exporter-0.16/key/Logical_CPU_core_number
cat /proc/cpuinfo| grep "processor"| wc -l
key値実装スクリプトの追加
vim /usr/local/node_exporter-0.16/key/key_runner
#!/bin/bash
# Runs a textfile collector.
textfile_dir=/usr/local/node_exporter-0.16/key
source /etc/profile.d/node_exporter.sh
metric="$1"
shift
script="$textfile_dir/$metric"
prom_file="$textfile_dir/$metric".prom
echo $textfile_dir $script
if [[ ! -x "$script" || -d "$script" ]]; then
echo "ERROR: Can't find script for '$metric'. Aborting."
exit 1
fi
VALUE=`"$script" "$@"`
if [[ ! -n $VALUE ]]; then
exit 0
# echo "ERROR: Can't get value for '$metric'. Aborting."
# exit 1
else
echo "# TYPE ${metric} gauge"> "$prom_file".$$
echo "${metric} ${VALUE}" >> "$prom_file".$$ && mv "$prom_file".$$ "$prom_file"
fi
権限の追加
chmod 755 /usr/local/node_exporter-0.16/key/*
スクリプト効果の実行
コマンド$1パラメータを実行するにはパスを追加する必要はありません.その後、promファイルが生成されます.exporterはファイルを認識し、データを収集できます.
bash /usr/local/node_exporter-0.16/key/key_runner Logical_CPU_core_number
[root@centos3 key]# ll
total 12
-rwxr-xr-x 1 root root 641 Feb 21 11:50 key_runner
-rwxr-xr-x 1 root root 43 Feb 21 11:56 Logical_CPU_core_number
-rw-r--r-- 1 root root 69 Feb 21 11:54 Logical_CPU_core_number.prom
[root@centos3 key]# cat Logical_CPU_core_number.prom
# TYPE Logical_CPU_core_number gauge
Logical_CPU_core_number 1
node_を起動exporter、key値を新しく追加するpromパスを指定します
./node_exporter --collector.textfile.directory=/usr/local/node_exporter-0.16/key
metrics値がモニタリング項目を追加したかどうかを確認します
curl localhost:9100/metrics > aaa
vim aaa
TYPE Logical_CPU_core_number gauge
Logical_CPU_core_number 1
=======================================================
スクリプトの最適化
1つのスクリプトで複数のモニタリング項目key valueの追加を実現
cat /usr/local/node_exporter/key/key_runner
#! /bin/bash
prom_file=/usr/local/node_exporter/key/key.prom
IFS=";"
export TERM=vt100
key_value="
Logical_CPU_core_total `cat /proc/cpuinfo| grep "processor"| wc -l`;
logined_users_total `who | wc -l`;
procs_total `/bin/top -b -n 1|grep Tasks|sed 's/,/
/g'|grep total|awk '{ print $(NF-1) }'`;
procs_zombie `/bin/top -b -n 1|grep Tasks|sed 's/,/
/g'|grep zombie|awk '{ print $(NF-1) }'`"
for i in $key_value
do
IFS=" "
j=(`echo $i`)
key=${j[0]}
value=${j[1]}
echo $key $value >> "$prom_file".tmp
done
cat "$prom_file".tmp > $prom_file
rm -rf "$prom_file".tmp
IFS=$OLD_IFS
効果の実行
[root@Prometheus key]# ll
total 8
-rw-r--r-- 1 root root 82 Mar 11 16:45 key.prom
-rwxr-xr-x 1 root root 628 Mar 1 19:23 key_runner
[root@Prometheus key]# cat key.prom
Logical_CPU_core_total 4
logined_users_total 2
procs_total 129
procs_zombie 0