Slide 1

Slide 1 text

Datadog で作る NW 監視の メリット/デメリット ネットワークプログラマビリティ勉強会 #17 サイバーエージェント 山本 孔明 @komeinw

Slide 2

Slide 2 text

❏ 山本 孔明@komeinw アドテク本部のインフラ組織(SIA)所属のネットワークエン ジニア 兼 責任者 主な業務 ● オンプレとパブリックのネットワーク(物理/仮想) ● OpenStack / CircleCI Enterprise ● Aritifactory ...etc ● チームマネジメント 自己紹介

Slide 3

Slide 3 text

1998年の創業以来、インターネットを軸に事業を展開し 現在では代表的なサービスである「Ameba」をはじめ、 スマートフォン向けに多数のコミュニティサービスやゲームを 提供しています。 and m ore !! サイバーエージェントについて

Slide 4

Slide 4 text

サイバーエージェントの事業内容

Slide 5

Slide 5 text

アドテクスタジオについて インターネット広告において、広告配信の最適化やメディアの収益最大化という観点から アドテクノロジーの重要度が高まっています。 サイバーエージェントではアドテクノロジー分野における これらのサービスについて各子会社を通じ開発しておりましたが、 各サービスの開発部門を横断して組織化する専門部署として アドテク本部・アドテクスタジオが設立されました。

Slide 6

Slide 6 text

https://adtech.cyberagent.io/aboutus/

Slide 7

Slide 7 text

サイバーエージェントのアドテク 詳細は「日本一やさしいアドテク教室」を御覧ください! https://adtech.cyberagent.io/pr/archives/3601

Slide 8

Slide 8 text

まずは NW 監視について整理

Slide 9

Slide 9 text

ネットワークの監視 ● 死活監視 ○ Management IP への疎通可否 ● 性能監視 ○ トラフィック量 ○ CPUや電源などハードウェアの状況 ● アラート受信 ○ Active / Standby が入れ替わった ○ リンクがダウンした ● ログ監視 ● 外形監視 ○ BGP ハイジャックの検知 ○ グローバルからの疎通性と遅延

Slide 10

Slide 10 text

ネットワークの監視 ● 死活監視 ○ Management IP への疎通可否 ● 性能監視 ○ トラフィック量 ○ CPUや電源などハードウェアの状況 ● アラート受信 ○ Active / Standby が入れ替わった ○ リンクがダウンした ● ログ監視 ● 外形監視 ○ BGP ハイジャックの検知 ○ グローバルからの疎通性と遅延 Ping SNMP SNMP Trap Syslog ping / traceroute

Slide 11

Slide 11 text

ネットワークの監視 ● 死活監視 ○ Management IP への疎通可否 ● 性能監視 ○ トラフィック量 ○ CPUや電源などハードウェアの状況 ● アラート受信 ○ Active / Standby が入れ替わった ○ リンクがダウンした ● ログ監視 ● 外形監視 ○ BGP ハイジャックの検知 ○ グローバルからの疎通性と遅延 Ping SNMP SNMP Trap Syslog ping / traceroute 今日はここの話をします

Slide 12

Slide 12 text

アンケート取らせてください

Slide 13

Slide 13 text

www.menti.com code: 910052

Slide 14

Slide 14 text

本題へ

Slide 15

Slide 15 text

Datadog について ● クラウド型のモニタリングツール ● Integration が豊富。2019/06時点で280種類以上。 ● ダッシュボードのカスタマイズ性が高い ● tag を用いて効率的な分析が可能 ● イベントと紐付けて分析が可能

Slide 16

Slide 16 text

Datadog について ● Slack との連携が容易 ● API で外部データも投げ込むことができる ● Kubernetes や docker との親和性 ● 画面のシェアが容易

Slide 17

Slide 17 text

Kubernetes との親和性について

Slide 18

Slide 18 text

Datadog のキホン ● キホン的に Agent を入れて監視する ○ dd-agent をサーバに入れる ○ yaml で conf を書いて監視 ● 足りないものはカスタムメトリクス ○ 自分で check.d 配下にお手製のプログラムをおけば OK ○ python OK ○ yaml で conf を書いて監視 ● インテグレーションの活用 ○ AWS や GCP 連携 ○ Kubernetes のリアルタイムモニタリング

Slide 19

Slide 19 text

で、Datadog ってネットワークに監視に使えるの? ● SNMP Integration がある ○ https://docs.datadoghq.com/ja/integrations/snmp/ ○ ネットワークエンジニアにも馴染みの感じ ○ 特にカスタムはいらない。つまり yaml を書くだけ ○ Agent を監視用のサーバにいれて tag で制御 ○ Zabbix でいう LLD 的なこともできる ○ インスタンス単位で ip_address のシーケンスの塊を書く 必要がある

Slide 20

Slide 20 text

yaml 書くのがめんどくさい問題 ● Ansible などの構成管理ツール使えば OK ○ ansible の group_vals にホストを登録すれば追加できるようにしています ○ templates に conf ファイルを定義、 for と if を使ってマルチベンダーに対応できる ● Monitor の設定が上記でカバーできないので別のツールを使うと良いです。 ○ https://github.com/codenize-tools/barkdog ○ https://www.terraform.io/docs/providers/datadog/r/monitor.html

Slide 21

Slide 21 text

Zabbix の LLD 的なところを ● IF-MIB の中の ifTable から ifInOctets や ifOutOctets などを引っ張ってきている ● 左記のように書くと tag は hostname や location などをつけて、さらに interface: という tag もつくようになる

Slide 22

Slide 22 text

Dashboard

Slide 23

Slide 23 text

Dashboard

Slide 24

Slide 24 text

Dashboard

Slide 25

Slide 25 text

NW × Datadogで得られる大きなメリット ● 全体を俯瞰して見るのがすごく楽 ○ tag での分析がとにかくいい。スクリーン作るの面倒だな・・からの解放 ○ Host Map、TopN など可視化の手段が豊富 ○ 積算グラフもすごく使いやすい ○ 変数を使ってリージョンごとなどの単位に切り替えることも可能 ● インテグレーションで作り込みを避けられる ○ AWS の DirectConnect のインテグレーションとか ○ docker や kubernetes とか ダッシュボードをフル活用すれば「なんか最近エラー出るんだけど、何か起きてます か?」などの障害分析が楽になる。

Slide 26

Slide 26 text

あれ?Pingは?SNMP Trapは?Syslogは? 基本的にはなんとかできるる。しかも全台に Agent 入れる必要はない。 ● Ping ○ これも代表ホストから fping を打てば OK ○ カスタムメトリクスで対応 ● SNMP Trap ○ snmptrapd + snmptt をインストールしたサーバを datadog logs で監視すれば OK ● Syslog ○ rsyslog で受けてそこを datadog logs で監視すれば OK ○ キーワードで引っ掛けて monitor でアラート通知をする

Slide 27

Slide 27 text

デモ https://app.datadoghq.com/logs?

Slide 28

Slide 28 text

ここまで褒めてきたがデメリットの話を

Slide 29

Slide 29 text

個人的に気になるところ ● ポーリング間隔の制御 ○ min_collection_interval で制御はできる ○ instance ごとに記載しないといけない ● メトリクスを確認する時に古いものが丸まる ○ zabbix でいうトレンド設定的なもの ● アラートの評価のタイミングに注意 ● ログの量によっては Datadog logs の課金が大変なことに ○ Firewall とか結構ログ吐き出すので気をつけないと・・・

Slide 30

Slide 30 text

用途に合わせた使いわけ Zabbix と Datadog を併用しています。 ● Zabbix ○ 監視のメイン ○ SNMP Trap、SNMP Polling、Ping による死活監視 ○ Auto discovery で登録するので基本は触らないしログインもほぼしない ○ 物理ネットワーク用で用途ごとに別のものが存在している ○ 通知は主にこちらから ● Datadog ○ 分析用、開示用 ○ 何かあれば頻繁にログインしている。サーバの NICの情報も混ぜて取っているので、分析もしや すいし、他のエンジニアにも見てもらえるものになっている。 ○ 傾向監視なども使っていたが今は利用していない

Slide 31

Slide 31 text

他の運用周りの話 ● 監視・運用系のサーバは VM 2台 ○ zabbix + datadog agent + rsyslog が入った VM ○ 雑多に docker コンテナが動いている VM ● 1台目のサーバは Ansible で全部立ち上がる ● docker コンテナは以下のようなものが動いている ○ バックアップなどの定期ジョブが動く job サーバ ○ 任意の show コマンドを叩ける bot ○ netflow や sflow のサーバ ● 割とカジュアルに作ったり壊したりできるので環境構築は 楽です

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

広告プロダクトに携わりたい
 インフラエンジニアを募集しています

Slide 34

Slide 34 text

ご清聴ありがとうございました