SynologyのNASをDatadogで監視してみる
Datadogの導入が無事に終わったので、次はSNMP経由でNASのモニタリングに挑戦! 色々試行錯誤してみたのですが……実はまだ「道半ば」という感じです(苦笑)。
Synology側の設定
まずはNAS側でSNMPを有効にしていきます。 Synologyの管理画面にログインして、「コントロールパネル」>「端末とSNMP」を開きます。

「SNMP」タブでサービスを有効にします。今回は「SNMPv1、SNMPv2cサービス」にチェックを入れて、コミュニティ名に適当な(でも推測されにくい!)文字列を入力しておきます。

Datadogの設定
設定はこのあたりの公式ドキュメントを参考に進めました。
ファイルの準備
設定ファイルは、C:\ProgramData\Datadog\conf.d\snmp.d にある conf.yaml.sample をコピーして、conf.yaml にリネームして使います。 Windowsだと「ProgramData」フォルダの中にあるのがちょっとしたポイントですね!

次に、profiles フォルダに以下のリンク先からダウンロードした synology-disk-station.yaml を配置します。
GitHubのリンクはこちら。これ、万能ではないかもしれないので要注意です。
snmp.d フォルダに戻って、先ほどの conf.yaml を編集。 init_config: セクションの loader: core の下に profiles_path: を追記して、プロファイルがあるパスを指定してあげます。
init_config:
## @param loader - string - optional - default: python
## Check loader to use for all instances. Available loaders:
## - core: (recommended) Uses new corecheck SNMP integration (faster and lower memory usage)
## - python: Uses the legacy python SNMP integration
#
loader: core
profiles_path: C:\ProgramData\Datadog\conf.d\snmp.d\profilesinstances: セクションには、NASのIPアドレス、先ほど設定したコミュニティ文字列、配置したプロファイル、あと管理しやすいようにタグも指定しちゃいましょう。
instances:
## @param ip_address - string - optional
## The IP address of the device to monitor.
## Either `ip_address` or `network_address` must be provided.
#
# ip_address: <IP_ADDRESS>
- ip_address: '192.168.1.xx'
community_string: 'public' # enclose with single quote
profile: synology-disk-station
tags:
- 'nas_name: nas1'
- ip_address: '192.168.1.yy'
community_string: 'public' # enclose with single quote
profile: synology-disk-station
tags:
- 'nas_name: nas2'YAMLなので、-(ハイフン)が段落の始まりを意味します。複数台ある場合は、しっかりインデントとハイフンを意識して切り替わるように記述。今回は2台分設定したので、IPやタグの頭にハイフンをつけています。
ここまで書けたら、Datadog Agentを再起動して反映させます! PowerShellを管理者権限で起動して、エージェントのフォルダへ移動。./agent.exe status を叩いて確認します。IPとハッシュ値の後ろに [OK] が出ていれば成功です!
PS C:\Program Files\Datadog\Datadog Agent\bin> ./agent.exe statussnmp
----
Instance ID: snmp:default:192.168.1.xx:**************** [OK]
Configuration Source: file:C:\ProgramData\Datadog\conf.d\snmp.d\conf .yaml[0]
~中略~
Instance ID: snmp:default:192.168.1.yy:**************** [OK]
Configuration Source: file:C:\ProgramData\Datadog\conf.d\snmp.d\conf .yaml[1]
ダッシュボードに入れてみる
さて、ここで問題発生。先に言っちゃいますが、一番取りたかった「Disk容量」が取れないんです!!
synology.raidFreeSize や synology.raidTotalSize という項目はあって、データが届いている形跡(0/1のフラグ)はあるんですけど、肝心の数値が出てこない。Gemini先生に聞いても、ネットの海を漂っても答えが見つからず……。
とりあえず「温度」は取れるみたいなので、今回はこちらでダッシュボードを作ってみます。
Datadogの画面から「Dashboard」>「New Dashboard」へ。

自由度高く作りたかったので、右側の「Screenboard」を選択しました。

真っ白なキャンバスが出てくるので、右側のウィジェットから「Query Value」を選んでみます。

① グラフの種類を選びます(後からでも変えられますが、設定が消えちゃうこともあるので慎重に……)。
② 取得するデータを選びます。Metricsの入力欄に synology と入れると、SNMPで取れるデータがずらっと出てきました!

今回は snmp.synology.diskTemperature(ディスク温度)を選択。from で対象のNASを指定して、reduce values... は last にして最新の数値を取るようにします。
「Units and Formatting」で単位を ℃ に設定して、小数点第1位まで表示。 「Visual Formatting Rules」を使って、50度未満ならグリーン、50度以上ならイエロー、60度を超えたらレッドになるように色分けもしてみました。 背景には「Timeseries Background」で折れ線グラフをうっすら表示させます。

Set time preferencesで1分更新にし、グラフのタイトルを入れてSave。

そうすると、こんな感じのタイルが出来上がります。

ディスク単位の折れ線グラフを作ったり、グループ化して折りたためるようにしたり……色々いじっているうちに、かなり「それっぽい」ダッシュボードになってきました!

おまけ
ちなみに、SynologyのSNMPで取得できるメトリクスの一覧はこんな感じです。

他にも取得できるメトリクスは色々あるみたい。

いいなと思ったら応援しよう!
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!