Skip to content

Categories:

mongoDBのRESTインターフェイスをJSONPで使う

mongodbにrestオプションをつけるとWEBインターフェイスからjsonで色々情報が取れる。

JSONPならほぼjsだけのShaed環境向けViewerが作りやすいのにと思ったらひそかに対応していた。
 

“mongod -h” には出てくるんだが、公式の「Command Line Parameters」には載っていない、なんでかね?

–jsonp allow JSONP access via http (has security implications)

mongodの起動時に –jsonp を渡すか、コンフィグにて下記オプションを追加すると

jsonp = true

クエリにpadding用文字列をつけて “?jsonp=hogehgoe” などとリクエストすれば、hogehoge() の関数として返してくれる。
 

Posted in Tech.

Tagged with .


Capistranoのデフォルトdeployタスクをつぶす

Capistranoが便利なので、複数サーバの管理に使いまわそう。

ただもともとがRails用なので、間違えて”cap deploy”すると多少悲しくなる。
ここは deployに含まれる動作を事前に上書きして置くと安心。

namespace :deploy do
  # all default task disabler.
  task :setup          do; end
  task :update_code    do; end
  task :symlink        do; end
  task :restart        do; end
end

Rails以外に対応したフォークがあったような気もするが。
 

Posted in Tech.

Tagged with , , .


syslog-ngでsyslogをmongodbに直行させる

少々前に似たような記事、logger代わりにmongoimportを上げた。

が、syslogデーモンにsyslog-ngを使った場合、出力先を指定プログラムのSTDINにできるので直接mongodbに突っ込めるのだった。
 
続きを読む…

Posted in Tech.

Tagged with , , .


GlusterFS を 3.2.2へ更新

GlusterFSの3.2.2が出ていたので、3.2.1から更新した。
 

前のUpgrade手順はRemoveしてからだったが、ReleaseNoteによると上書きでよいらしい。
Ubuntuだったらいきなり “dpkg -i” でOK.

serverのほうを順繰りに更新し、daemonの再起動。
特に問題なくPeerとのコネクションが再開された。
 

クライアント側ではServerへの接続が途切れたログが一行でたが、見た目で分かる影響は無かった。

W [socket.c:1494:__socket_proto_state_machine] 0-glusterfs: reading from socket failed. Error (Transport endpoint is not connected)

 
 

Bigfixもそこそこ多いので、更新しておいたらよい。
 

Posted in Tech.

Tagged with .


画像:nginx-nginx-unicorn_01nginxのupstreamから502を対象外にする

railsをunicornでrackupする際、よくunixsocket経由でnginxをフロントに使う。
で、それをバックエンドにしてさらにNginxでロードシェアする時の設定。
 

画像:nginx-nginx-unicorn_01
 

続きを読む…

Posted in Tech.

Tagged with , , , .


Gluster server でログローテーション時に Volume Fail.

Glusterfs(3.2.1) でサーバ側のログをローテーションしようとした。
 

あちらこちらで 『-HUPを渡せ』 と書いてあるのでそのとおりにしたらローテーション時に下記のエラーが記録されている。

[glusterfsd.c:780:reincarnate] 0-glusterfsd: volume initialization failed.

案の定一部のクライアントからWrite不可の状態だった。
 

もうお前にHUPは渡さん。
 
 

さてどうするか、ということで copytruncate
することにした。
copytruncate についてはmanを見て。

man logrotate8
http://linuxcommand.org/man_pages/logrotate8.html

 

毎晩restartさせるよりtruncate中のログがないほうマシだわ。
 

Posted in Tech.

Tagged with , .


[logger > syslog] の代わりに [mongoimport > mongodb] を使ってみる。

loggerでsyslogに書くように、echoひとつでmongodbにもストアできる。
 

続きを読む…

Posted in Tech.

Tagged with , , .


Upstart で god を respawn

ruby でかかれたプロセスライフサイクル管理のフレームワーク god。
 

肝心のgodが止まらないようにUpstartでrespawnさせます。
 

続きを読む…

Posted in Tech.

Tagged with , .