使用NetApp Harvest进行存储监控(面向Docker版)

首先

在 NetApp Storage 中,监视存储是确保系统稳定性和数据安全性的非常重要的事项,您可以使用以下工具来统一监视和管理它的健康状况和性能。

    • Active IQ Unified Manager

 

    • Cloud Insights

 

    Harvest

如果存储空间不足,应用程序的性能可能会下降,因此通过监视可以了解是否需要增加存储容量,并且可以预先检测和防止物理损坏和数据损坏等问题。

在本文中,我們將介紹從安裝到收集數據確認的過程,關於通過Docker Compose使用NetApp Harvest。
(關於將OVA部署到VMware的NAbox,在本文中沒有提及)

001.png

你想做什么?能吗?

    • Dockerを利用したNetApp Harvestの導入を行う

 

    • 収集されたデータをGUIで確認する

 

    グループ分けしたONTAPの電気使用量を確認してみる

关于NetApp Harvest

可以使用NetApp提供的免费工具从NetApp存储中收集性能数据,并将收集到的数据发送到诸如Prometheus或InfluxDB等数据库,然后使用Grafana进行可视化。
Harvest本身没有监控或可视化功能,它只进行数据收集以便将其传送到数据库/Grafana中。

qiita-square

如果使用默认配置(收集信息)来监视10个集群,推荐的配置如下所示。

    • 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的安装

为了在Rocky Linux上利用容器来构建Harvest,在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并检查版本。

> 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             

我会将用户01添加到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命令检查版本,并确认路径已设置正确。

> 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集群的信息。
在这个例子中,我们分别注册了三个ONTAP集群管理LIF,并将它们分为两个组(DC-01和DC-02)。
XXXXXXX部分是根据注册目标需要填写的帐户信息。

另外,在ONTAP 9.12以下的集群中,建议使用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

qiita-square

账户的初始设置如下:
第一次登录时会要求输入新密码,然后进行更改。
用户名:admin
密码:admin

qiita-square
qiita-square
qiita-square
qiita-square
qiita-square

提供的信息和链接

NetApp 丰收

NAbox 可以是一个品牌名称或者产品名称,因此如何准确地翻译取决于具体的语境。下面提供了两种可能的中文翻译选项:

选项一:NAbox – 納盒
选项二:NAbox – 納箱

NetApp.io的收获文章

bannerAds