八雲文庫ブログ

組版できる新感覚の小説・画像投稿サイト「八雲文庫」の運営日誌です。

無料で利用できるシステム監視ソフトウェア7選&サービス8+2選(前編)

f:id:yakumobooks:20180110210938j:plain

今この瞬間あなたのサービスは正常に稼働していますか?個人・法人問わず、サービスを運営する人間ならばこのことは気にせずにはいられません。かくいう私も個人でブラウザで組版できる小説・画像投稿サイト「八雲文庫」なるものを運営していますが、もし機械的な監視を導入していなければ個人サービスとはいえ外出中でも気になってしまいたびたび確認するはめになっていたことでしょう。

私のような個人開発者はどうしても目先の開発に手一杯になってしまい運用については疎かになってしまいがちかと思います。また、予算やリソースも限られているため基本的にお金はかけられません。これは法人の現場においても同様で、システム監視はサービスを継続させる限り発生するコストとなりますのでなるべく最小限に留めたいものです。

今回は同じような悩みを抱える開発者や運用担当者の皆様の参考になればと、個人でもできる無料で手軽なシステム監視について過去に検討したものを公開致します。公開にあたって再調査はしましたが、不正確な情報がありましたらご連絡ください。前編では「ソフトウェア」について、後編では「サービス」について記述します。

ソフトウェア

1.Zabbix

www.zabbix.com

オープンソースの監視ソフトウェアを検索すると良く目にするのがZabbixです。データの格納にはデータベースを使用しますが、MySQL, PostgreSQL, SQLite, OracleIBM Db2といった主要なRDBMSを利用できます。バックエンドはC、フロントエンドはPHPで書かれています。エージェント型(監視対象にもソフトウェアをインストールして情報を収集するタイプ)ですが、実はエージェントレスの監視もできます。監視ソフトウェアは基本的にどれも簡素な見た目ですが、ZabbixはGrafanaと連携するプラグインZabbix plugin for Grafana」を使用すればかなりお洒落な見た目になります。あと、公式がDockerイメージを配布しておりDockerコンテナのモニタリングも手軽に行えます。

2.Nagios

www.nagios.org

昔ある本で「はてなのサーバ監視はNagiosを使用している」と読みましたが今はどうなんでしょうか。デフォルトではグラフ表示機能もないのでプラグインなどの拡張実装、サードパーティ連携で好みなようにカスタマイズして使用します。プラグインBashC++PerlRubyPythonPHPC#で記述できます。データベースを必要としませんがデータ管理が全てファイルベースとなり設定画面もありません。ただ、この点もプラグインを用いればMySQLに格納したりWEB UIが利用できるなど必要に応じて克服できるようです。動作環境にはPHPが必要です。誕生は2002年からと歴史も長くコミュニティも大きいので、豊富な採用実績と高い自由度を求めるのであれば導入を検討してみてはいかがでしょうか。

3.Hinemos

TOP | Hinemos | クラウド時代の統合運用管理

以下のURLに解説があります。
オープンソースの統合監視管理、ZabbixとHinemosの機能と選択のポイント

・開発: 株式会社NTTデータ
・監視画面: 専用GUIクライアント
・サーバ: JBoss
・設定:専用GUI
・データ保存形式: RDB(PostgreSQL)
・ジョブ管理機能があるのが特色。一括管理機能(ファイル配布、RPMインストール、マシンの起動、停止など)
・国産なので日本語のドキュメントは整備されている
・有償オプションが充実し、パートナー制度により、サポートやHinemosをベースにした製品が充実

オープンソースはほとんどが海外製ですが、Hinemosは開発元が日本企業ということで日本人が安心して使えるソフトウェアです。

4.Munin

Munin

マスターやノード、コアプラグインPerlで書かれていますが、ノードに関してはCやPython、Shellで書かれたバージョンも提供されています。グラフは1日、1週間、1ヶ月と固定の期間での表示となります。現時点での最新安定バージョンがリリースされたのが2017年10月21日で今も更新は続いています。Muninはデータベースを必要としないというメリットはありますが、表示用に静的なHTMLとグラフ画像を出力するため監視対象が増えると負荷が高くなってしまうようです。ただ、適切にチューニングすることで改善できますし監視の自由度が高いのが魅力です。

5.Ichinga

www.icinga.com

Ichinga(アイシンガ)はNagiosのforkです。REST APIで設定を更新したり様々な指示を出すことができます。SSLやユーザーのアクセス制御など、組織でセキュアに監視ソフトウェアを管理・運用することを意識した作りとなっています。ユーザー認証にはRDBMS以外にLDAPActive Directoryが使える点が法人での選定理由となりそうです。また、こちらもZabbix同様Grafnaと連携できるようです。

6.Sensu

sensuapp.org

Nagiosの問題点を解決するために生まれたソフトウェアでRubyで書かれています。先ほどご紹介したNagios、Icinga、Zabbixなどの監視チェックとプラグインを再利用できます。Puppet、Chef、AnsibleといったDevOpsソフトウェアで構築できるように設計されており、大規模なサービスを監視するために監視ソフトウェア自身のスケールアウトにも重点が置かれていますが、それゆえにRabbitMQやRedisのインストールが必要だったりと動作構成が少し複雑です。

7.Cacti

Cacti® - The Complete RRDTool-based Graphing Solution

Muninと同様RRDToolによってデータを収集しグラフを描画しています。共にNagiosと組み合わせて使われることが多いためよく比較の対象となっています。Muninにはないユーザー管理機能がありますがその代わりデータの格納にデータベースが必要です。それ以外にもMuninは設定の容易さや拡張性、Cactiは任意の期間指定によるグラフ表示が可能、といった違いがありますのでご自身の要件にマッチしている方を選択しましょう。


以上、前編では7つのソフトウェアをご紹介しましたが世の中にはまだまだ多くの監視ソフトウェアが存在します。それぞれに一長一短がありますので、対象の何を監視したいかや監視ソフトウェアの拡張可否、自組織の監視体制などを考慮した上で最適なソフトウェアを導入しましょう。後編では無料で利用できる監視サービスと実際に八雲文庫で採用している監視構成についてご紹介します。