0
会員になると、いいね!でマイページに保存できます。
運用監視の自動化は、複雑化するアプリケーションやサービスに対して効率的かつ確実な運用監視を実現する上で、またコスト削減の意味でも重要な要素になってきています。しかし運用監視の自動化は、どのように考えて実現していけばいいのでしょうか。
本記事は「「私ゼロから監視設計できます」と言える人、いますか? 運用監視の自動化を考える」の続きです。
ゼロからの監視設計
前佛雅人氏。ここでようやく、ゼロからの監視設計の話です。
監視設計をざっくりわけると、こんな風に定義できると思います。
ひとつはサービスレベルの定義、もうひとつは非機能要件としてのシステム監視ですね。こういうことは以外と職場でも学校でも教えてくれなかったことです。
なぜかというと、だいたい担当部署によってみているレイヤが違うわけです。物理層を見ているところ、ネットワーク層、あるいはインフラは外部の事業者に運用監視をまかせているところもあると思います。
Webページが表示されないとかレスポンスが遅いとか、そういうサービスレベルの監視、ここは欠かせません。
しかし、ここでは非機能要件と書きましたが、ここが忘れられがちだと思います。
システムがつねに正しく動き続けているかどうかを見る、なにかあったときの目として、プロセス監視やシステムリソースやネットワークやハードウェアといったあたりの監視が欠かせないと思います。
チームごとに別々の監視画面を見ている、というのもよくあります。ネットワークチームはスイッチだけ、サーバの監視ではCPUとメモリだけ、などです。
これらはまとめて見た方がいいと思います。というのも、ある日突然、原因不明でトラフィックが増えたりロードアベレージがあがったとしたら、なにか原因があるはずです。そしてそれが最終的にサービスレベルに影響するはずです。
しかしシステムレベルで監視をすることによってサービスレベルに影響しないよう、未然に防止することに役立てることができます。
知識と経験について
例えば、とある会社のWebサイトを構築しようと考えたとしましょう。
いまだとWebサイトをDockerを使って構築したいというニーズがあったとします。でもDockerのWebサイトってどうやって運用するのか、どうやって監視するのか、分かりませんよね。
でも基本は変わらないと思います。Webサイトであれば80番ポートの応答速度を監視するとか。
Dockerがどうやって動いているのかも気になると思いますが、これまでと同様に非機能要件、システムリソースを監視していればいいでしょう。Dockerになっても、監視に対する考え方はあまり変わらないと思います。
こういう風に考えるときに必要になるのが、知識と経験です。
監視をするにあたって必要な知識は、基本的にはこの3つ。OS、基本コマンド、プログラミング言語だと思います。
Linuxであればカーネルの主要な機能を調べておくといいと思いますし、監視ツールで見ているシステムリソースはたいてい何らかのコマンドを叩いたりしているので、どうやってこの項目を見てるのか、という知識もあったほうがいいですね。
もうひとつ、私が強調したいのは、自由に扱えるプログラミング言語がなにかひとつあったほうがいい、ということです。そうすれば、監視ツールにない項目でもプログラムを組んで監視できるようになります。
でも知識だけではだめだと思いませんか?
私としては経験を得るのための提案として、IT系のエンジニアならば、仮にもWebサーバ系ならば、自分で何らかのWebサーバをひとつくらい運用しませんか?
最近だとクラウドで簡単にサーバを作ったり壊したりできるので、Webサーバをずっと持っている人は多くないかもしれませんが、やっぱり自分で自由に遊べるサーバを持っていた方がいいと思います。
例えばタクシー運転手で、勤務時間内しかクルマを運転しない、という人と、趣味としても運転をしています、という人がいたら、どちらが信用できますかね、というレベルの話です。
できればインターネット上にサーバを立てるとこわいです。日々アタックもありますし、いろんな事故に巻き込まれたりすることもあります。でもそういう経験をすることで、いろいろ仕事に役立つと思います。
【次ページ】 なぜ私たちは失敗するのか
関連タグ