タグ

ブックマーク / blog.nomadscafe.jp (19)

  • HRForecast - もうひとつのデータビジュアライズツール - blog.nomadscafe.jp

    ずいぶん前から作って動かしてはいるのですが、GrowthForecastの他にもうひとつのグラフ作成ツールを公開しています。 https://github.com/kazeburo/HRForecast デイリーで更新される数値のビジュアライズに使う事が出来ます。GrowthForecastにはない過去データの登録もできます。 モリスさんのスライドでも少し登場しています。弊社では主にHiveでの集計の書き出し先として使っています http://www.slideshare.net/tagomoris/log-analysis-with-hadoop-in-livedoor-2013 画面はこんな感じ 他のページにembedするHTMLの発行やCSVでダウンロードをサポートしています データの登録APIについて データの登録は、GrowthForecastと同じようにURIに対してPOSTリ

    poppen
    poppen 2013/02/17
    ずいぶん前から作って動かしてはいるのですが、GrowthForecastの他にもうひとつのグラフ作成ツールを公開しています。 via Pocket
  • 数字を出力するコマンドを定期的に実行して、秒間の変化量を memcachedプロトコルで取れるサーバを書いた - blog.nomadscafe.jp

    Nagiosを使っていると、その瞬間の絶対値だけじゃなく、差分や変化量を取得してその数値を監視したくなりますよね。ならないとしたら、今すぐこの記事を読むのをやめて病院に行って下さい。 Nagiosで変化量を測定するには、プラグインの中で前の数値をどこかファイルにでも保存し、比較するという手があります。このcheck_bandwidthはその方法を取っているようです。 ただ、これだと汎用性があまりないので、監視対象サーバ側に定期的に指定したコマンドを実行して、その数値を外部から取得できるサーバを書いてみました。 CPAN: https://metacpan.org/release/App-derived *出てくるまで時間がかかるようです github: https://github.com/kazeburo/App-derived 使い方 インストールはcpanmで $ cpanm -n

    poppen
    poppen 2013/02/13
    Nagiosを使っていると、その瞬間の絶対値だけじゃなく、差分や変化量を取得してその数値を監視したくなりますよね。ならないとしたら、今すぐこの記事を読むのをやめて病院に行って下さい。 via Pocket
  • memcached を使ったアプリケーションの設計について - blog.nomadscafe.jp

    クライアントからmemcachedを利用する際の、ベストプラクティスは以前書いているので、その前段階でmemcachedを含めたWebアプリケーションのアーキテクチャ(と一部クライアントの話)について今の個人的な考えをまとめてみます。Kyoto Tycoonを使ったキャッシュサーバでも基は同じだと思います 1) 使わない memcachedをアプリケーションに組み込むことで、プログラムがどうしても複雑になりがちです。データの削除や更新の際にキャッシュの更新を忘れると多くの問題が発生します。例えばユーザがニックネームやプロフィール写真を更新したのに画面上変わらないなどの現象が起こると、ユーザに対して不快な思いをさせてしまうでしょう。またデータベースが非同期のレプリケーションを行っている場合、masterに対してデータの変更をかけ、更新が反映される前にslaveから読み込んでしまい、キャッシ

  • OrePANとcpanmでCPANの部分ミラーを作ってCPANモジュールを管理する - blog.nomadscafe.jp

    これまでサービスで使うCPANモジュールの管理と言えばrpm/debパッケージが主流だと思いますが、最近ではperlbrewで使いたいバージョンのperlをインストールすることもあり、rpm/debでは対応できなくなってきています。 perlbrewのperlに対してプロジェクトが依存しているCPANモジュールを入れる際、 $ perlbrew switch perl-5.12.3 $ cd /path/to/MyProj $ perl Makefile.PL $ cpanm --installdeps . などと cpanm —installdeps が使えます。 しかし、これではサーバを新規セットアップするたびに、最新のモジュールが入ることになりサーバ間でモジュールのバージョンの差異が生まれる可能性があります。 そこで対応策として考えられるのが開発サーバで—installdepsを実行

  • 私家版省サーバ運用2011またはWebシステムのコンポーネントの配置について - blog.nomadscafe.jp

    小規模のサービスを如何にスモールスタートするか、そのために各コンポーネントをどうやって配置するのがいいのかという話。個人的な考えも含めて。 大まかな構成は昨年のnekokakさんのYAPC::Asiaでの発表、省サーバ運用と大体同じです。Web/Appに使うサーバ2台、データベース2台です。あとはLBが別にあればそれを、なかったらもう一台(組)必要となります。 Web/Appサーバには、Reverse Proxy、Application Serverがまず配置されます。あとは必要に応じてmemcached、Job Queueのworkerを動かします。ここまでのコンポーネントは2台のサーバ両方に配置し、Active-Activeで動作し冗長性がとれるよう構築します。cronについては、両方のサーバで動かしても問題がない状態が理想ですが、そうでない場合、Web/Appの1台目で動かすというル

  • メール受信をTriggerにしてコマンドを実行する代わりにMaildirを監視して負荷を削減する - blog.nomadscafe.jp

    サーバが重かった原因は別だったんだけど、某サービスでメールを受信してプログラムを起動する際のコストが大きいんじゃないかという話をしたので、以下のようなことを考えてみた。 qmailを使っている場合、届いたメールをプログラムで処理したい場合は .qmail に | /path/to/program.pl と書きます。標準入力にメールの内容が渡され、環境変数等を通して表書き発送者アドレス等が取得できます。postfix でも master.cf にtransportを追加し、mapファイルを変更すると大体同じことができます。 参考: RailsとPostfixで受信メールを処理する方法 ただし、この方法だとメールの受信の度にプログラムを起動(exec)するコストが高くなりがちです。特にデータベースに接続したり、アプリケーションのライブラリを読み込んで行くと起動の負荷が上がって行ってしまいます。

  • CloudForecastっていうリソース監視のツール/フレームワーク作った - blog.nomadscafe.jp

    「クラウド」って言ってみたかった。今は反省していr 上のグラフは前回のエントリーを公開したときの、当blogを配信しているサーバのトラフィックグラフです。記事を公開した17時にぴょーんとトラフィックが伸びています。4時にも増えているけどこちらは謎。 実はこのグラフもCloudForecastを利用して取得しています。CloudForecastはサーバ等のリソース監視を行うツールもしくはフレームワークで、rrdtoolの薄いラッパーとして動作し、小規模から大規模なサーバ群を一括で管理できるように設計してあります。tokuhirom曰く、「perlが書けてrrdtoolがつかえるsysadminの人だったら使いやすいと思われる」というのがもっともしっくりくるような気がします。Perlとrrdtoolが使える運用者によるカスタマイズ前提なのがフレームワークと呼んでいる所以です。 CloudFor

  • Kickstart内蔵、自動仮想マシン作成スクリプト - blog.nomadscafe.jp

    cobbler/koanを使えば良さそうなんだけど、DHCP/PXEが必要となりそうで、それらを使えない場所で簡単に仮想マシンを作成するスクリプトを書いてみた。動作する環境はCentOS 5.4でKVM。ネットワークはブリッジで設定されていることが前提です。 依存するモジュールはEPELを使うと簡単にインストールできる $ sudo yum install perl-HTTP-Server-Simple perl-Regexp-Common スクリプトの実行は以下 $ sudo perl ./build-virt.pl --private 仮想マシンのプライベートIP スクリプトを実行すると、kickstartを配布するためのwebserverをforkして、virt-installを実行します。OSイメージはftp.iij.ad.jpから取得するように固定で書いてしまっています。 scr

    poppen
    poppen 2010/03/23
  • FeedBurnerでPubSubHubbubに対応する - blog.nomadscafe.jp

    このblogのフィードもちまたで話題のPubSubHubbubに対応しました。 Livedoor ReaderやGoogle Readerを使っている場合はこの記事から即時反映されるハズ。 とは、いっても。FeedBurnerが対応していただけ。しかもそんなに最近じゃない。 What’s all the hubbub about PubSubHubbub? すでに7月には対応していたらしい。 FeedBurnerを利用している人は、管理画面のPingShotを有効にするだけです それと、FeedBurnerへの変更通知をするために、pingをping.feedburner.comに打つようにしました。 MovableTypeの場合、設定メニューのウェブサービスの項目の中にあります。 これで準備OK。 最後にFeedの中にDiscovery用のタグが含まれているか確認します % curl -

  • VMware ESXiで電力管理を有効にする - blog.nomadscafe.jp

    暑くなってきたせいか、VMware ESXiを乗っけている自宅サーバが非常に煩いので、調べていたら、電力管理(IntelのSpeedStepとか、AMDのPowerNowの機能)が有効になっていなかったので、してみた。 ちなみに、ネット上にあまり情報はなく、 VMware Communities: How to set Power.CpuPolicy to “dynamic”? vSphere リソース管理ガイド ぐらいでした。 (下のは読むべきだったか) まず、現在の設定の情報を調べます。 「構成」のタブを開いて、プロセッサを選択します。 電力管理が有効でない場合は、staticと表示されているはずです。 上記のドキュメントによると、 ■static デフォルトです。VMkernel はホスト上で使用可能な電力管理機能を検出しますが、パワー キャッピング イベントまたは熱イベントで BI

  • WWW::Curlで進捗表示しつつダウンロード : blog.nomadscafe.jp

    WWW::Curlで進捗表示しつつダウンロード 意味のないエントリー perl - LWP::UserAgentで進捗表示しつつダウンロード WWW::Curlだとcurlの機能でできるYo #!/usr/bin/perl use strict; use warnings; use WWW::Curl::Easy; use File::Basename; my $uri = shift || die "$0 http://example.com/big.iso [filename]"; my $filename = shift || basename($uri); open my $content, '>', $filename or die "$filename:$!"; open(my $header, '>', \my $header_data); my $curl = WWW::C

  • OpenIDでテキストを共有できるWebサービス LIMILIC つくりました : blog.nomadscafe.jp

    OpenIDでテキストを共有できるWebサービス LIMILIC つくりました URLがIDっていうのはキャッチーじゃないのでOpenIDは使えないと言い続けていましたが、ここ最近の盛り上がりについカッとなってサービスをつくりました LIMILIC - OpenIDでテキストを共有できるWebサービス OpenIDをつかってLIMILICにログインすると、はてな記法を用いてWikiライクなページを作成できます。そのページに対して閲覧と編集それぞれにアクセス制御をかけるできます。 閲覧はすべてのユーザに、編集は一部の方にというようにアクセス制御することでお知らせページを作ったりと、writeboard風に使えます。メールアドレスや共有のパスワードなどよりもずっと安全じゃないかと思います。 あと、おまけ的にanonymous機能も付いていますので、匿名日記も書けます OpenIDって何?って方

  • WWW::Mixi::Scraperのpatch

    WWW::Mixi::Scraperのpatch WWW::Mixi::Scraperのパッチです。 これで1時間ぐらい悩んでしまったorz --- Mech.pm.orig 2007-07-30 22:26:28.000000000 +0900 +++ Mech.pm 2007-07-30 22:26:49.000000000 +0900 @@ -76,7 +76,7 @@ $self->{mech}->get($uri); # adapted from Plagger::Plugin::CustomFeed::Mixi - if ( $self->content =~ /action="login\.pl"/ ) { + if ( $self->content =~ /action="\/?login\.pl"/ ) { # shouldn't be path but path_que

  • Shell::Perl と pirl を試してみる : blog.nomadscafe.jp

    Shell::Perl と pirl を試してみる id:naoya氏がブクマしてたのを見て入れてみた。 pirlは、perlshのような対話型のperlシェルです。 Shell::Perlをinstallしようとすると、新しいExtUtils::MakeMakerを要求されるので、cpanコマンドでいれずに、Makefile.PLを書き換えた -use ExtUtils::MakeMaker 6.31; +use ExtUtils::MakeMaker; 同時にinstallされるpirlコマンドを実行するとこんな感じ。 $ pirl [~] Welcome to the Perl shell. Type ':help' for more information pirl @> 1+1 2 pirl @> log 10 "2.30258509299405" pirl @> :helpでヘ

  • デブサミ2007の発表資料 Nagiosのプラグインの話 : blog.nomadscafe.jp

    デブサミ2007の発表資料 Nagiosのプラグインの話 2月14日のデブサミの「出張Shibuyaイベント」でLTしてきました。 内容は、Nagiosのプラグインを作成する話と、nrpeの簡単な説明です。 発表資料:nagios.pdf プラグインを作る時には、exit時のステータスコードだけ気にすればいいので、 監視したいものがちょっと複雑なもの、例えばWWW::Mechanizeでログインしてほげほげするとかいう時でも難しくない。当たり前だけどPerlじゃなくても全然おk。 そういえば、Nagiosって個人で使う機会あまりないですよね。 発表資料を作成するときに、自宅サーバ(CentOS)にyumでインストールしてみましたが、監視するものがないので起動すらしていません。 強いて言えば、femoかもしれないけど、femoのサーバが落ちるより自宅の回線が落ちる回数の方が多いというオチにな

  • Squid2.6 のCOSSがいい感じ : blog.nomadscafe.jp

    Squid2.6 のCOSSがいい感じ Squidの比較的新しいcache_dirのCOSSが結構いい感じに動いている。 COSSだと、cache objectが1つの大きなファイルに納められるので、ディスクIOがかなり改善しています。 あまり情報がないのですが、Wikiに設定の説明と、aufsとの比較とかがあります。 cache_dir coss /var/spool/squid/coss 30000 block-size=2048 max-size=500000 cache_swap_log /var/spool/squid/%s こんな感じの設定のサーバで、cache個数 50万ファイル以上、最大リクエスト数500req/sec以上、Hit rateが99%の状態において、CPU負荷がUser:数%、iowait:1%弱とかで推移。もうちょっとcache個数の多いサーバでもiowai

    poppen
    poppen 2006/10/08
  • Load Balancer ManagerにアクセスするPerl Module : blog.nomadscafe.jp

    Load Balancer ManagerにアクセスするPerl Module mod_proxy_balancerのLoad Balancer ManagerにアクセスするPerl Moduleなんかも作っていたりするので、簡略版を載せてみる。 my $manager = BalancerManager->new( manager => 'http://proxy/lbman', balancer => 'test', # balancer://testの設定 ); $manager->enable('http://foo:8000'); #balancermanagerに登録してあるuri $manager->disable('http://foo:8000'); enable/disableの戻り値は画面のまんまで、Ok or Dis or Err。 該当しない場合は、「-」になる。

  • mod_secutiryを使ってApacheでTrackback Spamを弾く : blog.nomadscafe.jp

    mod_secutiryを使ってApacheでTrackback Spamを弾く MTのTrackback Spam対策にmod_securityを使って英数字のみのTrackbackを弾くようにしてみた。 mt-tb.cgiが動く前にApacheとかProxyとかでSPAMを判定できるとサーバに優しいし、かなり良いんじゃないかと思う。 mod_secutiryを # apxs -cia mod_security.c でインストールして、 <Files "mt-tb.cgi"> SecFilterEngine On SecFilterScanPOST On SecFilterDefaultAction "deny,log,status:406" SecFilterSelective POST_PAYLOAD "^[\x00-\x7F]+$" </Files> と設定。 フィルタリングされて

  • Plagger::Plugin::Filter::ImageGathering : blog.nomadscafe.jp

    Plagger::Plugin::Filter::ImageGathering Plaggerがenclosure対応ってことで。 Image TagのURLをenclosureに追加していくPlugin - module: Filter::ImageGathering configはない。 package Plagger::Plugin::Filter::ImageGathering; use strict; use base qw( Plagger::Plugin ); sub register { my($self, $context) = @_; $context->register_hook( $self, 'update.entry.fixup' => \&update, ); } sub update { my ( $self, $context, $args ) = @_;

  • 1