ビジネススピードと信頼性を両立させる システム基盤構築記[by mixi]
第2回 mixi.jpを支える運用監視
はじめに
株式会社ミクシィの小池知裕です。運用部でアプリ運用を担当しています。前回は年末年始や突発的な負荷に耐えられるシステムの改善について紹介しました。連載2回目となる今回は,
監視/ 測定って?
まず,
そこでは,
mixiでの監視/
- 死活監視/
サービス監視 - リソース監視
これらはそれぞれにシステムを運用し,
死活監視/ サービス監視
一般的にWebサービスの運用を行う場合に
- OSS
(オープンソースソフトウェア) である - プラグインで監視項目/
しきい値などをカスタマイズできる - 各所での導入実績が豊富
何かあった場合にも,
工夫している点とは
Nagiosで監視を行っていくうち,
- [mixiでの監視システムの問題点]
- 管理や設定が煩雑
- 1台のサーバで監視した場合に監視サーバが過負荷になる
一口に
また,
リスト1 iservices.
define service {
use generic-service
host_name web1
service_description webserver
check_command check_http_live
}
リスト2 hosts.
use generic-host
host_name web1
address 192.168.10.1
check_command check-host-alive
max_check_attempts 3
notification_interval 20
notification_period 24x7
notification_options d,u,r
contact_groups admins
}
パッと見た感じ,
そこで,
このように比較的視認性がよいYAMLファイルを使うことで編集ミスを防いでいます。
リソース監視
リソース監視は死活監視/
これらの監視/
では,
リスト3はSNMPでサーバからデータを取得するスクリプト例です
リスト3 get_
#!/usr/bin/perl
$snmpget = "/usr/bin/snmpget";
$community = shift(@ARGV);
$server = shift(@ARGV);
$load = `$snmpget -v1 -c $community $server UCD-SNMP-MIB::laLoad.1`;
$load = (split(/\s+/, $load))[3];
print $load;
図4 リスト3の実行例
$ perl ./get_snmp.pl(コミュニティ名)(サーバのIPアドレス)
なぜ監視をするのか?
では,
そしてそれだけではなく,
日々のこれらのリソース監視グラフの具体的な運用については次回でも触れたいと思います。
まとめ
今回はmixi.
ここまで読まれて
バックナンバー
ビジネススピードと信頼性を両立させる システム基盤構築記[by mixi]
- 第3回 日常の運用業務を考える
- 第2回 mixi.jpを支える運用監視
- 第1回 2011年「あけおめアクセス」の対策と結果