細かい傷が増えてきたので,
保護フィルムを貼り替え.
貼ったフィルムはこれ.
iPhone 4S/4 高精細アンチグレア PRO GUARD HDAG High-definition Antiglare / PGHDAG-IPH4
Amazon さんで検索してでてきたもので,
とくに理由はない.
きれいになって気分がよいので,それでよい.
2012-09 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
細かい傷が増えてきたので,
保護フィルムを貼り替え.
貼ったフィルムはこれ.
iPhone 4S/4 高精細アンチグレア PRO GUARD HDAG High-definition Antiglare / PGHDAG-IPH4
Amazon さんで検索してでてきたもので,
とくに理由はない.
きれいになって気分がよいので,それでよい.
ここに .p5p のパッケージが置かれている.
http://downloads.puppetlabs.com/solaris/
前作から約10年ぶりのフルアルバムが11月23日発売らしい.
- プレイメイツ5thアルバム情報 | THE PLAYMATES
http://theplaymates.jugem.cc/?eid=55
- アルバム「SOUL COOKIN'」発売日 | THE PLAYMATES
http://theplaymates.jugem.cc/?eid=57
- アルバムジャケット&収録曲情報 | THE PLAYMATES
http://theplaymates.jugem.cc/?eid=56
結局,以下のようなパッチでごまかすことにして,
#jposug にコミットした.
--- common/lib/Munin/Common/SyncDictFile.pm~ 2012-09-01 00:22:50.000000000 +0900 +++ common/lib/Munin/Common/SyncDictFile.pm 2012-09-29 12:40:13.342258023 +0900 @@ -170,6 +170,7 @@ sub _lock_write { my ($filename, $mode) = @_; + $mode = "w+" if $filename =~ /SPOOL-META/; $mode ||= "a+"; use Fcntl qw(:flock);
次は munin-async の SMF マニフェスト作り.
munin-node のマニフェストは含まれているのに,
munin-async のマニフェストは含まれていないので.
その後,plugin ごとパッケージを分割して,
それぞれに Requires を設定すれば,
ちゃんとしたパッケージっぽくなる.
- munin-async を Solaris 11 上で動かしたい [2012-09-27-1]
- munin-async を Solaris 11 上で動かしたい 2 [2012-09-28-3]
munin の apache 系 plugin がビルド環境のサーバでは動いて,
パッケージを持っていった環境では動かなかったので,
モジュールが足りないんだろうということで,
以下のように読み込まれるモジュールを確認してみた.
truss /usr/share/munin/plugins/apache_volume 2>&1 | \ egrep 'open.*\("/usr/perl5/' |cut -d " " -f 1 | \ sed -e 's/open.*(//' | sort -u
これで
"/usr/perl5/5.12/lib/AutoLoader.pm", "/usr/perl5/5.12/lib/English.pm", "/usr/perl5/5.12/lib/Exporter.pm", "/usr/perl5/5.12/lib/Exporter/Heavy.pm", "/usr/perl5/5.12/lib/File/Basename.pm", "/usr/perl5/5.12/lib/SelectSaver.pm", "/usr/perl5/5.12/lib/Symbol.pm", "/usr/perl5/5.12/lib/Tie/Hash/NamedCapture.pm", "/usr/perl5/5.12/lib/Time/Local.pm", (snip)
のようにとれる.
"open.*" としているのは,"open" と "open64" があるため.
apache 系 plugin に足りなかったのは,
library/perl-5/net-http-512
昨日 [2012-09-27-1] の続き.
以下のように print をいれて,どこのファイルでひっかかるのか確認
sub _lock_write { my ($filename, $mode) = @_; print "$filename: $mode\n";
これで実行すると,以下のように
/var/lib/munin/spool/SPOOL-META を "r" で開いたときに
flock($fh, LOCK_EX) が失敗している.
$ sudo -u munin /usr/share/munin/munin-asyncd -v /var/lib/munin/spool/SPOOL-META: r Cannot lock tied file '/var/lib/munin/spool/SPOOL-META' - Bad file number at /usr/perl5/vendor_perl/5.12/Munin/Common/SyncDictFile.pm line 182.
なので,以下のようにして,SPOOL-META を開くときの mode を
"w+" に変えてしまう.
sub _lock_write { my ($filename, $mode) = @_; $mode = "w+" if $filename =~ /SPOOL-META/; print "$filename: $mode\n";
すると,以下のように,flock でひっかからなくなる.
$ sudo -u munin /usr/share/munin/munin-asyncd -v /var/lib/munin/spool/SPOOL-META: w+ /var/lib/munin/spool/SPOOL-META.tmp: w+ /var/lib/munin/spool/SPOOL-META: w+ /var/lib/munin/spool/SPOOL-META.tmp: w+ /var/lib/munin/spool/SPOOL-META: w+ /var/lib/munin/spool/SPOOL-META.tmp: w+ [21634][main] Reading config from localhost:4949 [21634][plugin:cpu] asking for config [21634][plugin:cpu] asking for data [21634][plugin:df] asking for config
場当り的だけど,これで動くので,
とりあえず,しばらくはこれで使ってみる.
ちなみに,SPOOL-META は以下のようなファイル.
$ cat /var/lib/munin/spool/SPOOL-META lastruntime:1348803319
http://www.4gamer.net/games/017/G001762/20120928002/
これまで「アスース」だった日本語での呼称を,2012年10月1日から「エイスース」に変更すると発表した。
気になる.
10BAY までは必要ない気もするので,
5BAY のこのあたりでもいいのかもしれない.
センチュリー 裸族の集合住宅5Bay USB3.0&eSATA CRSJ535EU3
センチュリー 裸族のインテリジェントビル5Bay USB3.0 eSATAコンボ CRIB535EU3
via: ASCII.jp:3.5インチHDDを10台搭載可能な外付けHDDケースが近日店頭へ
http://ascii.jp/elem/000/000/728/728297/
#osoljp の contrib-spec-files に munin 2.0.6 をコミットしたし,
依存関係もある程度解決したので,そろそろ munin-async を試そうかと.
munin-async の使い方はここを参照.
http://munin.readthedocs.org/en/latest/node/async.html
とりあえず,munin-asyncd を実行してみる.
$ sudo -u munin /usr/share/munin/munin-asyncd -v Cannot lock tied file '/var/lib/munin/spool/SPOOL-META' - Bad file number at /usr/perl5/vendor_perl/5.12/Munin/Common/SyncDictFile.pm line 180.
と言われるので,SyncDictFile.pm を見てみる.
sub _lock_write { my ($filename, $mode) = @_; $mode ||= "a+"; use Fcntl qw(:flock); use IO::File; my $fh = IO::File->new($filename, $mode) or die "Cannot open tied file '$filename' - $!"; flock($fh, LOCK_EX) or die "Cannot lock tied file '$filename' - $!"; return $fh; }
となっていて,flock のところでこけている.
ググってみると以下のような話がみつかった
OSがSolarisの場合、flockシステムコールの仕様の違いによりpkwk_chown(): flock() failedがでることが分かりました。Solarisのflockでは、LOCK_EX(排他ロック)をするためには書き込み可能な状態でファイルをオープンする必要があります。これに対して、LinuxなどのOSでは読み出しオープンでもLOCK_EX可能です。fopen の 'r' を 'w+' に変更すると改善するのは、OSのflockがSolaris流の場合と考えられます。ただ、pkwk_chown は、書き込みできないファイルのオーナーを変更することにより、書き込み権限を得ることが本来の目的ですので、'w+' でオープンできない場合、目的を果たせなくなります。それから、PHPのposix拡張モジュールの有無も、挙動に影響します。posix拡張モジュールがあれば、ファイルのオーナーをapacheの実行ユーザに変更することで解決できますが、posix拡張モジュールが無い場合、apache実行ユーザIDの取得ができず、毎回chownしようとしますので、pkwk_chown(): flock() failedが出ます。どのように問題解決すべきか考えています(LOCK_EXできないので、ロックファイルを作って対応かな・・・)。目処が立ったら、dev:BugTrack2で改善案を提案します。 -- 三浦克介 2010-10-24 (日) 11:51:16
http://pukiwiki.sourceforge.jp/?%E8%B3%AA%E5%95%8F%E7%AE%B13%2F260
ということなので,
my ($filename, $mode) = @_; $mode ||= "a+";
で,$mode に "r" が入ることがあってこけてるっぽい.
とりあえず,以下のように LOCK_SH にしてみる.
flock($fh, LOCK_SH) or die "Cannot lock tied file '$filename' - $!";
すると,以下のように実行できた.
$ sudo -u munin /usr/share/munin/munin-asyncd -v [6812][main] Reading config from localhost:4949 [6812][plugin:cpu] asking for config [6812][plugin:cpu] asking for data (snip)
排他ロックを共有ロックにしてしまっているのでよろしくないのだけど,
どうすればいいんだろう?
Perl と Solaris に詳しい人いませんかね?
http://munin-monitoring.org/wiki/fieldname.warning
http://munin-monitoring.org/wiki/fieldname.critical
[foo.example.com] address 10.20.30.40 postfix_mailstats.delivered.warning 1:
こんな感じで,munin.conf で設定すればよいらしい.
{plugin name}.{fieldname}.warning 閾値 {plugin name}.{fieldname}.critical 閾値
閾値にひっかかると,以下のようにメールを飛ばせる.
http://munin-monitoring.org/wiki/HowToContact
この閾値のチェックをしているのは,
munin-limits で,munin-cron から呼び出されている.
munin-cron が呼び出すのは以下の 4 つ
- munin-update
- munin-limits
- munin-graph
- munin-html
munin をちゃんと使いはじめているんですが,
値のとりこぼしがよく発生する自作 plugin があったので
ちょっと調べてみた.
munin-node.log に
Service '(プラグイン名)' timed out.
と出るパターンのタイムアウト.
Munin timeout — RedTurtle's Blog
http://blog.redturtle.it/redturtle/2011/03/17/munin-timeout
によると,munin-node.conf に
timeout 60
のように timeout を指定すればよいらしい.
(ドキュメントには書いていないけど,ソースを読めばわかるらしい.
で,ソースは未確認)
munin 1.4.7 で確認したところ,
munin-node.log に "timed out" はでなくなり,
値もとれているので,今後 timeout の設定はいれておくようにする.
社長が mod_xsendfile 対応をしたというので,
Solaris 11 上でパッケージを作ってみた.
パッケージは作ったけど,動作は未確認.
#jposug に push してありますが,
動作未確認のため,trunk には merge していません.
認証した上で見せたいファイルなど,
document root 以下にファイルを置きたくない時に,
アプリケーションで read するよりは速いし,
CPU 負荷も少なくなるというものらしい.
http://docs.oracle.com/cd/E23824_01/html/821-1448/gayne.html#glixn
に
In previous Solaris releases, you could not create and publish NFS or SMB shares in a Oracle Solaris non-global zone. In this Solaris release, you can create and publish NFS shares by using the zfs set share command and the legacy share command with a non-global zone.
non-global zone で cifs を使いたければ,
samba を利用.