CloudForecastっていうリソース監視のツール/フレームワーク作ったにおいて、CloudForecastのインストールとCPUやメモリー、トラフィックなど基本的な監視ができるところまで記事にしましたが、今回はその監視項目のカスタマイズの方法を紹介します。
前回記事の最後では、監視対象となるサーバはlocalhostだけが登録されている状態です。server_list.yamlは以下のようになっています。
--- #HOME
servers:
- config: basic.yaml
hosts:
- 127.0.0.1 server1 my great server
configで指定しているが監視項目の設定ファイルです。cloudforecast.yamlのhost_config_dirで指定されたディレクトリ内に保存されています。監視項目のカスタマイズにあたり、新規にhost_config_dirを作成します。
% cd path/to/cloudforecast
$ mkdir my_host_config
ここにbasic.yamlをコピーします。ついでに名前も変えます。
$ cp host_config/basic.yaml my_host_config/localhost.yaml
設定ファイルの名前は自由に決められますが、あとでわかるものがいいでしょう。そして、cloudforecast.yamlのhost_config_dirと、server_list.yamlのconfigを変更します。
---
config:
gearman_enable: 0
(略)
host_config_dir: my_host_config @ココ@
component_config:
(略)
--- #HOME
servers:
- config: localhost.yaml @ココ@
hosts:
- 127.0.0.1 server1 my great server
これで準備が整ったので、localhost.yaml を変更します。
localhostでは、Apacheが80ポートで起動して、memcachedを11212ポートで利用しているので、これらを追加します。
---
component_config:
resources:
- traffic:eth0
- basic
- http:80:/server-status?auto @ポート80のApache@
- memcached:11212 @ポート11212のmemcached@
resourcesのところに追加して行きます。http:80とmemcached:11212が足した監視項目です。
- modue_name:option1:option2:..
module_nameは一文字目を大文字にして、CloudForecast::Data以下のリソース定義モジュールが読み込まれます。また「:」で区切ったオプション部分もモジュールに渡されます。Apacheの監視ではCloudForecast::Data::Httpがよばれ、「80」と「/server-status?auto」が渡されます。どのようにオプションが使われるのかは、リソース定義モジュールによって変わります。Httpモジュールでは1つ目がポート、2つ目がserver-stautsを取得するURLとなります。ドキュメントはまだ整備中^^
蛇足ですがserver-stautsはApacheであれば
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost
</Location>
のように設定できます。
CloudForecastにはHttpやmemcachedの他にも、標準でDisk使用量、DiskIO数、MySQL、MySQL InnoDB、Nignx、Squidなどのモジュールが含まれています。また新たにリソース監視定義モジュールを作成し追加することもできます。