1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NetApp Harvestを利用したStorage監視(Docker版)

Last updated at Posted at 2023-04-19

はじめに

Storageの監視は、システムの安定性やデータの安全性を確保する為に非常に重要な項目となりますが、NetApp Storageにおいては、健常性とPerformanceを一元的に監視および管理できるツールとして以下のものを利用する事ができます。

  • Active IQ Unified Manager
  • Cloud Insights
  • Harvest

Storage容量が不足している場合は、アプリケーションのパフォーマンスが低下する可能性があるので、監視することでStorage容量の増加の必要性を知ることができますし、物理的な損傷やデータの破損などの問題についても事前に検知し、予防的な対策を講じることができます。

本記事ではDocker Compose経由のNetApp Harvestに関して導入から収集データの確認までについて記載致します。
(VMwareへOVA展開するNAboxについては本記事では記載してません)

001.png

何をしたい?できる?

  • Dockerを利用したNetApp Harvestの導入を行う
  • 収集されたデータをGUIで確認する
  • グループ分けしたONTAPの電気使用量を確認してみる

NetApp Harvestについて

NetAppが提供するNetApp Storageからパフォーマンスデータを収集する無償ツールで、収集したデータをPrometheusやInfluxDBといったDatabaseに送付後、Grafanaを利用する事で可視化することができます。
Harvest単体には監視や可視化機能は無く、Database/Grafanaに転送する為のデータ収集を行います。

その為、監視の為にデータ収集(Harvest)、Database、可視化(Grafana)の役割を持つコンポーネントをそれぞれ導入する必要があります。
qiita-square

デフォルト構成(収集する情報)で、10Clusterを監視する場合は推奨構成は以下の通りです。

  • CPU:2コア
  • メモリ:1GB
  • ディスク:500MB(主にログファイルとして使用)

記事における環境情報

本記事では、以下の環境で実施した内容となります。

  • 監視先としてのONTAPを複数登録(DC-01, 02の2つのグループに分けている)
  • Linux上にDockerを入れて、各役割(データ収集、Database、可視化)をコンテナとして展開
  • Linuxにはuser01というユーザを追加して、操作はuser01で実行

OSやモジュールは以下の構成としています。

  • Rocky Linux : 9.1
  • Docker : 23.0.2
  • Docker Compose : 2.17.2
  • Netnet Harvest : 23.02

環境のイメージとしては以下の通りです。
004.png

設定手順

この手順例では、新規で構築したLinux上にDockerの導入を含めて実施しています。

1. Dockerの導入

コンテナを利用してHarvestを構築する為、Rocky LinuxへDockerの導入から実施します。
まずは、リポジトリの追加と確認を実施します。

> sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
repo の追加: https://download.docker.com/linux/centos/docker-ce.repo


> dnf repolistdnf repolist
repo id                                                       repo の名前
appstream                                                     Rocky Linux 9 - AppStream
baseos                                                        Rocky Linux 9 - BaseOS
docker-ce-stable                                              Docker CE Stable - x86_64
extras                                                        Rocky Linux 9 - Extras

dockerの導入とVersionを確認します。

> sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin
メタデータの期限切れの最終確認: 0:00:17 時間前の 2023年04月17日 07時21分09秒 に実施しました。
依存関係が解決しました。
=====================================================================================================================================
 パッケージ                               アーキテクチャー      バージョン                     リポジトリー                    サイズ
=====================================================================================================================================
インストール:
 containerd.io                            x86_64                1.6.20-3.1.el9                 docker-ce-stable                 33 M
     置き換え  runc.x86_64 4:1.1.4-1.el9_1
 docker-ce                                x86_64                3:23.0.2-1.el9                 docker-ce-stable                 23 M
 docker-ce-cli                            x86_64                1:23.0.2-1.el9                 docker-ce-stable                7.1 M
 docker-compose-plugin                    x86_64                2.17.2-1.el9                   docker-ce-stable                 11 M
依存関係のインストール:
 docker-ce-rootless-extras                x86_64                23.0.2-1.el9                   docker-ce-stable                3.8 M
弱い依存関係のインストール:
 docker-buildx-plugin                     x86_64                0.10.4-1.el9                   docker-ce-stable                 12 M
 docker-scan-plugin                       x86_64                0.23.0-3.el9                   docker-ce-stable                3.8 M

トランザクションの概要
=====================================================================================================================================
インストール  7 パッケージ

ダウンロードサイズの合計: 93 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(中略)
インストール済み:
  containerd.io-1.6.20-3.1.el9.x86_64     docker-buildx-plugin-0.10.4-1.el9.x86_64       docker-ce-3:23.0.2-1.el9.x86_64           
  docker-ce-cli-1:23.0.2-1.el9.x86_64     docker-ce-rootless-extras-23.0.2-1.el9.x86_64  docker-compose-plugin-2.17.2-1.el9.x86_64 
  docker-scan-plugin-0.23.0-3.el9.x86_64 

完了しました!                                                       Rocky Linux 9 - Extras


> docker -vdocker -v
Docker version 23.0.2, build 569dd73

Dockerサービスの自動起動の有効化とDockerの起動を行います。

> sudo systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

>  sudo systemctl start docker             

作成したuser01でDockerを実行できるようにdockerグループに追加して確認します。

> sudo usermod -aG docker user01

> newgrp docker

> id $USER
uid=1000(user01) gid=1000(user01) groups=1000(user01),10(wheel),977(docker)
   

2. Docker Composeの導入

複数コンテナをまとめて効率的に操作できるツールであるDocker Composeの導入を行います。

> curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url  | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi -

権限設定を実施し、場所をコマンド検索パスの通っているディレクトリに移動します。
そしてdocker-composeコマンドでVersionを確認し、パスが通っている事を確認します。

> sudo chmod +x docker-compose-linux-x86_64

> sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

> docker-compose version
Docker Compose version v2.17.2

3. NetApp Harvestの導入と設定ファイルの作成

最新のNetApp Harvest(現時点ではv23.02.0)をダウンロードします。

> wget https://github.com/NetApp/harvest/releases/download/v23.02.0/harvest-23.02.0-1_linux_amd64.tar.gz

github.com (github.com) をDNSに問いあわせています... 20.205.243.166
github.com (github.com)|20.205.243.166|:443 に接続しています... 接続しました。
(中略)
2023-04-17 07:31:42 (11.0 MB/s) - `harvest-23.02.0-1_linux_amd64.tar.gz' へ保存完了 [74170698/74170698]

ダウンロードしたファイルを展開し、移動します。

> tar -xvf harvest-23.02.0-1_linux_amd64.tar.gz
harvest-23.02.0-1_linux_amd64/
harvest-23.02.0-1_linux_amd64/docker/
(中略)
harvest-23.02.0-1_linux_amd64/bin/harvest
harvest-23.02.0-1_linux_amd64/bin/rest


> cd harvest-23.02.0-1_linux_amd64
> ls
LICENSE   README.md    bin   cmd   docker  go.mod  grafana      harvest.yml  prom-stack.tmpl
Makefile  autosupport  cert  conf  docs    go.sum  harvest.cue  pkg          service

監視対象のONTAPを登録する為、harvest.ymlファイルを作成します。
Pollers:以下の部分にONTAP Clusterの情報を記載します。
この例ではONTAP Clusterの3つ分のCluster管理LIFそれぞれ登録しつつ、2つのグループ(DC-01とDC-02)に分けている例です。
アカウントのXXXXXXX部分は登録対象に合わせて記載が必要となります。

なお、ONTAP Version 9.12未満のClusterでは、ZAPIコレクター使用が推奨されています。

> cat harvest.yml
Exporters:
  prometheus1:
    exporter: Prometheus
    addr: 0.0.0.0
    port_range: 2000-2030

Defaults:
  collectors:
    - Zapi
    - ZapiPerf
  use_insecure_tls: true
  exporters:
    - prometheus1

Pollers:
  cluster-01:
    datacenter: DC-01
    addr: 192.168.123.123
    auth_style: basic_auth
    username: admin
    password: XXXXXXX
  cluster-02:
    datacenter: DC-02
    addr: 192.168.123.46
    auth_style: basic_auth
    username: test01
    password: XXXXXXX
  cluster-03:
    datacenter: DC-02
    addr: 192.168.123.47
    auth_style: basic_auth
    username: test03
    password: XXXXXXX

4. Docker composeファイル生成とコンテナの一括作成・起動

作成したharvest.ymlからDocker compose用ファイルを生成します。

> pwd
/home/user01/harvest-23.02.0-1_linux_amd64

> bin/harvest generate docker full --port --output harvest-compose.yml
Wrote file_sd targets to docker/prometheus/harvest_targets.yml
Start containers with:
docker-compose -f prom-stack.yml -f harvest-compose.yml up -d --remove-orphans

コンテナの起動を実施します。
(起動後、docker psコマンドで確認しています)

> docker-compose -f prom-stack.yml -f harvest-compose.yml up -d --remove-orphans
[+] Running 0/0
 ? Network harvest-23020-1_linux_amd64_backend  Creating                                                                        0.1s 
(中略)
 ? Container prometheus                          Started                                                                        2.5s 
 ? Container poller-cluster-02                   Started                                                                        2.8s 
 ? Container poller-cluster-03                   Started                                                                        2.6s 
 ? Container poller-cluster-01                   Started                                                                        2.5s 
 ? Container grafana                             Started                                                                        5.1s 

#コンテナの確認
> docker ps
CONTAINER ID   IMAGE                         COMMAND                   CREATED        STATUS        PORTS                                       NAMES
4e4c40607daa   grafana/grafana:8.3.4         "/run.sh"                 2 hours ago   Up 2 hours   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana
b24ce75958bd   prom/prometheus:v2.33.1       "/bin/prometheus --c…"    2 hours ago   Up 2 hours   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus
7724ce783a1b   cr.netapp.io/harvest:latest   "bin/poller --poller…"    2 hours ago   Up 2 hours                                               poller-cluster-01
aa2b75d44dd5   cr.netapp.io/harvest:latest   "bin/poller --poller…"    2 hours ago   Up 2 hours                                               poller-cluster-03
a70e82860b04   cr.netapp.io/harvest:latest   "bin/poller --poller…"    2 hours ago   Up 2 hours                                               poller-cluster-02

5. Grafanaへのアクセス

http://LinuxのIPアドレス:3000 でGrafanaへのアクセスする事ができます。
qiita-square

アカウントの初期設定は以下の通りです。
初回Login時に新規Passwordの入力を求められるので、変更を実施します。
username: admin
password: admin

ログイン後、画面上方の[Home]をクリックします。
qiita-square

表示された画面から[Harvest-main-cDOT]をクリックし、確認するダッシュボードを選択します。
この例では[ONTAP: Power]を選択し、電気の利用量を確認します。
qiita-square

qiita-square

画面上方の[Datacenter]や[Cluster]を操作する事で、個々の機器やグループ単位の電気の利用量を確認する事ができます。
qiita-square

qiita-square

参考及びリンク

NetApp Harvest

NAbox

NetApp.ioのHarvest記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?