48
P オペレーション自動化と監視の取り組み ヤフー株式会社 サイトオペレーション本部 インフラ技術3部 安藤 格也

ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

  • Upload
    yahoo

  • View
    1.142

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P

オペレーション自動化と監視の取り組み

ヤフー株式会社 サイトオペレーション本部インフラ技術3部安藤 格也

Page 2: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P自己紹介

安藤格也(あんどうかくや)

servak

2011年入社

決済チームで開発、運用

2015/10にNWチーム(現職)に異動

2

Page 3: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P目次

オペレーション自動化

ネットワーク監視

3

Page 4: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PP

オペレーション自動化

4

Page 5: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P普段のオペレーション 5

利用者 NW担当者

専用ネットワークが欲しい

ネットワークを作ります

機器に応じた設定を人が投入

NW機器

Page 6: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P問題点について

人による作業が多いため、ヒューマンエラーが発生してしまう

日常的ではない作業ではなおさら間違えやすい

ヒューマンエラーについて再発防止が難しい

オペレーションに時間がかかってしまい、多くの依頼をこなせない

Etc...

6

自動化を進めていこう

Page 7: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P自動化の方針について

NW機器とのやりとりはCLI(SSH, TELNET), SNMP

CLIだとプログラムで扱いやすい形(JSON, XMLなど)になっていない

SNMPだと取得できる情報が不十分になってしまう

新しい機器、バージョンだとWebAPI、Netconfに対応しているもの

もあるが、古い機器でのオペレーションがまだ圧倒的に多い

7

極力構造化されたAPIを利用出来ないところは努力!

Page 8: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P自動化の方針について

マルチベンダーを利用するがゆえの問題点

NW機器ベンダーによって使いかたが大きく違う。

同じベンダーでも複数のOSがあり、情報取得方法が違う。

8

抽象化を進める

自動化へ

Page 9: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

POS毎のアクセス方法を整理 9

OS API

Cisco IOS CLI

Cisco NXOS Netconf

Juniper JUNOS Netconf

Arista EOS EAPI

Brocade NetIron CLI

Page 10: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

POS毎のアクセス方法を整理 10

Page 11: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pしかし多くの問題が。。。 11

やっていくうちに出てくる問題たち(考慮漏れ)

NETCONFで取れるデータ != 構造化されたデータ

運用している機器すべてでWebAPIが利用できるわけでなかった

運用している機器すべてのバージョンを上げることが難しい

などなど ...

取得方法をCLIベースに変更

Page 12: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P次のステップへ 12

ログイン時にOSを意識する必要性は無くなった

コマンド、コマンド結果は未だOSを意識する必要が残った

=> 抽象化は不完全

Page 13: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P共通モデルの定義

取得したい内容を共通モデル化

コマンド結果の定義化

コアとなる考えのみ定義

すべてのOSで扱えるもの

13

Page 14: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P共通関数の定義 14

共通で利用する関数を用意

共通モデルを取得できる関数

コマンドでのOSの意識を消す

Page 15: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pコマンド結果のパースが大変。。。 15

欲しい情報をコマンドから取得するのがとても大変。

既存のOSSを参考にすることに!

Page 16: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pgoogle/textfsm 16

CLIの結果を解析するライブラリ

テンプレート(独自DSL)を記載すると簡単にCLIをパース出来る

多くのテンプレート実装が用意されている

Networktocode Orgが多くのテンプレートを用意してくれてる

https://github.com/networktocode/ntc-templates/tree/master/templates

OSSとして公開されている

https://github.com/google/textfsm

Page 17: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pgoogle/textfsm利用のコード例 17

Page 18: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pgoogle/textfsmコード例 18

Page 19: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P抽象化ひとまず完 19

IOS EOS

同じ方法で、色んなOSから情報が取得できるように!

Page 20: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pオペレーション自動化へ

fabric(python)ベースでオペレーションを関数化(タスク化)

20

VLAN3897をTrunkする作業

既にVLAN3897は存在している

Po1 Po1

Po205Po205

Po205 Po205まだVLAN3897設定して

ない

mnx04.*****.ynwp snx04.*****.ynwp

es-c1e-b007-1 es-c1e-b007-2

Page 21: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pメンテナンスの自動化

メンテナンスで行う内容

トラフィック寄せ(OSPF, VRRP)

インターフェースのダウンアップ

YAMLファイルに上記の内容を記載することでその状態にしてくれ

るコマンドを作成

設定を流すだけでなく、Before, Afterの状態を確認する

YAMLファイルも機器から情報を取得し自動生成

21

Page 22: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pメンテナンスの自動化

行いたいことを記載することでOSを意識する必要なく、インター

フェースのup/downを実施することが出来るように!

22

Page 23: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pまとめ

抽象化レイヤーの作成を行ったため、オペレーション自動化する

際のコーディングがとても楽に!

抽象化レイヤーのコードカバレッジが90%以上になるほどテストを

しっかりしたことも有り、バグがとても少なくなった

ベンダー毎に取り扱っている情報が違うため、すべてに置いて共

通化は出来なかったが重要概念はしっかり共通化できた

23

Page 24: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PP

ネットワーク監視

24

Page 25: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pネットワーク監視の見直し 25

PING監視

smokeping

リソース監視

MRTG

問題点

情報が散らばってしまう

ツールがバラける(確認箇所の増加)

情報の詳細度が低い

UIがイケてない

Page 26: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pネットワーク監視でやったこと

PING監視

パケットが落ちていないこと

複数拠点から

NW機器のリソース監視

トラフィック使用率

トラフィックが溢れていないこと

SFP故障によるパケットのドロップ

監視のHA化

26

Page 27: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P利用したツール Prometheus

Alertmanager

Grafana

27

Page 28: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PPrometheusとは Pull型(HTTP)のメトリクス監視ツール

Inspired by Google’s Borgmon

Alert管理機能を標準装備

Alertを発生させることが出来るし、管理ができる

多彩なService Discoveryに対応

OpenStack, Kubernetes, StaticFile ...

監視対象を自動的に見つけてくれる

公式で様々なメトリクス取得方法を提供

snmp_exporter, blackbox_exporter, node_exporter ...

28

Page 29: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PExporterについて

snmp_exporter

SNMPによる情報取得が出来る

node_exporter

*NIXのメトリクスを集めることが出来る

blackbox_exporter

外部監視をすることが出来る(pingなど)

29

Prometheus snmp_exporter

定期的に監視(HTTP) NW機器からトラフィック情報を取得(SNMP)

例: snmp_exporter

Page 30: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P

Prometheus

Prometheusの集約について(Federation) 30

Prometheus同士の集約・監視が可能

Prometheus

Prometheus

snmp_exporter

snmp_exporter

blackbox_exporter

Page 31: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P

Prometheus

Alertmanagerについて 31

• Prometheusから来たアラートをルールに応じてグループ化、通知先を変更可能• アラートの黙認など柔軟に設定が出来る

Alertmanager

Chatツール

メール送信

黙認

アラート

Page 32: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pネットワーク監視でやったこと PING監視

パケットが落ちていないこと

複数拠点から

NW機器のリソース監視

トラフィック使用率

トラフィックが溢れていないこと

SFP故障によるパケットのドロップ

監視のHA化

32

Page 33: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PPING監視について 33

BlackboxExporterを利用

ICMP監視

Aggregateも2台構成

Page 34: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PPING監視について 34

パケットが落ちていないこと

複数拠点(4箇所)すべてでPING失敗であったのが30s継続した場合、ア

ラートを発生させる監視設定を追加

Page 35: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PPING監視について 35

Page 36: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PPING監視について 36

Page 37: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pネットワーク監視でやったこと PING監視

パケットが落ちていないこと

複数拠点から

NW機器のリソース監視

トラフィック使用率

トラフィックが溢れていないこと

SFP故障によるパケットのドロップ

監視のHA化

37

Page 38: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pリソース監視について 38

SnmpExporterを利用

監視・可視化のため16指標

の情報を取得

情報量が多いため、短期用

のPrometheusと長期の

Prometheusを設置

Page 39: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pリソース監視について 39

Page 40: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pリソース監視について 40

以下は定常的にアラート化していないが、いつでも確認できる状態に

トラフィック使用率

Page 41: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pリソース監視について 41

トラフィック溢れによるパケットのドロップ

マイクロバーストや上限を超えるトラフィックがきたときに、

ifDiscardsが上昇するためそちらに閾値を設けアラートを実施

Page 42: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pリソース監視について 42

SFP故障によるパケットのドロップ

パケットが壊れている時など、ifErrorsが上昇するためそちらに閾値

を設けアラートを実施

Page 43: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pネットワーク監視でやったこと PING監視

パケットが落ちていないこと

複数拠点から

NW機器のリソース監視

トラフィック使用率

トラフィックが溢れていないこと

SFP故障によるパケットのドロップ

監視のHA化

43

Page 44: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

PHA化について 44

AlertManagerをHA構成で稼働

アラートは2つのAlertManagerに連携されるが実際に通知される

のは1件のみになる。

Page 45: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pアラート通知内容 45

Page 46: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

Pまとめ 情報を集約することで、適切なアラートだけ上げることが出来るようになった。

アラートに応じて、条件を細かく指定できることが良かった。

Alertmanagerによりアラートをグループ化することが出来るため、一気にア

ラートが来たときもグループでまとまりわかりやすくなった。

46

Page 47: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P今後について 監視ツールとしての信頼性を高めていく

まだsmokeping, MRTGを利用して監視通知を上げている状態でもあるため、

それを完全に切り替えていきたい。

長期データの保持について考えていく

47

Page 48: ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy

P

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

48