adtech studio

データセンターネットワークの運用におけるDatadogとZabbixの活用

By komei

Datadog ネットワーク

こんにちは。アドテクスタジオでネットワークエンジニアをしている山本 孔明です。
アドテクスタジオでは監視ツールとして Datadog を導入しております。

 

そんな中で、たまにネットワーク機器ってどうやって監視しているの?という質問を受けることがあるので、今日はネットワーク機器をどのように監視しているかお話をしたいと思います。

 

まず、Datadog には SNMP インテグレーション があります。SNMP での監視がメインであるネットワーク機器においても容易に監視することが可能です。

 

以下はとあるシステムにおけるネットワークのメトリクスを収集したものです。主にインターネット周りで何か起きないかをネットワークエンジニア以外で確認してもらうためのダッシュボードです。

 

 

 

ダッシュボードでの状況確認や分析がとてもやりやすく、Datadog を利用することで障害対応時の対応速度向上が見込めると考えて活用しています。他にも特定のエラーメッセージを表示やLBのコネクション数などを表示したり、もっとグラフを並べたダッシュボードなど多数存在しています。

 

データセンターなどある程度大きな環境で利用をしようと考えると、Datadog の SNMP インテグレーションだけですと以下の点が気になってきます。

 

  • 機器が追加になるたびに設定を変更する必要がある
  • snmp trap を monitor にあげる方法がない

 

一方、Zabbix を利用するメリットとしては以下があります。

 

  • ディスカバリでネットワーク機器が追加された時に監視対象が自動で追加される
  • ネットワークのメーカーを判別し、必要なテンプレートを設定する

 

そのため、私の環境では Zabbix に 各ネットワーク機器から SNMP でデータを収集させて、必要なデータを Zabbix のデータベース から直接引っ張って Datadog のダッシュボードで確認する方法を一部利用しています。データベースから引っ張る部分は Zabbix の DB の中身を見たことがある人であれば容易に想像がつくと思いますので、ここでは割愛をさせて頂きます。

 

以下、ネットワーク機器を監視する上での、Datadog と Zabbix の比較です。環境や要件により異なります。また、作り込みに対するハードルは人により感じ方が違うと思いますので、参考までに留めてください。

 

Datadog Zabbix
SNMP ポーリング   OID を指定して値をある一括で収集することが可能。instance での正規表現が対応していないため、ホストやアイテム追加時の snmp.yml の書き換えはAnsible などで別途対応する   ホストやアイテムのディスカバリ機能など必要な機能がそろっている。Conf ファイルでリソースの使い方も細かく設定が可能
SNMP トラップ   snmptrapd + snmptt で書き出したものを、Datadog へタグをつけて渡す仕組みを作れば実現可能   snmptt + snmptrapd + Zabbix の SNMPTrapper を使って実現可能
死活監視   Zabbix の機能として fping を用いた監視が可能  ○ fping を用いたカスタムスクリプトのメトリクスが存在
 可視性  ◎ Screen Board / Time Board では様々なグラフを使い、目的のダッシュボードを容易に作成が可能。障害時にも容易にグラフの追加や、様々なデータを横断的な分析することが可能。  △ Dynamic Item などあるが、グラフとスクリーンの作成はあらかじめしっかりと作りこんでおく必要がある。(※1)

 

(※1) Zabbix Graph Viewer や Grafana との組み合わせを使い改善することは可能

 

最近では、ネットワークと一口に言ってもインスタンスに到達するまでに、Linux Bridge が作る仮想インタフェースや、Open vSwitchなどの仮想デバイス、物理 NICなども含めてネットワークと呼ばれ、ネットワークエンジニアが切り分けするポイントが広範囲になっています。そのため、サーバ・ネットワーク機器に一つに限定せず多くの情報を横に並べて確認する必要があります。

 

例えば、ネットワークのデプロイ時のログなどを parse して Datadog へ流しておけば、サーバの物理 NIC でエラーが上がったタイミングとそのログとの関連性を時刻ですぐに判定することも可能です。

 

 

もちろん、ラックであったりゾーンなど Datadog の tag で定義しているグループに対する依存なども簡単に確認が可能です。

 

他にも、弊社では Anomaly Detection を活用しており、主要なポイントに対するネットワークのレイテンシを過去の挙動から傾向監視しています。時折、インターネットを経由するトラフィックの輻輳などが起きます。単純な閾値監視だと頻繁にアラートが鳴ってしまうため監視が機能せず、多くの場合、利用者からの通達で気づくことになってしまいますが、先に気づき第一報を入れることで利用者側の無駄な切り分け時間などもなくなります。以下の赤い部分の値を検出するためのものです。

 

 

Zabbix も Datadog もそれぞれによいポイントがあるので、 Zabbix で楽にデータを収集して必要なものを Datadog のダッシュボードで一気に分析する。という運用を取っています。今後ですが、ネットワーク機器追加時に DNS の登録と ManagementIP の付与だけ手動で行っているので、Datadog の yml ファイル更新と一緒に  job にしてしまって、SNMP トラップ以外を Datadog へ統合するのも良いかなと思っています。

 

私の所属する部署では、企画から構築・運用まで数人のチームで担当しており、規模が大きくなるにつれて運用だけで手いっぱいにならないように運用の自動化や効率化に努めています。