Fedoraでの統合システム運用について整理してみた

前回までに何度か統合システム運用に属するパッケージについて書いてきたが、ここで、Fedora11までの現状についてまとめてみようと思う。なお、ここでいう統合システム運用は、多数のサーバーを楽に管理するパッケージのことで、
1. 監視(ネットワーク、サービス、リソース、ログ)
2. パフォーマンス管理
3. セキュリティ管理, パッチ適用
4. インベントリ管理, 構成管理
5. ジョブ管理
あたりがメジャーな機能である。

1. 監視については既に何度か扱っているが、ネットワーク、サービスの監視についてはNagiosが有名どころのようだ。Fedoraにもnagios...の名前で多くのパッケージが含まれている。 リソース監視(プロセス数, CPU使用率など)についても、以前扱ったのだが、GangliaとNagiosを組み合わせることで実施できる。Gangliaだけだと多数のサーバーにcronを配布する機能がないが、puppetを組み合わせることで対応できる。 ログ監視については、rsyslog, PostgreSQL, Nagiosを組み合わせることで対応する。 Ganglia, PostgreSQL, rsyslog, puppet は、Fedoraにパッケージとして存在する。

2. パフォーマンス監視についてはGangliaで対応できる。取る値を増やしたい時には、puppet と組み合わせてcronに追加する。

3. セキュリティ管理については、puppetで対応できる。( ただし、サーバーの設定で対応出来る項目に限る。) パッチ適用については、 puppet+(yum+apache) で最新版のパッケージを管理できる。yumサーバーの作り方についてはかなり前に書いた。詳細については、この辺を参照。
http://www.thinkit.co.jp/free/article/0706/14/4/


4. インベントリ管理、構成管理 については、取得する項目、パッケージについての絞り込みは必要だが、値の収集、表示自体はGanglia gmetric を使って実施できる。これについては前回書いた。

となり、1,2,3,4 についてはだいぶノウハウが集まってきた感じだ。製品では、統合管理用のGUIがあったりするので、若干力不足な感はあるが、Nagiosにアラート管理用の画面があるのと、Ganglia でパフォーマンス、インベントリ情報が取得できる画面がある、 の2点でだいたいは対応できていると思う。後は、ログ閲覧用の画面が1枚欲しいところだが、これはPostgreSQLにSELECTを投げるだけなので、時間さえかければ PHP等で対応できるだろう。

統合システム運用サーバーの運用項目としては、バックアップ等も気になるところだが、1,2,3,4 までではデータが発生するのはログ監視用のログ、Gangliaのrrdデータぐらいなので、pg_dump, tar あたりで対応できてしまうだろう。そのため、1,2,3,4については、ほとんど付属のパッケージだけで対応可能といってよいのではなかろうか。。 できればこのうちのいくつかでも今後製品版に取り込んでもらいたいものなのだが、実際どうなるのかはわからない。。 サポートが充分でない状態ではどちらにしろ使い辛いので、充分ノウハウがたまってからといったところだろうか。


さて、ここまではよいのだが、問題なのは 5のジョブ管理で、今のところFedoraであまり対応できていないようだ。 puppet+cronだけで対応できるのかもしれないが、1. ジョブが失敗したことのアラート送付, 2. 失敗した際に後続のジョブを実施しない 3. 依存性のないジョブに関しては実施してもOK などのロジック(DBでいうトランザクション) を加えようと思うとcron単独では難しく、EJBのセッション保持ではないが、バックに1台DBを持って、トランザクション管理を行うような仕組みが欲しいところだ。

種々調べてみたのだが、オープンソースでジョブ管理というと、 Open Source Job Scheduler ( http://jobscheduler.sourceforge.net/ ) が有名らしいので、まずはこちらを試してみようと思う。 マニュアルを見る限り、PostgreSQLをバックにおき、SSHでリモートノードでのジョブ実行を行う様である。 Fedoraでインストールできるかはよくわからないので、インストール対象は、CentOSになるかもしれない。