タグ

ブックマーク / hirose31.hatenablog.jp (22)

  • h2o試してみました、もしくはとりあえずサクッと既存のサイトをHTTP/2化する方法 - (ひ)メモ

    先日、HTTP/2が正式な仕様として承認されると同時に、その実装であるH2Oのv1.0.0もリリースされました。 Kazuho's Weblog: H2O, the new HTTP server goes version 1.0.0 as HTTP/2 gets finalized HTTP/2の情報はちょいちょいウォッチはしていたのですが、今までHTTP/2なサーバーを動かしたことはなく、いい機会なので自分のサイトをH2Oを使ってHTTP/2対応してみました。 https://www.irori.org 大したことはやってないのですが、Apacheでサービスしており、認証やアクセス制限、ごにょごにょ黒魔術、CGI(!)やSSI(!!)なども動いているので、ApacheをH2Oにリプレースするのは無理でした。 そこで、H2Oをリバプーとして前段に置き、Apacheを後段に置く構成にしまし

    akuwano
    akuwano 2015/02/25
    h2o試してみました、もしくはとりあえずサクッと既存のサイトをHTTP/2化する方法 - (ひ)メモ
  • Eye-Fi用のアップローダブリッジ - Doumeki (百目鬼) - を作りました - (ひ)メモ

    Eye-Fi用のアップローダブリッジを作りました。名前は Doumeki (百目鬼) といいます。 http://github.com/hirose31/doumeki/tree/master Doumeki を使うと、Eye-Fi からアップロードされた写真を複数のフォトストレージにアップロードすることができます。 図にするとこんな感じです。 動機 いまのところ、 Eye-Fi 単体でできることはこうなんですが: リモートのフォトストレージへのアップロード (ただし一か所だけ) Eye-Fi Managerが動いているパソコンへのアップロード Wi-FiのAd-Hoc接続した相手のパソコンへのアップロード (今のところ日未発売のProのみ) 自分の場合、 複数のフォトストレージに同時にアップロードしたい でも、フォトストレージは一か所しか選べない LAN 内のファイルサーバにアップロー

    Eye-Fi用のアップローダブリッジ - Doumeki (百目鬼) - を作りました - (ひ)メモ
    akuwano
    akuwano 2014/12/05
    知見の奴
  • monitor-aws-status - AWSのService Health Dashboardに異変があったらIRCで通知してくれるヤツ - (ひ)メモ

    AWSで障害が起こったらナルハヤで知りたいよねってことで、AWSのService Health Dashboard http://status.aws.amazon.com/ はRSSフィードを提供してるので、それを定期的にチェックしてIRCに通知してくれるスクリプトを AnyEvent で書きました。(要ikachan) https://github.com/hirose31/monitor-aws-status 通知を受けたいregionは、%Target_Region のコメントを外してください 通知を受けたくないserviceは、%Ignore_Service に登録してください 通知する IRC のチャンネル名は、load_config んところのを適宜書き換えてください IRC以外への通知(メール送るとか)はちょっと書けばできるでしょう Service Health Dashb

    monitor-aws-status - AWSのService Health Dashboardに異変があったらIRCで通知してくれるヤツ - (ひ)メモ
    akuwano
    akuwano 2014/11/27
    これははかどる、ありがたい
  • Imoutable Infrastructure - (ひ)メモ

    早速作りました。 Ubuntu 12.04 LTS で動作確認しました。Ubuntu じゃないと動かないと思います。 # aptitude install update-motd # rm -f /etc/update-motd.d/* # vi /etc/update-motd.d/99-imoutable (後述) # grep UsePAM /etc/ssh/sshd_config UsePAM yes (UsePAM yesじゃなかったらyesにして service ssh restart) # grep motd /etc/pam.d/sshd session optional pam_motd.so # [1] (pam_motdがコメントアウトされていたらコメントを外す) 動作例 /etc/update-motd.d/99-imoutable #!/bin/bash imou

    Imoutable Infrastructure - (ひ)メモ
    akuwano
    akuwano 2014/03/25
  • Redisのクエリーアナライザー "redis-traffic-stats" を書きました - (ひ)メモ

    redis-traffic-stats という Redis のクエリーアナライザーを作りました。 https://github.com/hirose31/redis-traffic-stats redis-traffic-statsはtcpdump -wで書き出したpcapデータを解析して、以下のような統計を表示します。 総ネットワークトラフィック量と平均byte/sec 総リクエスト数と平均とピークのreq/sec コマンド毎のリクエスト数、総リクエスト数に占める割合、req/secを、リクエスト数が多い順に上位10コマンドを表示 コマンド毎の総転送バイト数、byte/secを、総転送バイト数が多い順に上位10コマンドを表示 コマンド別に、キー毎の総転送バイト数、byte/sec、リクエスト数、リクエスト数の割合、req/secを、総転送バイト数が多い順に上位10キーを表示 時間のかかっ

    Redisのクエリーアナライザー "redis-traffic-stats" を書きました - (ひ)メモ
    akuwano
    akuwano 2014/02/28
  • 『詳細UNIXプログラミング』の原書『Advanced Programming in the UNIX Environment』(通称APUE)の3rd Editionが出てました - (ひ)メモ

    同僚に「UNIXのfileとかsocketとかsignalとかの勉強(輪講)するのにいいないですかねー」ときかれて、自分はスティーブンスの『詳細UNIXプログラミング』読んだけど、もうだいぶ古い(例えば、sigaction(2)について書かれてない)し、リファレンス的に使うなら紙より電子書籍の方がいいよねぇと返したんですが、 詳解UNIXプログラミング 作者: W.リチャードスティーヴンス,W.Richard Stevens,大木敦雄出版社/メーカー: ピアソンエデュケーション発売日: 2000/12メディア: 単行購入: 8人 クリック: 103回この商品を含むブログ (40件) を見る そういえば原書どうなってんだろ?と思って調べてみたら、なんと今年の5月に 3rd Editionが出てました!! しかも Kindle版も!!! Advanced Programming in th

    『詳細UNIXプログラミング』の原書『Advanced Programming in the UNIX Environment』(通称APUE)の3rd Editionが出てました - (ひ)メモ
    akuwano
    akuwano 2013/12/11
  • ファイル指定で、ページキャッシュにのっているか確認したり追い出したり - (ひ)メモ

    ファイル指定で、ページキャッシュにのっているか確認したり追い出したりするPerlモジュールを書きました。 https://metacpan.org/release/Sys-PageCache https://github.com/hirose31/Sys-PageCache Linux なら動くはずですが、動かなかったら教えてください。あと一応、FreeBSD 8.3以上でも動くと思います。 既存の実装にGooglelinux-ftoolsやエヌハヤシ氏のpagecache-toolがありますが、これのPerlモジュール実装(XS)になります。 https://code.google.com/p/linux-ftools/ https://github.com/nhayashi/pagecache-tool たまにfreeコマンドでみるとbuffers/cacheがっててswapしてる

    ファイル指定で、ページキャッシュにのっているか確認したり追い出したり - (ひ)メモ
    akuwano
    akuwano 2013/09/19
  • シェルスクリプトでハマった件→【募】ステキな回避方法 - (ひ)メモ

    追記: 解答編を下の方に書きました!!! 追記: お題に不備があったので変更しました>< あとgistに一式置いたので簡単にテストできます!! https://gist.github.com/hirose31/6232206 git clone https://gist.github.com/6232206.git oreno cd oreno ./test.sh source_me.sh ... シェルは GNU bash, version 4.1.5(1)-release です。 こんな source_me.sh と、 case $PATH in */oreno/bin*) : # do nothing ;; *) . orenorc LOADED_ORENO=1; export LOADED_ORENO ;; esac orenorc ってファイルがあって、 ORENO_HOME="

    シェルスクリプトでハマった件→【募】ステキな回避方法 - (ひ)メモ
    akuwano
    akuwano 2013/08/15
  • How to defend SSL/TLS servers against BEAST, CRIME and BREACH attack for Nginx - (ひ)メモ

    The information presented herein is without any guarantees and I’ll take no responsibility if any harm happens to you or your users. If you find any factual problems, please reach out to me([twitter:@hirose31]) immediately and I will fix it ASAP. http { server { listen 80; listen 443 ssl; server_name example.com; # BEAST: dont's use CBC ssl_protocols SSLv3 TLSv1; ssl_ciphers ECDHE-RSA-AES256-GCM-S

    How to defend SSL/TLS servers against BEAST, CRIME and BREACH attack for Nginx - (ひ)メモ
    akuwano
    akuwano 2013/08/08
  • Apacheでreverse proxyするときに、受けのパスに応じて異なるタイムアウト値を設定する方法 - (ひ)メモ

    Apacheでreverse proxyするときに、バックエンドは同じなんだけど受けるパスに応じて別なタイムアウト値を設定しようとしてハマったのでそのメモです。 以下、Apache 2.2.22 でのお話です。2.4でどうなってるか、どなたかご存知でしたら教えてください>< まず思いつくのはこんな設定だと思います。 ProxyTimeout 7 ProxyPass /3sec/ http://127.0.0.1:9999/ timeout=3 ProxyPass /5sec/ http://127.0.0.1:9999/ timeout=5バックエンド (127.0.0.1:9999) は、こんなのを動かしておけば十分です。 $ while true; do echo listen...; nc -l 9999; doneこれでクライアントでアクセスしてみると… $ time curl h

    Apacheでreverse proxyするときに、受けのパスに応じて異なるタイムアウト値を設定する方法 - (ひ)メモ
    akuwano
    akuwano 2013/06/13
    これはいいバッドノウハウ、、、((((;゚Д゚))))
  • プロセス間の期限付き排他ロック - (ひ)メモ

    追記 2013-03-04 [twitter:@dankogai] さんにも言及されてました>< 404 Blog Not Found:perl - soloで任意のコマンドを期限付きで排他実行する 追記 2013-03-01 つづきを書きました。 続・プロセス間の期限付き排他ロック - (ひ)メモ 追記 2013-02-27 コメント欄でのやりとりの通り、穴がある(クリティカルセクションに複数プロセスが突入する可能性がある)のでちょっと出直してきます!! やりたいこと プロセス間の排他的実行を制御したい 一定時間経過したら実行できるようにしたい 例えば、フェイルオーバーを実行するスクリプトは、何度も実行できるとフェイルオーバー/バックを繰り返してフラップするので、一度フェイルオーバーしたら一定時間は実行できないようにしたい 実装 シンボリックリンクを使って排他制御する 期限切れは、シンボ

    プロセス間の期限付き排他ロック - (ひ)メモ
    akuwano
    akuwano 2013/02/27
  • WEB+DB PRESS Vol.73にRedisの特集記事を書きました - (ひ)メモ

    WEB+DB PRESS Vol.73にRedisの特集記事を書きました。 2/23発売なので、もう書店に並んでいると思います。 http://gihyo.jp/magazine/wdpress/archive/2013/vol73 WEB+DB PRESS Vol.73 作者: 設樂洋爾,白土慧,はまちや2,大和田純,松田明,後藤大輔,ひろせまさあき,小林篤,近藤宇智朗,まかまか般若波羅蜜,Mr. O,川添貴生,重国和宏,柳澤建太郎,奥野幹也,佐藤鉄平,後藤秀宣,mala,中島聡,堤智代,森田創,A-Listers,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2013/02/23メディア: 大型購入: 12人 クリック: 131回この商品を含むブログ (7件) を見る 前半がRedisの概要、2.6の紹介と運用系の話で自分が担当、後半がRedisのコマンドや実

    WEB+DB PRESS Vol.73にRedisの特集記事を書きました - (ひ)メモ
    akuwano
    akuwano 2013/02/25
    探しに行こう。
  • Re: 若者がパッケージ管理について思うこと - (ひ)メモ

    若者がパッケージ管理について思うこと - As a Futurist... 「パッケージ」を あまり入れ替えしないし、入れ替えたくもないもの 好きに入れ替えしたいもの の2つに分類して、ここ数年自分がどう管理してきたかを書いてみたいと思います。主に構成管理の切り口の話になります。 あまり入れ替えしないし、入れ替えたくもないもの 具体的には、 基的なソフトウエア coreutilsとかtarとかそういった類のもの です。 これらは最初の最初にサーバーをセットアップするときに、ディストリのバイナリパッケージを入れて基的にはそれでおしまいです。 バージョン管理、依存関係の管理はディストリのパッケージシステムにお任せです。 セットアップ後はよっぽどのことがない限り、アンインストール、ダウングレードは基的にしません。アップグレードも当に当に影響のあるセキュリティ修正のみ。追加インストールは

    Re: 若者がパッケージ管理について思うこと - (ひ)メモ
    akuwano
    akuwano 2012/03/29
  • dstatの万能感がハンパない - (ひ)メモ

    サーバーのリソースを見るにはグラフ化は重要ですが、推移ではなくリアルタイムな状況、例えば秒単位のスパイキーな負荷を見るには、サーバー上でvmstatやiostatなどの*statファミリーを叩く必要があります。 さて、vmstatはメモリの状況やブロック数単位のI/O状況は見られますが、バイト単位のI/O状況やネットワークの送信、受信バイト数を見ることはできません。 # vmstat 1 procs -----------memory---------- ---swap--- -----io----- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 3 1 0 4724956 355452 726532 0 0 54 484 3 3 1 0 99 0 0 2 0 0 47

    dstatの万能感がハンパない - (ひ)メモ
    akuwano
    akuwano 2012/03/01
  • Apache 2.4.1 で気になった新機能などのメモ - (ひ)メモ

    Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server Expressions http://httpd.apache.org/docs/2.4/en/expr.html やSetEnvIfExpr, RewriteCond, Headerで使える評価式 の追加 http://httpd.apache.org/docs/2.4/en/mod/core.html#if ヘッダや環境変数を参照して細かい制御ができるようになったことに加え、else的なブロックを書くのに苦労したことがあるんで朗報です ErrorLogFormat http://httpd.apache.org/docs/2.4/en/mod/core.html#errorlogformat ErrorLogも書式設定できるように。 %L (L

    Apache 2.4.1 で気になった新機能などのメモ - (ひ)メモ
    akuwano
    akuwano 2012/02/22
    あぱちぇ2.4.1!
  • daemontoolsのrunファイルで、exec COMMANDじゃなくてshを介してexec sh -c 'exec COMMAND'する理由 - (ひ)メモ

    だいぶ昔になんでかなーなんでだろーなーと思ったこと: dnscache-confで作ったrunファイルが、 #!/bin/sh exec 2>&1 exec <seed exec envdir ./env \ envuidgid dnscache softlimit -o250 -d "$DATALIMIT" /usr/local/bin/dnscache じゃなくて、こんなふうに、 #!/bin/sh exec 2>&1 exec <seed exec envdir ./env sh -c ' exec envuidgid dnscache softlimit -o250 -d "$DATALIMIT" /usr/local/bin/dnscache ' わざわざshをexecして、そのshのなかでお目当てのプログラムを起動してたこと。 で、今日、某IRCチャンネルみてて気がついたんです

    daemontoolsのrunファイルで、exec COMMANDじゃなくてshを介してexec sh -c 'exec COMMAND'する理由 - (ひ)メモ
    akuwano
    akuwano 2011/12/29
    ほうほう
  • 株式会社ディー・エヌ・エーに入社しました - (ひ)メモ

    12月1日付けで株式会社ディー・エヌ・エーに入りました。 入社して1週間が経ち、少しずつ環境にも慣れてきたところで、優秀な仲間たちと楽しく充実した日々を送っています。 自分の仕事はこれまで通り、コードも書ける(書きたい)インフラエンジニアです。 まだ把握しきれていませんが、想像していた以上のトラフィック、サーバー台数のスケールで、これほど大きなシステムに関われることに興奮して鼻血が出そうな毎日です。 特に前職では人数が少なかったせいもあり、エンジニアリング以外のこともいろいろとやりました(おかげでいろいろと経験できてよかったです)が、ディー・エヌ・エーではエンジニアリングに集中し、自分のこれまでの経験と知識と勘を活かし早期にバリューを出せるように努力しつつ、優秀な仲間たちと切磋琢磨し、より自分の腕に磨きをかけていきたいと思っている所存です。 また、ブログや勉強会等しばらくおやすみしていまし

    株式会社ディー・エヌ・エーに入社しました - (ひ)メモ
    akuwano
    akuwano 2011/12/09
    おめでとうございまーす!
  • Teeny Nagios - Nagiosのスマートフォンビューを作ったよー - (ひ)メモ

    自分の場合、iPhoneでNagiosを見たい場合というのは、 アラートが飛んできたので状況を確認したい →ざっと状況をつかみたいので、一覧性の高いビューがいい 即時対応は必要なさそうなので、とりあえずアラートを止めたい →ホスト単位、またはサービス単位で「Schedule downtime」したい ぐらいなので、それに特化したスマートフォンビューを作りました。 プロジェクトホーム http://hirose31.github.com/teeny-nagios/ レポジトリ https://github.com/hirose31/teeny-nagios Mobile Safariで通常のNagiosのページを見てもいいんですが、操作性、一覧性がイマイチだなーと思ったのが作った動機です。 ホーム。ざっくり状況を確認するのに。 ホストの一覧。黄色はwarningが、赤色はcriticalが出

    Teeny Nagios - Nagiosのスマートフォンビューを作ったよー - (ひ)メモ
    akuwano
    akuwano 2011/06/10
    すばらしぃー!
  • 実録MySQLのチューニング 春の陣 - (ひ)メモ

    long_query_time = 0.5 とか閾値を小さめにしてもスロークエリが出なくなったけど、CPU(user)使用率高いとか、なんか足引っ張ってるクエリがあるっぽいなぁという場合のお話です。 「実録」の通り、現在絶賛進行中ですので、逐次動きがあったら書き足していくつもりです。 「あれを見た方がいい」とか「これをあーした方がいい」とかあれば、コメントかTwitterで @hirose31 までお知らせいただけるとうれしいです! 使用しているのは、MySQL 5.1.41 です。 前提: サーバーリソースのグラフ GangliaでもCactiでもMuninでもなんでもいいんですが、サーバリソースのグラフ化は必須です。チューニングした際の効果測定や、そろそろリソースい潰してやばいとかの予測にも使えます。 自分はDBサーバの場合このあたりをグラフ化してます。 CPU使用率 (user,

    実録MySQLのチューニング 春の陣 - (ひ)メモ
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
    akuwano
    akuwano 2009/11/12