最近アライドアーキテクツに入社いたしました平野と申します。
アライドアーキテクツでは主にインフラエンジニアとして、
各種サービスの土台を作る・守る立場として汗を流していきたい所存でございます。
(太っているので無駄に汗流してすいません。鋭意減量中です)
さてこのエンジニアブログ、何を書くとよいのか悩みますが、
1回目としてはシステムリソースの可視化について少し書きたいと思います。
【システムリソースとは】
システムリソースとは何か、それは私の立場(インフラエンジニア)からすると
いわゆる稼働するサーバ機器、ネットワーク機器を構成する部品たちの有する「体力」を表します。
#人、立場によっていろんな定義はあります。
例えばCPUだったらどれだけ演算できるか、とかメモリだったらどれだけ使えるか、とか、
ディスクだったらどれだけ保存できるか、などです。
【システムリソースを可視化する目的】
運用を始めると、いわゆる「ボトルネック」は、その連携しているパーツのどこかに無理が生じ、
他のパーツは余裕なのにシステム全体では低いパフォーマンスとなってしまうことが、多々あるものです。
それを「早期」に予測し、手を改善を促し、時にサーバ側のパーツを追加する、という手だてにつなげます。
この判断をするために定期的にリソースチェックを行うことになるのですが、
その手段の一つに「システムリソースの可視化」を行い、視覚的にシステムの状況をチェックします。
【可視化しているリソース】
CPU、メモリ、ディスク、というようなものの一般的なものはもちろん取得していますが、
それよりもどちらかというと、OS、ミドルウエアの統計を可視化するほうが
システム全般の動向を発見する手がかりの一つとなります。
当社では、稼働しているミドルウエアに関する統計情報は極力可視化しています。
httpdのServerStatusはもちろんのこと、Ldirector、Mysql、Squid、Postfixなどの
主力ミドルウエアの他に、例えば仮想化ミドルウエアの統計情報なんかも積極的に取得しています。
【可視化のツール】
可視化は主にリアルタイム(グラフ生成のタイムラグはありますが)に表示できるツールを導入します。
世の中にはいろいろなツールが提供されています。MRTG、Cacti、Munin、Gangliaなど。
Zabbixもリソース情報取得と運用監視の機能をもちあわせた注目のソリューションで、
5/21に待望の2.0もリリースされたことですし、今後このブログでも取り扱えたらと思います。
当社でも、上記ツールのいくつかを併用していますが、今回はMuninについて紹介します。
当社では、CPUやメモリなどのサーバ資源を取得はもちろんなのですが、
特にMuninの役割としてはOS、OSSのミドルウエアの統計情報を楽に取得するために利用しています。
Muninは標準で用意されているテンプレートが豊富であり、導入は監視したいテンプレートを
適用するだけで可視化のための情報取得を開始してくれます。
※厳密には設定が必要なものもありますが。
ここで、当社で設定している一部サービスの一部の可視化情報を抜粋して出してみます。
どこでどう危なくなるかわからないので、危険そうなところはモザイクかけていて、
モザイクだらけですいません。(薄目でみても見えないですから)
◎LVSのバランシング情報
バランスされている割合は意図的か(重み付け次第ですので)などをカラフル(くどいけど)にチェック。
◎memcachedの発行コマンドの内訳
使われ方の傾向、キャッシュヒット割合をみてアプリケーションチューニング、ミドルウエアチューニングに生かす。
◎MySQLのquery割合
◎Squidのリクエスト統計
これらの情報を、ある程度の単位で串刺しでみることができます。
これでざーっと見比べて、特に気にしなければならないところがないかをこまめにチェックしています。
こんどはモザイクではなくてぼかしてみます。
【まとめ】
リソース不足問題がおきてから初めて調査してボトルネックを発見して対処する、
というようなシステム運用は負けです。
このようなツールを駆使して、システムで起きていることをできるだけ視覚化して、
システムが発している問題の予兆を緻密に汲み取り続けることがシステム運用する上で
重要な作業の一つであり、そして継続して行うことが重要です。
当社のサービスにおいて、お客様に快適に安心して使っていただけるよう、
今後も継続して精度高い予兆診断をしながら、システムを健康に育てていきたいと思います。
【最後に】
当社では、私と一緒に減量しながらシステムの健康状態をチェックしながら
システムを作り上げ、運用していく同士を引き続き募集しているそうです。
ぜひご興味がある方はご連絡ください。
ありがとうございました。
(次回はもう少し深い内容にしたいと思います)
アライドアーキテクツの管理するサーバ・ネットワークインフラ全般を担当しています。 自転車乗るのとご飯食べるのと無駄遣いが趣味です。