2012-11-14 Wed

[別の年の同じ日: 2001 2003 2004 2005 2006 2007 2008 2009 2014

nodename を Puppet で設定する はてぶ

Solaris 11 から nodename の設定が面倒臭くなった([2012-10-03-2])ので,
Puppet でちょっと手を抜く方法.

svccfg setprop をしてくれる puppet module の
ppbrown-svcprop が必要なのでインストール

sudo puppet module install ppbrown-svcprop


以下のようなクラスを定義

class nodename (
  $nodename = 'foo',
){

  svcprop {
    'nodename':
      fmri     => 'svc:/system/identity:node',
      property => 'config/nodename',
      value    => $nodename,
      notify   => Service['nodename'],
  }

  service {
    'nodename':
      ensure => running,
      name   => 'svc:/system/identity:node',
      enable => true,
  }
}


nodename を hoge にするには以下のようにする.

sudo puppet apply -e "class { nodename: nodename => 'hoge' }"


Solaris 11.1 で fluentd を動かす はてぶ

[2012-11-11-1] で Solaris 11.1 で fluentd を動かせたので,メモ.

#osoljp に spec ファイルをコミットしてあるので,
SFEruby-*.spec をビルドして runtime/ruby-19 と library/ruby-19/* を
インストール.

適当に PATH の通っている場所にリンクをはる

sudo ln -s /usr/ruby/1.9/bin/ruby /usr/bin/ruby19
sudo ln -s /usr/ruby/1.9/lib/ruby/gems/1.9.1/gems/fluentd-0.10.28/bin/fluent*  /usr/bin/


これはパッケージ側でやっておいた方がいいので,
そのうち修正する.

セットアップ

ruby19 /usr/bin/fluentd -s ~/tmp/fluent


fluentd の shebang が

#!/usr/bin/env ruby


なので,ruby19 を指定している.

ここもパッケージ作る際に,書き換えておいた方がよい.

とりあえず,log 収集用のコンフィグと
apache のアクセスログを読むコンフィグを用意する.

~/tmp/fluent/log_server.conf

<source>
  type forward
</source>

<match apache.access>
  type file
  path /home/fumi/tmp/fluent/logs/access_log
</match>


~/tmp/fluent/web_server.conf

<source>
  type tail
  format apache
  path /var/apache2/2.2/logs/access_log
  pos_file /tmp/web_server.pos
  tag apache.access
</source>

<match apache.access>
  type forward
  <server>
    host 127.0.0.1
  </server>
</match>


ログ収集側の起動

sudo LIBEV_FLAGS=3 ruby19 /usr/bin/fluentd -v -c ~/tmp/fluent/log_server.conf


apache のログを読む方の起動

sudo LIBEV_FLAGS=3 ruby19 /usr/bin/fluentd -v -c ~/tmp/fluent/web_server.conf


環境変数 LIBEV_FLAGS=3 を指定しないと,
以下のようなログがでる

(libev) port_getn (see http://bugs.opensolaris.org/view_bug.do?bug_id=6268715, try LIBEV_FLAGS=3 env variable): Timer expired


ちゃんと動作すれば,
~/tmp/fluent/logs 以下にログが書き出される.

あとは,SMF マニフェストを用意して,
fluent-plugin のパッケージを作りまくればよさげ.