Redfishを使ってサーバーの状態監視
Redfish、何それ美味しいの?
従来サーバー監視はIPMIToolやベンダー固有の管理ツールを使うのが定番でしたが、
最近APIを通して共通化しようという試みも出てきているようです。
サーバー屋さん的にはどうなのかね?という感じもありますが、まずはお試し。
今回は2つの方法で基本情報の取得。
1,Postmanを使う
2,Curlを使う
1,Postmanを使う
PostmanをノートPCにインストール
https://www.postman.com/downloads/
デスクトップのアイコンをクリックしてPostmanを開き、
アドレスバーにIPアドレスと/redfish/v1/Systems/1/くらいまで入れて
authorizationをBasic AuthにしてIPMIのユーザーとパスワードを入れるとサーバーと繋がります。
GET IPアドレス/redfish/v1/Systems/1/
Body内になるリンク/redfish/v1/System/1をクリックすると、下の画像のようなサーバーのFRU項目が出てきます。
IPMIではなかなか取れないNICの情報も取れる。
GET IPアドレス/redfish/v1/Systems/1/EthernetInterfaces/1
Memoryのスピードや型番、状態も取得可能。
GET IPアドレス/redfish/v1/Systems/1/Memory/1
各項目ごとに掘り下げていくと情報が色々と確認出来、JSONだけでなく色々な形式で出力できるので
独自に作成した管理ツールがある人にはに便利かも。知らんけど。
2,Curlを使う
ノートPCではなく、管理用のLinux端末からRedfish経由で情報を見たい場合は
curlを使用するとコマンドラインでできるのでスクリプト化してもいいかも。
curlは色々できるようですが、とりあえず監視だけなら
curl -u ユーザー:パスワード -X GET 'https://IPアドレス/redfish/v1/Systems/1/項目'
で情報取得は可能。
ただ、これだと非常に見辛いので、|(パイプ)とjqを使ってJSON形式で見やすく変換した方が良さげです。
jqのインストールはいたって簡単。
$sudo yum -y install epel-release
$sudo yum -y install jq
jqで必要な情報だけ.ドット+項目を,で羅列すると見やすくなりました。(前後はシングルクォーテーション)
ネットワークの常態とMACアドレス調べ
curl -k -u ADMIN:ADMIN -X GET 'https://IPアドレス/redfish/v1/Systems/1/EthernetInterfaces/1' |jq '.Description, .Status, .MACAddress'
Memoryのスロットごとの容量と状態調べ
curl -k -u ADMIN:ADMIN -X GET 'https://IPアドレス/redfish/v1/Systems/1/Memory/1' |jq '.Name, .CapacityMiB, .Status'
掘り下げれば色々出来そうな感じはありますが、まずはRedfishで情報を取る方法はこれで良しとする!