はい 時間になりますので そろそろ始めさせていただきたいとおもいますOSSで作るオープンスタックの監視システム ということで NTTソフトウェアの負荷数が努めさせていただきます本日はよろしくお願いいたします本日のアジェンダーになりますまず イントロダクション 始めにということと サーバー監視に必要な物理側の監視 仮想側の監視それぞれ使えるこのネタを ご紹介させていただきたいと思いますさらに 今回 監視のほう ザビックスを使わせていただくんですけれどもザビックスが増えると 監視画面 画面のほうが増えてしまうのでこれを一つにまとめる方法で 最後にログ監視の仕組みですねログ監視 ログ解析 オートのようにあるかということをご紹介させていただければと思いますまず イントロダクションとして弊社NTTソフト屋では オープンスタックを利用した開発というものはSXバージョン Eバージョンから やらせていただいておりましてその中でも 開発をする中で常々監視であるとか ログ解析というものが常に課題として上がっておりました今回は こちらの課題につきましてOSS製品の組み合わせだけでこちらの問題 解消させていただいたのでこちらを ご紹介させていただきますまず この監視システムを作るときにまず何が必要かなということを 洗い出してみました共通のものとしてまず 作り込みはあんまりしたくないOSS製品ですので 極力作り込まないそして 画面を一つにまとめたい更に クラウドなので 自動化できるものは自動化したいというものがあります次に 物理監視で何が必要かなと物理監視では リソース監視 ミドルウェア監視サービス監視というものが オープンスタックを監視する上で重要な要素になってきますなので まず こちらを ご紹介したいと思いますこちらをOSSの組み合わせだけで 実現いたしました本日のキーワードを オープンスタックを監視する上でオープンスタックは 一つのアプリケーションとして 考えてください一つのアプリケーションとして 考えることでアイアスだから難しいとか 思わずに簡単に監視ができるようになります更に 監視する上で 仮想側 物理側両方 オープンスタックを使うんですけれどもこちら きっぱりと 分けて考えてください分けて考えるということが オープンスタックを監視する上で重要な項目となっております更に 分けて考える分けて考えるということは物理側の故障は 物理側で検出しましょう仮想側の故障は 仮想側で検出しましょうということがあげられます最後に ログ監視 ログ解析につきましてはEFKスタック プラスノリクラとザビックスというものを組み合わせてログ解析というものをやらせていただきますぜひこちらは 覚えていただきたいと思いますまず 物理側と仮想側分けて考えましょう ということなのでまず ここで 本日はここで きっぱりと分けたいと思います物理側といったら 赤い線より下側仮想側といったら 赤い線より上側のことを刺すことになります下側はミドルウェア もしくはオープンスタックのプロセス サービスが対象になって上ではオープンスタックが作るものですねVM ルーター 仮想ネットワーク 仮想ボリュームこういったものがあげられます本題になりますまず 物理側で必要な項目リソース監視 ミドルウェア監視サービス監視というものが必要になりますけれども本日は ミドルウェアとサービス監視これを簡単に行える方法こちらをご紹介したいと思いますザビックスのある機能を使うんですけれどもザビックスのユーザーパラメーターというものを使いますこれを使うと 何が嬉しいかと申しますと他のOSSの監視製品センス デアルとか ナギオスであるものが使われるんですけどそこで公開されているプラグインこちらをザビックスの方でも簡単に使うことができてしまいますこちらを使うとですね例えば センスのプラグインをザビックスの方で組み込ませてみました例えば ノバハイパーバイザー賞というあるコマンドから その事項結果をザビックスの監視項目として設定したりとそれはサービス監視になるものなんですけれどもユーザーパラメーターポイント ポイント レーザーポイントこのようにスクリプトを実行してその戻り位置から 多くのコマンドなり何なりを使って 必要なキーワードだけ抜き出します今回の場合 起動するVMが1台なので値が1って返ってきますこの1って返ってきた項目がザビックスの監視項目として収集が可能というものになりますこちら ミドルウェア監視 サービス監視両方とも使える項目なのでぜひ覚えていただきたい項目ですねこれでサービス監視 ミドルウェア監視両方できてしまうので 物理側の監視はこれでおしまいになりますさてお次 仮想話の監視仮想話の監視で必要な機能としてVM作ったり 消えたり 作ったり 消えたりというのが頻繁に起こると思いますその中 作ったら監視の設定をして消えたら監視の設定を外すということを 一一手でやってたら大変ですねなので こちらを自動化したいと思いますさらに 仮想資源の構想の見つけ方こちらをご紹介したいと思いますまず前提として 監視サーバー どこに置きますかザビックスサーバー どこに置きますかという問題があるんですけれども方法として2種類ハイパワイザー上 物理側にザビックスサーバーを設置して仮想マシンの監視は 物理側のザビックスですべてまかなという方法もう一つ プロジェクトごとにザビックスサーバーを設置します自分のプロジェクトの監視は自分のザビックスで行うこの2種類が上げられます赤い方各プロジェクトにザビックスサーバーを設置してザビックスサーバーでVM仮想資源 仮想マシン 仮想資源の監視を行うという方法を取りましたここで必要になる機能として同じくザビックスの機能になるんですけれども自動登録機能 オートレジストレーション機能というものが使われますこれがどんな機能かと申しますとザビックスエージェントからザビックスサーバーに対して通知を行うんですね私生きてますよ私いますよという設定をその時にザビックスエージェントの設定値としてメタデータという項目があるんですけれどもここにある設定を加えておいてサーバー側にもこの設定が入っていたらこういう監視項目で監視を始めますという設定をあらかじめしておくだけで監視が自動的に始まるすぐれた機能になっております本日こちらを使ってVMの監視というものを自動的にザビックスの監視対象に組み込みたいと思います例としてあげるとこんな感じですねザビックスサーバー側にもしメタデータがウェブっていうものが来たらテンプレートはウェブのテンプレートを適用しなさいもしメタデータがデビーだったらデビーのテンプレートを適用しなさいこういう設定を組み込んでおいてVMがどんどんできたとしますそれぞれの設定メタデータにそれぞれの値が入ってると勝手にザビックスサーバーの方で解釈して監視設定に組み込んでくれるオートンスタックでこれどのように実現するかと申しますと事前にグランスのイメージに登録しておくだとかVMを起動する際ノバのカスタムスクリプトを使ってデータを流すあとVMを立ち上げた後パペット、シフ、アンシブルなどを用いてザビックスエージェントとこの設定を設定するという方法ができますこちらを余計に合わせて用途に応じてやり方は変えて頂ければと思いますさてこれで自動で干渉するということはできるんですけれども問題はケスホ消えたVMの設定を解除するこちらは同じくザビックスのネットワークディスカバリー機能というものを使います本来先ほどと同じように監視の設定を新しく追加する機能になるんですけれどもこれを逆転の発想といいますか逆に使います今回必要なのはパワーオフとデリートとVMが故障したというのをあえて考えないということをします何で分けて考えないのかと申しますと例えば電源オフもしくはVMを削除しましたザビックス側にもちろん通知が上がりますVMがおかしいぞオペレーターおかしかったら直しに行きますよね直しに行かない場合行かない場合というのは自分で電源消したから通知が上がって当然だよでオペレーターは思うわけですそういう時はずっとアラートが上がりっぱなしずっとアラートが上がりっぱなしということはその監視対象から外しても特にオペレーター運用者から見たら外はないもし故障だったらオペレーターがんばって直しますのでそれ以外のパターンはとりあえず消えてもらいましょうということになりますで、ずで表しますとザビックスから見えている状態ですねNode1から5番まで今監視されていますで、仮にNode3が交渉したもしくは電源が落ちたもしくはVMを削除したでなるとザビックス側にアラートが上がりますこのまま放置された場合ザビックスのネットワークディスカバリ機能によってこのネットワークアドレス体このアドレスの範囲でIPの卒業が取れるかどうかというのをザビックスが行います今、3号機卒業取れない卒業取れないぞとなったら監視化対象から1回外してしまうちょっと乱暴なやり方ですけどこれで監視対象から外れるともし電源オフだった場合もし電源オフでしばらくしていたら電源オンになったそうなると監視対象から外れているとちょっと困りますよね先ほどのオートレジストレーション機能自動登録機能を使うと帰ってくる再設定される監視対象に再設定されるこういう機能を使いまして仮想バシーの監視登録監視の設定解消というものがザビックスの機能だけで行います仮想試験の交渉仮想試験の交渉仮想試験だけが壊れた場合の交渉の検事の仕方よくあるのが仮想ボリューム全部使えなくなったいわゆるハードウェア交渉こういうのは検事しやすいと思いますただ赤い線がマウントしていると思ってくださいこのVMがこのボリュームをマウントしているこのVMがこれをマウントしていると思っていただいた場合こっちはなぜか書き込めなかったこっちは正常に書き込める同じハードウェアに乗っている同じ場所にある資源に対してももしこのようなものが起こった場合これどうやって見つけますかこれもいたってシンプルなのです仮想バシーの監視をしていればそちらが簡単に見つけることができます例えばこのVMこの仮想バシーに対してこういう監視項目を設定していたとしましょう生きていますか 死ねますか資格監視プロセス監視 リソース監視ハードウェアの監視SNMVP監視今回はこのリソース監視ディスク監視のところで簡単に検知ができますディスクが見えなくなった 書き込めなくなったこのリソース監視のところでおけばこの障害ここだけおかしになった っていうのを見つけられますもし他の故障故障ってなってたらそれはハードウェアがおかしい可能性があるのでひとつだけおかしかったってなったら仮想側の故障を疑ってください以上で仮想マシン物理側の監視の説明でした次なんですけども先ほどザビックスサーバー各プロジェクトに立てますとお話ししましたこれするとひとつだけ困ることがあるんですね一番最初にお伝えした画面をひとつにしたいこれが実現できないんですこのようにやってるとすみません手なんとでかいでしまいますけどプロジェクトをですねが増えてくると気づいたらザビックスのタブがものすごいことになってしまうんですね我々お用者っていうのはずっとザビックス見てるわけじゃなくてメール通知があったらザビックスを見に行くっていうことをやりますただその時にメールで以上ですよ通知されてもどのザビックスだっていうところから探さないといけないんですそれはちょっと困りますよねタブが10ぐらいなら探せると思うんですけど100とか行ってくるともうちょっとしんのいのでここで別のツールを使いますここでホーッと掘るっていう同じくOSSの製品があるんですけどこれを使用しますこのホーッと掘るを使うと何が良いことかと申しますとザビックスを一つにまとめてくるザビックスの画面例えばザビックス1ザビックス2っていうのを一つの画面にまとめてくれるんですなのでまず運用者はこの画面を見てればザビックス何番目がおかしなことになっているのかっていうのが一目で見てわかるこちらで画面を一つにするということに人やっかっているわけですねさてここまでのことまずまとめますと物理側の故障は物理側でまず検知しましょう仮想側の故障は仮想側で検知しましょうさらにオープンスタックのサービス監視であるとかミドレウェア監視につきましては他のOSSの監視性センスであるとか投議をする加工化しているプラグインも有効活用することで他に実現できます仮想マシンの監視対象に自動的に追加するにはこのオートレジステレーション自動登録機の使い監視対象から外す場合ネットワークディスカバリー機の使いましょう最後になりますけれどもザビックス複数のザビックスを使うと画面を一つにまとめたいという要望が出てきますのでそちらはホトホルーというものを使って画面を一つにまとめましょうというものがサーバー監視についてでしたさてお次ログ監視の方法になりますここでやりたいのはもちろんログ収集ログを可視化するということはもちろんのことログ解析を簡単にやりたいログ解析を簡単にやってさらになおかつ自動でやってくれたら嬉しい自動で解析して通知まであげてくれそこまで行ってくれたら非常に嬉しいということでこちらをご紹介したいと思います今回使う仕組みなんですけれどもログの検索にはイラスティックサーチログ収集にフルエントDログの可視化にキバナを使っておりますここよくログコレクトログスタッシュじゃなくてフルエントDじゃなくてログスタッシュというものを使ってる人も結構いらっしゃると思うんですけれども今回はフルエントDを使っていますさらにここから下は皆さんご存知ない可能性が高いと思うんですけれどもログ解析にノリクラー同じく通知にザビックスも使っていますまず上の3つだけイラスティックサーチフルエントDキバナだけを使ってこのログの解析ログの可視化というものをやった場合このように簡単にグラフ化して一目で両前だって一目で見ればわかるというふうによく見られるんですけれども見てわかるということは人が見ていないといけないんですね例えばグラフが動いたって見ている人がいないと気づかないわけですよなのでここまず重要なのはグラフが動いたら件ですこういう試験がまず一つ重要になってきますさてそこで使うノリクラーノリクラーって何をって思う人結構いらっしゃると思うんですけれども公式サイトから引っ張ってきた文語になるんですけれどもスキーマレストリーミングプロセッシング with SQL簡単に言うとスキーマレストでSQL解析ができるOSS製品ですこちらを使ってログ解析のところをやらせてみたいと思いますもうちょっと仕組みのところを簡単に説明いたしますとログがしっきりなし流れてきます左から右に流れると思ってくださいその時にある一定の時間だけ切り出します例えば1分とか2分とか5分とかここで切り出したログに対してSQL解析をかけますSQLに位置すれば何とかとかSQLのこういう条件に位置するのが何件あったとかそういう解析をさせてあげて解析が終わったらそのログは捨てるバサリ捨てるまた最初に戻るということをやってくれるものですねSQLストリーミング解析というものですこれを使った簡単な構成になるんですけれどもオープンスタックの入ってるところにフルエンドDログ収集用のツールを入れます監視サーバー側にも受け取り用のフルエンドDログを受け取るフルエンドDを用意しますそこからまず同じくイラスティックサーチと基板にデータを流すのはもちろんのこと同じデータをノリクラに流しますここでノリクラに流すとSQL解析というものをやってくれます同じくファイルにも入ってるんですけどこれはバックアップ用です念のためですねこの構成使えば皆さん簡単にインストールできるんですけれども一つの問題がありまして作るだけじゃんこのシステムあんまり使えないんです大切なのはここのノリクラノルールをどうやって作るかここが重要になります我々のインバージョンからオープンスタック開発にアラースリーいただいているのでそこからのノーハウを基にしてログリストというもの我々は作っておりますこのログリスト例えばこのログとこのログが一緒に出たらなんか問題が起こってるとかこのログ単体なら問題ないけどもう一つのログが一緒に出てきたらなんか危ないぞ同じくエラーログなんだけど別にエラーなんだけど無視していいそういうものを一覧化しているものになりますこちら我々が開発を見たと触ってるそれぞれのバージョンで作成しておりましてそれもとにノリクラノルール作りというものをやらせていただいております大切なのはもう一度言いますけれどもログを作るかそれがこのログ解析システムを作る作る上で大切なことになりますさて今回ご紹介いたしますのは2つの例をご紹介いたしますまずボートでお伝えしましたグラフが動いたら軽視するという仕組みもう一つはパターン化されたエラーを見つけたいいわゆる今までの運用者が例えばこのログが出たらこういう障害パターンですよというのをオープンスタックの開発を立つ触ってる人がわかるものがあったとしてそれを新しい人新しい人に教える時に1日1から説明したので大変だとなのでパターン化してしまいましょうパターン化してしまえば同じエラーは簡単に検知できる同じエラーの解析に時間をかけることはないそれを紹介したいと思いますまず一つ目グラフの変動を検知する今回例にあげますのはキーストンに対するドス攻撃よくあるブルートフォースアタックとかディクショナリアタックそういうものの攻撃を受けた時キーストンとしては常に401エラー認証エラーのログを早く続けるんですけどキーストン側はこの認証エラードス攻撃に対する防御策というものを持っていないのでまずこちらを検知する検知するというのをまずやりたいと思いますいわゆるユーザーがグラフを見てれば今までのイラスティックサーチフルエントディー キバナだけで人が見てればグラフが動いたというのを見つけられるんですけど今回ノリクラさんにグラフが動いたら通知を上げてね例えばノリクラの設定になるんですけども同一サイピーアドレスから一定時間に401エラーが何回以上起こったらというわけにルールを設定してあげますそしてこの後キーストンに対する店のユーザーIDを利用してキーストンのトークを取りにいこうとすると当然いっぱい401エラーが変えてきますこれをザビックス側をこのように検知します簡単にキーストンはノリクラの通知を受けてザビックス側にキーストンが攻撃されてるぞということが通知されるシンプルにこのルールだけでキーストンの攻撃が見つけられるシンプルな例になっておりますそしてもう一つパターンがされたエラーを見つけたい1回起きたら1回解析したログもう1回簡単に見つけましょう例えばログAとログBが同時にできたら実証Cですよエラータイプゼルゼル2番の実証です例えばもしこのノリクラ使わなかった場合オペレーターは例えばノバブートに失敗したVMの軌道に失敗したってなったときオペレーターまずこれ例ですけどいっぱいログを見ないといけないノバコンダクターなどノバコンピュートの服その他いろいろいろいろ見ないといけないこれ見るためにはログを見るっていうスキルが必要になりますこのスキルを見につけるだけでちょっと時間がかかってしまう失敗のオペレーターには大変ということなのでこれをノリクラにやらせてみたいと思います例えば今回のでノバブートするときにメモリーが実は大量だったと10ギガのメモリーでVMを作ってみたいとただハードウェア上ハイパーバイザーには10ギガのメモリーが存在しないと当然エラーになりますよね当然エラーになるんですけどホーライゾルの方が実行するとなんか起こった失敗したでも利用者から見たら失敗したしかわからないんですよ詳細見てみるとここに500よくあるサーバー側のエラーということで500エラーっていうのが帰りますけれどもそれしかわからない利用者から見たら何が悪かったのもちろんオーデンマーがかかってくるわけですねなんかVMを作れなかったんだけどどうなってるので、電話がかかってきてオペレーターもしこのノリクラがなかったら先ほどのログ、ノバAPIのログノバコンラクターのログなのでこの受賞を解決しようとするんですけれどもこの受賞自体分かりきてるわけですねメモリー使ってるメモリー使ってるフレーバーのメモリーが多すぎだとそういうときログログとしてはトゥーメニメモリーっていうログがはかれるんですけれどもこのトゥーメニメモリーっていうログとVMの作成に失敗したっていうログを同時に出たら同時に出たらっていうノリクラをノルルを書くとザビックスの方にノバブートエーラタイプゼロスロにここのメッセージ自体好きかって変えられるので例えばノバブートエーラオーバーメモリーであるとかメモリー使いすぎですよ設定してあげればオペレーターも電話がかかってきたとしても街頭時間のザビックスを見てあげれば何が起こったのか簡単に分かるということができるようになりますこちらの2点目本日のノリクラのノリクを使った例というものは以上になりますフューチャーアクションとして我々SX versionからオープンスタグ利用しておりますのでこちらのこちらで使ったモアハウというものをノリクラのルールに役立てようとノリクラのルール作りに今後も活用させていただくという形を取りたいと思っております最後にお知らせなんですけれどもNTTグループのS14ブースで任職日13時半から本日のログ回席システムについてノリクラを使ったログ回席システムについてデモストレーションを行いますのでもしよろしければいらしてください以上ですご静聴ありがとうございました何か質問ございましたらこの場でもいいですし後からでも構いませんので私の方にお声かけいただければと思います以上ですありがとうございました