森薫 

「森薫拾遺集」いいっすね。

森薫拾遺集 (ビームコミックス)森薫拾遺集 (ビームコミックス)
(2012/02/15)
森薫

商品詳細を見る
うん、とても良い。これは買うべき。

Nagios/Web I/Fからコマンド実行でエラー 

NagiosのWeb I/Fでコマンド実行させようとするとエラーが出るので直したい。

こんな感じ

Error: Could not open command file '/usr/local/nagios/var/rw/nagios.cmd' for update!

Nagiosデーモンは適切なユーザ/グループで実行している。「open出来ねー」と言われたファイル(パイプ)も、適切な権限。nagios用グループを作ってapacheユーザとnagiosユーザを含めている。

# ps -eo pid,user,rgroup,command | grep nagios
3254 nagios nagios /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
# ls -alF /usr/local/nagios/var/rw/
合計 8
drwxrwsr-x 2 nagios nagcmd 4096 2月 17 09:03 ./
drwxrwxr-x 4 nagios nagcmd 4096 2月 17 09:26 ../
prw-rw---- 1 nagios nagcmd 0 2月 17 09:03 nagios.cmd|
# grep nagcmd /etc/group
nagcmd:x:201:apache,nagios
#

けど、apacheはnobodyで実行されているのは良いのかなぁ?

# ps -ef |grep httpd
root 3280 1 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3282 3280 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3283 3280 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3284 3280 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3285 3280 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3286 3280 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3287 3280 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3288 3280 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3289 3280 0 09:04 ? 00:00:00 /usr/sbin/httpd
nobody 3307 3280 0 09:05 ? 00:00:00 /usr/sbin/httpd
root 3583 3168 0 09:30 pts/2 00:00:00 grep httpd
#

ここが原因ぽいんだけど。nobody権限で実行していたら駄目だよねぇ。試しにユーザnobodyをグループnagcmdへ追加してapacheを再起動して試してみる。

# usermod -a -G nagcmd nobody
# grep nagcmd /etc/group
nagcmd:x:201:apache,nagios,nobody
# service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
#

ありゃー、うまくいっちゃったよ。でもnobodyをnagcmdに追加しておくわけにはいかないよね...どうするのが普通なわけ? みじんこれべるとかいくつかのサイトを見ると

chmod o+rw /usr/local/nagios/var/rw/nagios.cmd

って書いてあるけど、それって駄目じゃん。正解は明らかにapacheのCGI実行ユーザをnagcmdへ参加させておくことで、しかもそれをnobodyではなくてapache専用にすることだよね。httpd.confで指定すれば出来るんだっけ? httpdの親プロセスはroot権限なのだけど、それは実際のコネクションを待ち受ける子プロセスを作るだけしかしてくれなくて、子プロセスはnobody権限なので頑張ったってapache権限に昇格したりしないぜ? ということでapacheの実行ユーザをnobodyからapacheへ変更することで対応することとした。
/etc/httpd/conf/httpd.confをこんな感じに書き換えてapacheを再起動。

# egrep -e '^#?(User|Group)' /etc/httpd/conf/httpd.conf
User apache
Group apache
#User nobody
#Group nobody
#service httpd restart
(略)
#


これでうまくいった。

ちょっと気になるのはapacheの実行ユーザを変更したのだけれど、それで不具合が出ていないかどうかはチェックすらしていないことだね。あとでnobody権限での実行を前提にしたソフトをいじる必要が出てきたらどうするんだろう、nagiosの方で妥協してchmod o+rw nagios.cmdするのかしら。

Nagios入れてみた 

Nagios入れてみた。
案の定、Webインタフェースは期待していたのと違うんだよなぁ。
少しいじって何とかならないか見てみよう。

そそそ、tmpwatchを設定して/tmpのゴミ掃除を自動化しなきゃ。

最近の監視ツール 

最近は監視ツールって何が使われているのかしら。とりあえずZABBIXとかNagios辺り、パフォーマンス監視で各種グラフを用意したい場合にはRRD Toolとかは別途必要、とかなんだろうか。

muninって何するんだ? ググってみると...ふむぅ、MRTG的なものね。

それにしてもどの情報源も古いな、3年以上昔のものが多い。枯れているのは良いことなんだけど、どれを使おうか調べたいのに古い情報を参考に判断するのは嫌だよね。

SSH設定 

放置していた某サーバで、ようやくSSH設定をしたよ。公開鍵のみの認証としてとりあえずOKでしょう。
かなり久しぶりだったので時間が掛かってしまったけどもこんな感じだったね。うん、思い出してきた。

OSを最小構成としていたので、やっぱりVNCを実行するのに手間取っていたのだけど、それも完了。これでようやく一揃いできた感じ。

って、あれ? VNCは単なるパスワード認証だから、ここが穴だね。使わない時にはVNCを落としておかないと駄目? 面倒臭くね? どうしよう、って、きっとどうしようもないんだろうなぁ。あきらめるか、どうするか。自分側のIPアドレスを決めうちして制限かける、とすれば相当安全になるかな。そこら辺だろうね。

それからCentOSのバージョンを5.7から6系へ上げたかったのだけど、これも断念。yumでは普通には出来ないっぽいな。他の人はどうしているんだろう? とりあえずこんな感じかしら。

Android端末修理とtwicca認証 

Android端末を修理に出したのだけど、戻ってきた端末はきれいに中身が消えていたよ。事前に説明を受けていたので、それはそれで良いのだけど、使っているTwitterアプリtwiccaでトラブルが出たんだ。困ったね、こりゃ。

Twitterのアプリ連携でアクセス可能なアプリケーションとしてtwiccaを登録してやらないといけないのだけど、「Twitterは現在混雑しています。後でもう一度試して下さい。」的なメッセージが出て、何度やってみてもtwiccaを再度登録することが出来なかった。

なのでしばらくはついっぷるを使っていたのだけど、twiccaがバージョンアップしたので再度登録を試した所うまくいったよ。操作方法に誤りがあったわけではないと思うので、twiccaがアプリの再登録にきちんと対応できていなかったんじゃないかな、と推測。(Twitter側がアプリの再登録にきちんと対応できていなかった場合、きっと大騒ぎになっていただろうから)

ついっぷるも良い感じなのだけど、自分の端末ではちょくちょく固まる(ほど待たされる)のでtwiccaに戻ることにするよ。

VMWare 

VMWareって、メモリがきちんと搭載されていないとインストールできないんだね。
メモリ512MBytesの古いマシンにインストールしようとしたらインストーラが途中でNGを出してインストールできなかったよ。