オープンソースなシステム自動管理ツール Puppet

第8回 Puppet実践テクニック(その3)

この記事を読むのに必要な時間:およそ 4 分

レポーティング

Puppetにはマニフェストの適用結果をレポートする機能があります。レポートの種類としては,log,tagmail,rrdgraph,storeの4種類があります。

レポート機能のための設定

Puppetクライアント側での設定

レポート機能を利用するためには,コマンドラインオプションまたは設定ファイルでレポート機能を有効にする必要があります。

コマンドラインオプションの場合、puppetd実行時に以下のように--reportオプションを指定します。

$ sudo puppetd --report

設定ファイルの場合、0.22.xではpuppetd.confに以下のように記述します。

report = true

0.23.xではpuppet.confのpuppetdセクションに以下のように記述します。

[puppetd]
    report = true
Puppetサーバ側での設定

Puppetサーバ側では,コマンドラインオプションまたは設定ファイルで有効にするレポートの種類を設定します。

コマンドラインオプションの場合、puppetmasdterd実行時に以下のように--reportsオプションで設定します。

$ sudo puppetmasterd --reports tagmail,log,rrdgraph,store

設定ファイルの場合、0.22.xではpuppetmasterd.confに以下のように設定します。

reports = tagmail,log,rrdgraph,store

0.23.xではpuppet.confに以下のように設定します。

[puppetmasterd]
    reports = tagmail,log,rrdgraph,store

0.22.x,0.23.xともに,何も設定されていない場合でも,storeがデフォルトで有効になります。

レポートの種類毎の解説

log

logはPuppetクライアントからのレポート通知をログファイルに出力します。puppetmasterdで--verboseオプションを指定している場合は,標準出力に出力します。ログに出力される内容は以下のようになります。

Sep 16 19:57:12 puppet puppetmasterd[3077]: (//client.example.org/base/Package[ntpd]/ensure) change from absent to latest failed: Could not update: Could not find package ntpd at /etc/puppet/manifests/site.pp:9
Sep 16 19:57:12 puppet puppetmasterd[3077]: (//client.example.org/base/File[/etc/hosts]/mode) mode changed '600' to '644'

syslogのfacilityはデフォルトではdaemonですが,puppet.confで別のfacilityに変更することができます。

[puppetmasterd]
    syslogfacility = local0
tagmail

tagmailはPuppetからのレポート通知をメール送信します。メールの内容は以下のようになっています。

Subject: Puppet Report for client.example.org
From: report@puppet.example.org

Sun Sep 16 20:01:06 +0900 2007 //client.example.org/base/Package[ntpd]/ensure (err): change from absent to latest failed: Could not update: Could not find package ntpd at /etc/puppet/manifests/site.pp:9
Sun Sep 16 20:01:06 +0900 2007 //client.example.org/base/File[/etc/hosts]/mode (notice): mode changed '600' to '644'

tagmailを利用する際には,/etc/puppet/tagmail.confにメール送信先アドレスを設定する必要があります。

all:  root@localhost
mail: postmaster@domain.com
sun:  solarisadmins@domain.com

tagmailはその名の通り,リソースにつけられたタグに応じて,メールの送信先を変えることができます。allはすべてのタグに適用される送信先アドレスです。

また,puppet.confで以下のように,メール送信に関する設定を変更することができます。

[puppetmasterd]
    sendmail   = /usr/lib/sendmail
    reportfrom = puppet@localhost
    smtpserver = localhost
rrdgraph

rrdgraphは,適用されたリソース数やエラーで適用できなかったリソース数,マニフェストの取得や適用にかかった時間などをPNG画像のグラフに出力します。

rrdgraphを利用するためには,RRDtoolrubyRRDtoolがPuppetサーバ上にインストールされている必要があります。

HTMLと画像ファイルは,Puppetサーバ上の/var/puppet/rrd/client.example.orgといったディレクトリに出力されます。出力される画像は以下のようになります。

rrdgraph

rrdgraph(1)

rrdgraph(2)

rrdgraph(3)

著者プロフィール

宮下剛輔(みやしたごうすけ)

(株)paperboy&co.技術責任者。 社内ではサーバ周りからアプリケーション開発まで幅広く関わる一方,個人的にはPerlプログラミングを趣味として,サーバ管理用ユニットテストスイート Assurer(アシュラ)をオープンソースで公開したり,CPAN AuthorPlaggerコミッタとして活動している。また,YAPC::Asia 2007 Tokyo等の技術系カンファレンスでスピーカを務めるのも最近の楽しみのひとつ。共著書に『MASHUP++』がある。

URLhttp://mizzy.org/