Pages

2011/04/11

mongodbのrepair時、パーミッションに注意

壊れたmongodbを修復するにはオプション、"--repair" をつけてmongodコマンドを実行します。

mongod --dbpath=/var/lib/mongodb --repair


これで修復したmongodbが起動しない時はパーミッションが変更されているせいかも。


DBの実ファイルのパーミッションがrepairを実行したユーザになります。
rootでrepairしちゃうと、DBのファイルがroot所有になってしまうということですね。


ログを確認したら"Permission denied" が出ていたのでパーミッションを修正しました。
chown -R mongodb:nogroup /var/lib/mongodb/



環境はUbuntu10.10、MongoDB1.8.1 でした。
 

どうやったらMongodbが要修復になるかっていうと、例えば無限ループをdiskfullになるまで突っ込んでみるとか。。
 

2011/04/07

MongoDBの1.8.1 が出たようなので更新する

バグフィックスらしいね。

パッケージインストールにしていたので隙はなかった。

# aptitude update
# aptitude upgrade mongodb-10gen



SECONDARY(全部) > PRIMARY の順にやろう。


# mongo
MongoDB shell version: 1.8.1
connecting to: test
mondev:PRIMARY>

2011/04/05

nginxのログをsyslogに投げる

名前つきパイプの例、古典的なやり方。

rm /var/log/nginx/access.log
mkfifo /var/log/nginx/access.log




パイプの取り出し側にはそれなりに工夫が必要だと思うが、
とりあえずnginxを起動してから。
# cat /var/log/nginx/access.log | logger -p local4.info


とすると、loggerがsyslogに投げてくれる。

1301982441 local4.info prox01 "xx.xxx.xxx.xxx - - [05/Apr/2011:14:47:21 +0900] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0""

(フォーマットは少々いじっている。)


syslog-ngならsourceに指定することもできそうだ。


ただこれをやると、nginxがパイプの処理を待つようになっちゃうので使いどころ注意。

syslog-ngを使ってフリーダムなsyslogを:json編

syslog-ngでは、syslog,rsyslog※に比べてログの出力を比較的容易にカスタマイズできる。

※基本的にRFC3164に準拠

確かにSyslogはパースしにくい、ならたとえばjsonで出してしまうというのはどうか。

ubuntu10.10(Merverick)のsyslog2ng

ubuntu10.10をrsyslogからsyslog-ngに入れ替えようと思いました。

デフォルトで入っているのはrsyslog、aptでsyslog-ngを入れると勝手にremoveされます。


さて、syslogからsyslog-ngに変更する際はsyslog2ngというスクリプトが使えますが、ubuntuのrsyslogからではどうかな。

2011/04/01

refinerycms, radiant などをbundleでインストール

railsで製造されたアプリケーションは、gemでインストールしたコマンドを使ってサイトをビルドするタイプのものがある。
refinerycms, radiant などがそういう感じ。
 

たとえばrefinerycmsだとこの4行でインストールOKとあるが。。

gem install refinerycms
refinerycms path/to/my_new_app
cd path/to/my_new_app/
rails server


このやり方は標準で読み込むGEMSがやたらと増えるしバージョン依存とかいやだ。

これをbundlerを使って何とか影響範囲をRaisHome内にとどめてみよう。

富豪的ともいわれるが。
 

Gitorious:さくらのVPSをUbuntu10.10にしてチーム共有のリポジトリにする

開発チームでグローバルなGitが欲しいとなった。

Gitosisはgitosis-adminのリポジトリ編集が必要で、皆が自由にリポジトリを作るのにはひと工夫がいる。

なのでGitoriousを置こうと。http://gitorious.org/
パブリックにしたいところだが、そこは堪えてプライベートモードにしよう。

構築先はさくらVPSが適当だろう。

事前にRackSpaceでUbuntu10.10へのGitorious構築手順を確認した。
http://www.sawanoboly.net/dwiki01/devops/gitorious
Cookbookにするのはちょっとしんどいな。

Githubの有料版でもいいっちゃあいい。