Zabbix/OpenPBS をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
Zabbixの監視対象として[[OpenPBS]]を加えたいと思う
横軸を時間として縦軸は提供したcpu-core数とか.
&ref(2022y05m14d_053119350.png,nolink,noborder);
&size(10){[[Zabbix/OpenPBS/memo]]};
***OpenPBS管理ノードにZabbix-agentをインストール [#zbf95f...
OpenPBS管理ノード「zabbix-pbs」を構築して[[Zabbix/Host]]...
&color(red){*};OpenPBSサーバはSELinuxを無効にします.
&size(10){作ったスクリプトをzabbix-agentのUserParameter経...
#code(nonumber){{
[root@zabbix-pbs ~]# getenforce
Disabled
[root@zabbix-pbs ~]#
}}
***監視項目 [#m5dcb5c8]
zabbixサーバから定期的にOpenPBS管理ノードに使用中のslots...
監視対象から目的の値を得るには、zabbix-agent、snmp、IMPI...
ここでは目的の値を得るためにスクリプトを組んで行うつもり...
&size(10){自分で作ったスクリプトを動かすにはこれ以外にも...
OpenPBSのpbsnodeコマンドで得られるデータを整理して目的の...
pbsnodeにはjson形式で出力できるので、それを解析する「jq」...
#code(nonumber){{
[root@zabbix-pbs ~]# dnf install jq
}}
っで、全CPU-core数は
#code(nonumber){{
[root@zabbix-pbs ~]# pbsnodes -aSF json | jq '[.nodes[].n...
(欠損ノードを除くなら)
[root@zabbix-pbs ~]# pbsnodes -aSF json |jq '[.nodes[]|s...
}}
で得られる.
GPUの総枚数は
#code(nonumber){{
[root@zabbix-pbs ~]# pbsnodes -aSF json | jq '[.nodes[].n...
}}
で得られる. &size(10){[[OpenPBS/GPU]]の設定が必要です};
複数のqueueで運用していて、特定のqueueの全CPU-core数は
#code(nonumber){{
(queue名が gpu )
[root@zabbix-pbs ~]# pbsnodes -aSF json | jq '[.nodes[]...
(queue名が cpu )
[root@zabbix-pbs ~]# pbsnodes -aSF json | jq '[.nodes[]...
}}
で得られる. &size(10){OpenPBSでのgpu数は手動で定義する必...
次に現在どれくらい消費されているのかを調べる
「pbsnodes -ajF json」を使うと「resources_assigned」と現...
#code(nonumber){{
[root@zabbix-pbs ~]# pbsnodes -ajF json | jq '[.nodes[]....
各queue毎なら
[root@zabbix-pbs ~]# pbsnodes -ajF json | jq '[.nodes[]...
[root@zabbix-pbs ~]# pbsnodes -ajF json | jq '[.nodes[]...
}}
で得られる
&size(10){gpu枚数も調べられるが、queuingの際に「-l select...
***UserParameterを定義する [#l08d6f9f]
前段でzabbixに送る数値の算出方法を決めた. 次にこのコマン...
変数としては、CPUとGPU、そして全ノードかqueue毎があるかな...
#code(bash,nonumber,nooutline,noblock){{
#!/bin/bash
usage="usage: `basename $0` (available|assigned) (ncpus|n...
if [ $# -eq 0 ]; then
echo $usage
exit 1
fi
if [ "$1" != "available" ] && [ "$1" != "assigned" ] ; t...
echo $usage
exit 1
fi
if [ "$2" != "ncpus" ] && [ "$2" != "ngpus" ]; then
echo $usage
exit 1
fi
PATH=/opt/pbs/bin:$PATH
#--------------------------------------------------------...
if [ "$3" == "" ]; then
if [ "$1" == "available" ]; then
cmd="pbsnodes -aSF json |jq -r '[.nodes[]|select( (....
elif [ "$1" == "assigned" ]; then
cmd="pbsnodes -ajF json |jq -r '[.nodes[].resources_...
fi
else
if [ "$1" == "available" ]; then
cmd="pbsnodes -ajF json |jq -r '[.nodes[]|select( ( ...
elif [ "$1" == "assigned" ]; then
cmd="pbsnodes -ajF json |jq -r '[.nodes[]|select(.qu...
fi
fi
#echo $cmd
value=`eval $cmd`
if [ "$value" == "null" ]; then
echo 0
else
echo $value
fi
}}
このスクリプトをzabbix-agentに参照させるために「/etc/zabb...
#code(nonumber){{
[root@zabbix-pbs ~]# vi /etc/zabbix/zabbix_agentd.d/openp...
UserParameter=openpbs[*],/opt/pbs/bin/zabbix-openpbs.sh $...
[root@zabbix-pbs ~]# systemctl restart zabbix-agent
}}
***zabbixサーバ側でホストグループ「OpenPBS」を作る [#s91a...
この方法が正しいのか不明なのですが、まず[設定]->[ホストグ...
表示された「ホストグループ」画面でグループ名に「OpenPBS」...
&ref(2022y05m14d_053808846.png,nolink);
これで「ホストグループ」に「OpenPBS」が追加されました
&ref(2022y05m14d_054018759.png,nolink);
***zabbixサーバ側でテンプレート「OpenPBS by Zabbix agent...
次に[設定]->[テンプレート]を開き、右上の「テンプレートの...
テンプレート名は「OpenPBS by Zabbix agent」として、テンプ...
&ref(2022y05m14d_054453887.png,nolink);
テンプレート画面に戻ります. &size(10){下図は「openpbs」...
このテンプレートにデータ取得のitem、グラフ表示設定を追加...
&ref(2022y05m14d_054708878.png,nolink);
***アイテムの作成 [#f4cfc49f]
データ元となるアイテムは2つ作ります
-openpbs available slots
利用可能なcpu-core数
-openpbs assigned slots
計算ノードに割り当てているcpu-core数
まずは「openpbs available slots」のアイテムを作ります.テ...
&ref(2022y05m14d_055015663.png,nolink);
「アイテム」画面になったら、右上の「アイテムの作成」リン...
名前は「openpbs available slots」、タイプは「Zabbixエージ...
得られる値のデータ型は「数値(整数)」とします. 入力が済ん...
&ref(2022y05m14d_063514521.png,nolink);
表示された「アイテムのテスト」にてホストのアドレスにzabbi...
&ref(2022y05m14d_063529185.png,nolink);
「アイテム」画面に戻り、「追加」ボタンを押下します.
&ref(2022y05m14d_064635081.png,nolink);
これで1つめのアイテム「openpbs available slots」設定は完...
次にもう1つ「openpbs assigned slots」アイテムを作ります....
&ref(2022y05m14d_064850633.png,nolink);
今度は名前は「openpbs assigned slots」タイプは「Zabbixエ...
&ref(2022y05m14d_065121409.png,nolink);
同じようにテストを行って、「追加」ボタンを押下します.
これでアイテムが2つ作れました.
&ref(2022y05m14d_065240098.png,nolink);
***グラフの設定 [#t224a71e]
テンプレート「OpenPBS by Zabbix agent」にグラフを追加します
テンプレート画面で「グラフ」リンクをクリックします
&ref(2022y05m14d_152537422.png,nolink);
グラフ画面に移ったら、右上の「グラフ作成」ボタンを押下し...
&ref(2022y05m14d_152707151.png,nolink);
名前を「OpenPBS slots usage」として、アイテム欄の「追加」...
&ref(2022y05m14d_152921974.png,nolink);
-するとグラフの要素を選ぶ画面になります. ここでは2つのア...
&ref(2022y05m14d_153152302.png,nolink);
グラフ画面に戻り、アイテム欄が埋まりました. 形状や色など...
&ref(2022y05m14d_153521207.png,nolink);
ここで、グラフ画面の上部にある「プレビュー」リンクを押下...
&ref(2022y05m14d_153702911.png,nolink);
値がないもののグラフの外形が見えます
&ref(2022y05m14d_153813768.png,nolink);
***作ったテンプレートをホストに適用する [#d1a626d7]
最後の段階.
[設定]->[ホスト]画面に移り、OpenPBSサーバが稼働するホスト...
&size(10){「zabbix-pbs」はテンプレート「Linux by Zabbix a...
&ref(2022y05m14d_154112511.png,nolink);
-ホスト画面が表示され、テンプレート欄で「選択」ボタンを押...
&ref(2022y05m14d_154512927.png,nolink);
--テンプレート画面が表示され、ホストグループの選択ボタン...
&ref(2022y05m14d_154704703.png,nolink);
---ホストグループから「OpenPBS」を選択します
&ref(2022y05m14d_154805479.png,nolink);
--テンプレート画面に戻り、ホストグループ「OpenPBS」で選べ...
&ref(2022y05m14d_155005751.png,nolink);
-ホスト画面に戻り、テンプレート欄に「OpenPBS by Zabbix ag...
&ref(2022y05m14d_155202135.png,nolink);
対象となったホスト「zabbix-pbs」にテンプレート「OpenPBS b...
&ref(2022y05m14d_160008184.png,nolink);
***グラフ表示 [#wb4a56ca]
[&color(magenta){監視データ};]->[ホスト]で監視対象リスト...
&ref(2022y05m14d_160333120.png,nolink);
その中に「zabbix-pbs: OpenPBS by Zabbix agent」のグラフが...
&ref(2022y05m14d_160451904.png,nolink);
終了行:
Zabbixの監視対象として[[OpenPBS]]を加えたいと思う
横軸を時間として縦軸は提供したcpu-core数とか.
&ref(2022y05m14d_053119350.png,nolink,noborder);
&size(10){[[Zabbix/OpenPBS/memo]]};
***OpenPBS管理ノードにZabbix-agentをインストール [#zbf95f...
OpenPBS管理ノード「zabbix-pbs」を構築して[[Zabbix/Host]]...
&color(red){*};OpenPBSサーバはSELinuxを無効にします.
&size(10){作ったスクリプトをzabbix-agentのUserParameter経...
#code(nonumber){{
[root@zabbix-pbs ~]# getenforce
Disabled
[root@zabbix-pbs ~]#
}}
***監視項目 [#m5dcb5c8]
zabbixサーバから定期的にOpenPBS管理ノードに使用中のslots...
監視対象から目的の値を得るには、zabbix-agent、snmp、IMPI...
ここでは目的の値を得るためにスクリプトを組んで行うつもり...
&size(10){自分で作ったスクリプトを動かすにはこれ以外にも...
OpenPBSのpbsnodeコマンドで得られるデータを整理して目的の...
pbsnodeにはjson形式で出力できるので、それを解析する「jq」...
#code(nonumber){{
[root@zabbix-pbs ~]# dnf install jq
}}
っで、全CPU-core数は
#code(nonumber){{
[root@zabbix-pbs ~]# pbsnodes -aSF json | jq '[.nodes[].n...
(欠損ノードを除くなら)
[root@zabbix-pbs ~]# pbsnodes -aSF json |jq '[.nodes[]|s...
}}
で得られる.
GPUの総枚数は
#code(nonumber){{
[root@zabbix-pbs ~]# pbsnodes -aSF json | jq '[.nodes[].n...
}}
で得られる. &size(10){[[OpenPBS/GPU]]の設定が必要です};
複数のqueueで運用していて、特定のqueueの全CPU-core数は
#code(nonumber){{
(queue名が gpu )
[root@zabbix-pbs ~]# pbsnodes -aSF json | jq '[.nodes[]...
(queue名が cpu )
[root@zabbix-pbs ~]# pbsnodes -aSF json | jq '[.nodes[]...
}}
で得られる. &size(10){OpenPBSでのgpu数は手動で定義する必...
次に現在どれくらい消費されているのかを調べる
「pbsnodes -ajF json」を使うと「resources_assigned」と現...
#code(nonumber){{
[root@zabbix-pbs ~]# pbsnodes -ajF json | jq '[.nodes[]....
各queue毎なら
[root@zabbix-pbs ~]# pbsnodes -ajF json | jq '[.nodes[]...
[root@zabbix-pbs ~]# pbsnodes -ajF json | jq '[.nodes[]...
}}
で得られる
&size(10){gpu枚数も調べられるが、queuingの際に「-l select...
***UserParameterを定義する [#l08d6f9f]
前段でzabbixに送る数値の算出方法を決めた. 次にこのコマン...
変数としては、CPUとGPU、そして全ノードかqueue毎があるかな...
#code(bash,nonumber,nooutline,noblock){{
#!/bin/bash
usage="usage: `basename $0` (available|assigned) (ncpus|n...
if [ $# -eq 0 ]; then
echo $usage
exit 1
fi
if [ "$1" != "available" ] && [ "$1" != "assigned" ] ; t...
echo $usage
exit 1
fi
if [ "$2" != "ncpus" ] && [ "$2" != "ngpus" ]; then
echo $usage
exit 1
fi
PATH=/opt/pbs/bin:$PATH
#--------------------------------------------------------...
if [ "$3" == "" ]; then
if [ "$1" == "available" ]; then
cmd="pbsnodes -aSF json |jq -r '[.nodes[]|select( (....
elif [ "$1" == "assigned" ]; then
cmd="pbsnodes -ajF json |jq -r '[.nodes[].resources_...
fi
else
if [ "$1" == "available" ]; then
cmd="pbsnodes -ajF json |jq -r '[.nodes[]|select( ( ...
elif [ "$1" == "assigned" ]; then
cmd="pbsnodes -ajF json |jq -r '[.nodes[]|select(.qu...
fi
fi
#echo $cmd
value=`eval $cmd`
if [ "$value" == "null" ]; then
echo 0
else
echo $value
fi
}}
このスクリプトをzabbix-agentに参照させるために「/etc/zabb...
#code(nonumber){{
[root@zabbix-pbs ~]# vi /etc/zabbix/zabbix_agentd.d/openp...
UserParameter=openpbs[*],/opt/pbs/bin/zabbix-openpbs.sh $...
[root@zabbix-pbs ~]# systemctl restart zabbix-agent
}}
***zabbixサーバ側でホストグループ「OpenPBS」を作る [#s91a...
この方法が正しいのか不明なのですが、まず[設定]->[ホストグ...
表示された「ホストグループ」画面でグループ名に「OpenPBS」...
&ref(2022y05m14d_053808846.png,nolink);
これで「ホストグループ」に「OpenPBS」が追加されました
&ref(2022y05m14d_054018759.png,nolink);
***zabbixサーバ側でテンプレート「OpenPBS by Zabbix agent...
次に[設定]->[テンプレート]を開き、右上の「テンプレートの...
テンプレート名は「OpenPBS by Zabbix agent」として、テンプ...
&ref(2022y05m14d_054453887.png,nolink);
テンプレート画面に戻ります. &size(10){下図は「openpbs」...
このテンプレートにデータ取得のitem、グラフ表示設定を追加...
&ref(2022y05m14d_054708878.png,nolink);
***アイテムの作成 [#f4cfc49f]
データ元となるアイテムは2つ作ります
-openpbs available slots
利用可能なcpu-core数
-openpbs assigned slots
計算ノードに割り当てているcpu-core数
まずは「openpbs available slots」のアイテムを作ります.テ...
&ref(2022y05m14d_055015663.png,nolink);
「アイテム」画面になったら、右上の「アイテムの作成」リン...
名前は「openpbs available slots」、タイプは「Zabbixエージ...
得られる値のデータ型は「数値(整数)」とします. 入力が済ん...
&ref(2022y05m14d_063514521.png,nolink);
表示された「アイテムのテスト」にてホストのアドレスにzabbi...
&ref(2022y05m14d_063529185.png,nolink);
「アイテム」画面に戻り、「追加」ボタンを押下します.
&ref(2022y05m14d_064635081.png,nolink);
これで1つめのアイテム「openpbs available slots」設定は完...
次にもう1つ「openpbs assigned slots」アイテムを作ります....
&ref(2022y05m14d_064850633.png,nolink);
今度は名前は「openpbs assigned slots」タイプは「Zabbixエ...
&ref(2022y05m14d_065121409.png,nolink);
同じようにテストを行って、「追加」ボタンを押下します.
これでアイテムが2つ作れました.
&ref(2022y05m14d_065240098.png,nolink);
***グラフの設定 [#t224a71e]
テンプレート「OpenPBS by Zabbix agent」にグラフを追加します
テンプレート画面で「グラフ」リンクをクリックします
&ref(2022y05m14d_152537422.png,nolink);
グラフ画面に移ったら、右上の「グラフ作成」ボタンを押下し...
&ref(2022y05m14d_152707151.png,nolink);
名前を「OpenPBS slots usage」として、アイテム欄の「追加」...
&ref(2022y05m14d_152921974.png,nolink);
-するとグラフの要素を選ぶ画面になります. ここでは2つのア...
&ref(2022y05m14d_153152302.png,nolink);
グラフ画面に戻り、アイテム欄が埋まりました. 形状や色など...
&ref(2022y05m14d_153521207.png,nolink);
ここで、グラフ画面の上部にある「プレビュー」リンクを押下...
&ref(2022y05m14d_153702911.png,nolink);
値がないもののグラフの外形が見えます
&ref(2022y05m14d_153813768.png,nolink);
***作ったテンプレートをホストに適用する [#d1a626d7]
最後の段階.
[設定]->[ホスト]画面に移り、OpenPBSサーバが稼働するホスト...
&size(10){「zabbix-pbs」はテンプレート「Linux by Zabbix a...
&ref(2022y05m14d_154112511.png,nolink);
-ホスト画面が表示され、テンプレート欄で「選択」ボタンを押...
&ref(2022y05m14d_154512927.png,nolink);
--テンプレート画面が表示され、ホストグループの選択ボタン...
&ref(2022y05m14d_154704703.png,nolink);
---ホストグループから「OpenPBS」を選択します
&ref(2022y05m14d_154805479.png,nolink);
--テンプレート画面に戻り、ホストグループ「OpenPBS」で選べ...
&ref(2022y05m14d_155005751.png,nolink);
-ホスト画面に戻り、テンプレート欄に「OpenPBS by Zabbix ag...
&ref(2022y05m14d_155202135.png,nolink);
対象となったホスト「zabbix-pbs」にテンプレート「OpenPBS b...
&ref(2022y05m14d_160008184.png,nolink);
***グラフ表示 [#wb4a56ca]
[&color(magenta){監視データ};]->[ホスト]で監視対象リスト...
&ref(2022y05m14d_160333120.png,nolink);
その中に「zabbix-pbs: OpenPBS by Zabbix agent」のグラフが...
&ref(2022y05m14d_160451904.png,nolink);
ページ名:
1