こんにちは、ネットワールドのストレージ担当です。
中の人は昨年末頃からつみたてNISAを始めてみたのですが、色々やらかしてしまい、下調べの大切さを痛感しています。。。アイタタタ、、、
さて、投資も運用も情報収集がだいじ!ということで、今回はGrafanaを使ったPowerScaleのモニタリングについて紹介したいと思います。
◆ 紹介編 ◆
まずGrafanaですが、もはや説明不要かと思いますが一応紹介しますと、オープンソースのデータVisualizationツールで
ダッシュボードをカスタマイズ作成し時系列のパフォーマンスデータなんかを、とっても見やすくオシャンに表示できちゃうツールで、
各ベンダーさんのプロダクトでも内部的にGrafanaが利用されていたりします!
Grafanaを使えば、普段からモニタリングしたい項目をまとめたダッシュボードを作成できるだけでなく、
閾値アラートを設定したり、WebHook機能でTeamsやSlackなんかへの通知もできちゃうんです!
もちろんリアルタイムデータだけでなく過去にさかのぼってデータを確認できますし、さらにはデータのcsvエクスポート、複数のPowerScaleクラスタを登録すれば一元的に簡単にステータスチェックもできちゃいます。
ふぉぉぉーーこれはすごいですねぇ!!(興奮)
また、普段からGrafanaを使っているのであれば、同じツールや同じテイストの画面で
IsilonやPowerScaleなんかの他の機器も監視できたら、楽だし、見やすいのに、、、と思うこともあるかもしれません。
ここで、「え、、DataIQを入れろってこと?」と思ったあなた!そうじゃありません!
それを実現してくれるのがこちらのツール、Isilon Data Insights Connector(無償)なのです!!
https://github.com/Isilon/isilon_data_insights_connector
Isilon Data Insights Connector(無償)をセットアップすれば、GrafanaでPowerScaleのStatsを見れるようにすることができます。
もちろんダッシュボードテンプレートが用意されているので、めんどくさがりな私も自分で最初からダッシュボードを作りこむ必要はナッシン!
取得しているStatsはクラスタのステータス、CPU, Disk, Network 等のusage, throughput, latencyといった機器の負荷状況を見るための情報や、
プロトコルごとの処理数、Latencyなんかも一通り確認することができます。
Cluster Summary
こちらはクラスタのサマリ情報。PowerScaleの実機と、Simulatorの2クラスタを試しに登録してみました。
各クラスタのGUIにログインしなくてもステータスが確認できるので、複数クラスタを運用しているお客さんだと何気にこういうところが便利そうだなと感じました。
"Attention"の場合はオレンジになっていて、見やすくていいですね。
ここでCluster CPU, Cluster Capacityもまとめて確認できるので、全システムをぱぱっと確認したいだけなら、十分有用そうです。
続いてクラスタごとの詳細情報、プロトコルごとの詳細情報はこんな感じです(画面の一部です。)
アクセス傾向や、今の機器構成で需要と供給がマッチしているかの分析なんかに使えそうですね。
Cluster_Detail
Protocol_smb2
以上、Isilon Data Insights Connectorの紹介編でした!
◆ 導入編 ◆
続いて導入編なのですが、ここまで書いてから、既にストレージWikiにSUTEKIな記事 があることに気づいてしまいました。
ということで詳細は上記ページをご参照いただくとして、ここでは概要とポイントを解説したいと思います。
Isilon Data Insights Connectorですが、実体は以下で提供されているPythonプログラム(&ダッシュボードテンプレート)です。
https://github.com/Isilon/isilon_data_insights_connector
英語に抵抗感が無い人はこちらに公式(?)手順(README.md)があるので、こちらを見た方が良いと思われます。
ツール自体は結構昔からあるようですが、README.mdが更新されているのは2021/11ですし、Community?(https://github.com/Isilon/isilon_data_insights_connector/issues)のやり取りもあるので、まだまだ錆びれてしまっているという感じではなさそうです。
(むしろ、いい具合に枯れている、という感じでしょうか?)
不具合などがある場合もこちらで何かしらコミュニケーションできそうですね。
プログラムのデフォルトでは時系列DBであるInfluxDBにデータをためて、それをデータソースとしてGrafanaで可視化するという構成になっているので、Python3、InfluxDB、Grafanaは自前で用意する必要があります。
(ちなみにPython 2.xも対応してそうではありますが試してません。)
ちなみに、上記ストレージWikiのリンクではyumを使ったInfluxDB, Grafanaパッケージでのインストール手順なども記載されています。
当方は上記ページを見ずに進めてしまったこともあり、InfluxDB, GrafanaはDockerコンテナタイプのものを利用しました。
コンテナベースのものも公式サイトや一般サイト情報を見つつ、サクッとできました!
https://docs.influxdata.com/platform/install-and-deploy/deploying/sandbox-install/
https://grafana.com/docs/grafana/latest/installation/docker/
[InfluxDB]
Influxdb導入後は手でDBを作ったりする必要はなく、そのままでOkです。Yeah!
なお、InfluxDBは2.x系のものが出ていますが、1.xと完全互換性があるわけではないようで、
Isilon Data Insights Connectorでは1.xをインストールする必要があるのでご注意ください...!
[Grafana]
ダッシュボードテンプレートについてはテンプレートのコミュニティサイトから取得してもよいですが、ツールのファイル一式にgrafana_cluster_xxxx.jsonというファイルが用意されているの、テンプレートのImport画面でjsonファイルをアップロードしてあげればOKです。
[Isilon Data Insights Connector]
基本的にPythonファイルを実行するだけですが、まずは事前準備。
example_isi_data_insights_d.cfgというファイルをisi_data_insights_d.cfgにリネームした上で、内容を編集してモニタリング対象のクラスタ情報やデータ採取の間隔(デフォルト30秒ごと)等を指定してあげます。
※ 採取間隔は調整可能になっていますが、間隔を短くするとその分ストレージの負荷上昇につながるのでご注意ください
公式手順とストレージWikiの手順では一部内容が異なっているところもあり、2022年1月現在の公式手順ではPython Virtual Environmentの利用を推奨しています。
私はPythonをちょっと知っている程度のレベルなので、このVirtual Environment(以後venvとします)というのはお初だったのですが、venvを使えば独立したPython実行環境をローカルに作成でき、venvごとに個別にPythonモジュール(pip listで見れるやつ)をバージョン指定してインストールできる優れものです。
なので、プレーンな新規サーバを使うのであればvenvは利用する意義はないかもですが、既存のPythonを使っているLinuxに相乗りさせたいときは、venvを使ってみても良いかもしれません。
venvを使う場合は、ツール内のsetup_venv3.sh(python3用)ファイルを実行すればOkです。
蛇足かと思いますが、Python3用のsetupを実行したので、Data Insights Connectorを起動するときも、ちゃんとPython3で実行されるようにしてください。