キャリテク!マガジン
- TOP
- キャリテク!マガジン
- なりたい自分になろう - 明日を生きる戦略 「変われる」エンジニアになろう (2) -異常検知に強くなろう 前編-
なりたい自分になろう - 明日を生きる戦略 「変われる」エンジニアになろう (2) -異常検知に強くなろう 前編-
こんにちは。株式会社パイプラインの濱田です。
前回はダーウィンの言葉から"「変われる」エンジニアになろう"というテーマを取り上げましたが、今回は日常の業務から"変化を感じる"にスポットを当て、異常検知について取り上げてみたいと思います。
インフラ運用担当にアサインされて最初に、Zabbixなどの監視ツールでグラフを見ることからはじめる方も多いかと思います。また、アラートメールを受信してから対応フローに則って障害対応を行うこともあるでしょう。
はじめて運用監視の業務に就くにあたって、ホストごと落ちていた、特定のサービスが落ちていたなどの障害は想像しやすいと思いますが、CPU負荷やメモリ使用量、ネットワーク流量、ディスク使用率など、監視対象ホストが起動している限り連続して変化する値については、ある値を超える(または下回る)と異常とみなす監視しきい値と呼ばれる指標があります。
もう少しわかりやすく書くと、監視しきい値とは「何をもってして異常とするのか」を決めた数値ということになりますね。この監視しきい値を超えたとき、または正常な範囲に復旧したときにメールやslackなどに通知が飛んでくることもあるかと思いますが、監視グラフの中長期傾向から障害予兆を検知したり、曜日ごとや前年同日との比較で異常を感じ取ったりして運用改善につなげることも重要です。
監視異常に気づいたら
下記のようにグラフにスパイクが立っているパターンや、あるいは大量にアラートメールを受信した、というようなケースは、何らかの障害が発生していると生理的に感じやすいでしょう。
こうしたピークが
- 明らかに他の時間帯と比較して突出している
- 規則性がない
- 監視しきい値を超えている
という場合、すべてにおいて当てはまるわけではないですが、高負荷によるサービス障害が疑われます。
もちろん、グラフにスパイクが発生していたからと言って、そのこと自体がサービスレベルの低下を示しているわけではなく、あくまで「何かおかしいぞ?」と気づく1つのキッカケとして捉えるのがよいでしょう。
グラフのピークが他の時間帯と比較して突出していた。さてどうする?
明らかに他の時間帯と比較してグラフが突出している場合、その時間帯に何がおきていたのかを調べることになります。
WEBサーバーであれば、前後の時間帯や過去の同じ曜日・同じ時間帯と比較してアクセス数が多かったのではないか?という仮説をたてて、アクセスログの行数を時間帯で絞り込んでカウントするのもよいでしょう。
また、サイト全体にアクセスが多かったのか、特定のページのみにアクセスが集中していたのか、を調べることでその時何が起こっていたのかを絞り込むことができます。
WEBサイトのアクセス数やページごとの人気ランキングを把握するためにアクセス解析ツールやソーシャルシェア数のカウントを行うこともあるかと思いますが、特定の時間帯にどのページへアクセスが集中していたのか、を調査するには、これらのツールはやや力不足ですので、WEBサーバーのアクセスログを解析するクセをつけましょう。
私がWEBサーバーのアクセスログを解析する場合、
以下のコマンドをパイプライン「|」で繋いで組み合わせることが多く、
grep
awk
sed
head
tail
sort
wc
また、ローテーションされたログがzip圧縮されていることもありますので、
zcat
zgrep
などのコマンドを用いることもあります。
ログ解析の技術はまた別途掘り下げたいと思いますが、これらコマンドの使い方、ApacheやNginxなどのログフォーマット、HTTPステータスコードの知識と、できれば正規表現の使いどころを身につけることで、仕事の質と効率が圧倒的に向上します。
単にグラフのスクリーンショットを採って比較してもよいのですが、それだけでは「他の日、他の曜日、他の時間帯や他のホストと違うのはわかった。で?」と言われておしまいです。
初報で因果関係まで報告できるのがベストですが、「その時何が起こっていたのか」の証跡を揃えて報告できるところを最初の目標にすることをおすすめします。
今回のまとめ
IT業界の登竜門としてサーバー・ネットワーク監視からアサインされることはよくあります。
同じ監視エンジニアでも、以下のポイントを意識することでより付加価値の高い仕事を任せてもらえるようになります。
- 性能監視には「ここを超えたら異常」とみなす監視しきい値がある
▶監視しきい値を超えたとき、どう対処するかを覚えよう
▶障害調査を行うときにどのようなコマンドを実行するとよいかを確認しよう - 何かおかしいぞ、と気づく感性を身に着けよう
▶おかしいぞ -> そのままにしない
▶グラフの異常はログで裏付けをしよう
まずはITエンジニアとしてデビューしたい、という方は、3 ヶ月間学びながらお給料が貰える AltX キャリテク!の門を叩いてみてはいかがでしょう。
https://www.kcct.co.jp/careetec/