タグ

ブックマーク / tagomoris.hatenablog.com (13)

  • Nginx 1.13 の http_mirror_module を試す - たごもりすメモ

    みなさんにも、さまざまな過去の経緯からくる微妙挙動を満載した外部ユーザ向けのHTTPサーバをリプレイスしたりするとき、実際にガツンとやっちまう前にちょっとリクエストを分岐して挙動と性能を確認したい、と思うことがあると思います。考えるだけでつらい気分になってくるやつ。でもやったほうが100倍マシなやつ。 どうしよっかなとちょっと考えたところ、少し前にこんな話があったのを思い出すはずですね*1。 asnokaze.hatenablog.com とはいえヨッシャ使うぞといきなりぶちこむこともできないので、まずいくつか試してみることにする。 準備 前提としては以下のように、元のアプリケーションと同じにホストにリバースプロキシが立っており、そこのnginxで http_mirror_module を使う、という想定*2。ミラー先はどこか適当なアプリケーションサーバ(あるいはロードバランサ)で、元アプ

    Nginx 1.13 の http_mirror_module を試す - たごもりすメモ
    yyamano
    yyamano 2018/04/13
  • mrbgemをビルドしてテストを手元で走らせる(2017年版) - たごもりすメモ

    mrubyを使っていたところ、あるmrbgemが思った通りに動かなかったとする。あなたはまず真っ先に自分のコードを疑い、次にmrbgemの挙動を疑うであろう。 しかしmrbgemにはテストが十分に書かれていないかもしれない。ので、自分でテストケースを追加して手元で走らせ、様子を見たいと思うのが人として自然な成り行きである。 ところでmrbgemのリポジトリなどを見てもどのようにビルドしテストを実行させているのかが全く不明なケースが多く、なにこれどうやるの? という疑問を当然のように持つと思うので、そのような人のためのメモがこのエントリ。 ちょっと調べると以下のようなエントリがひっかかりますが、これは2年前のもので、この通りに build_config.rb を書いて上書きして走らせてもmrbgemのテストは実行されません。注意。 mrubyのモジュールmrbgemを開発した際に簡単にTra

    mrbgemをビルドしてテストを手元で走らせる(2017年版) - たごもりすメモ
  • Javaのリリースサイクル変更により Oracle JDK が一般ユーザに提供されなくなるのではという話があったけど誤読ではないかという話 - たごもりすメモ

    雑に書くぞ! Faster and Easier Use and Redistribution of Java SE | Oracle Java Platform Group, Product Management Blog このエントリを読む限り、Oracle JDKのダウンロードが商用サポート契約者にのみ限られる、という話は書いていない。 The Oracle JDK will continue as a commercial long term support offering * The Oracle JDK will primarily be for commercial and support customers once OpenJDK binaries are interchangeable with the Oracle JDK (target late 2018) *

    Javaのリリースサイクル変更により Oracle JDK が一般ユーザに提供されなくなるのではという話があったけど誤読ではないかという話 - たごもりすメモ
    yyamano
    yyamano 2017/10/10
  • CRuby/JRubyで実行可能かつmrubyでビルド可能なコードを書く - たごもりすメモ

    msgpack-inspectを作った話に書いたが、このツールはエントリにも書いたとおり rubygems.org に公開されていて CRubyJRuby でインストール・実行可能である。その一方でバイナリをダウンロードするだけで使えると便利だよねってことで、mrubyでクロスコンパイルしてリリース版が置いてある。 これは実はそこまで簡単ではなくて、Rubyの機能のうちmrubyでもサポートされている文法や組込みライブラリの範囲しか使えないのはもちろん、たとえば外部のライブラリに依存する機能*1などは mruby でクロスコンパイルしようとすると地獄を見ることなどもある。 そんな事情もあって、今回クロスコンパイルしたリリースに成功するまで、けっこうな手間をかけた。ここにそのへんをざらっと書いておこうと思う。 やったこと mruby-cliを使う 基的にmrubyでビルドするための準

    CRuby/JRubyで実行可能かつmrubyでビルド可能なコードを書く - たごもりすメモ
  • 小中規模のIT系企業における技術的選択と雇用戦略に関する雑感 - たごもりすメモ

    でっかい主語で入ったが、要するに2月にあちこち会社巡りをしたときに感じたことについてつらつら書こう、というのが目的。 特定の会社について書いてもしょうがないので、あれこれ*1回ったうちから少なくとも2〜3ケースで該当するなあ、と思ったことについて書く。特定の1社のみに該当する事項はこのエントリにはひとつも出てきません。 またエントリの主旨からして超上から目線になりますが、どうかご容赦ください。 これから成長が格化するのでインフラを支えられる人材がほしい 正直に言ってこれが一番多かったパターン。スタートアップ的にサービスを作ってきたがその一方でデプロイや監視などの運用まわりが後手後手になっており、そのあたりを支えられる人物がほしい。 話としてはわかるのだが、気になったのは、これを聞くとき、詳しい内容を突っ込んでみると、どうも実際にはそう困ってはいない、というケースがほとんどだったように思え

    小中規模のIT系企業における技術的選択と雇用戦略に関する雑感 - たごもりすメモ
    yyamano
    yyamano 2015/05/11
  • Fluentd Config DSLについての話 - たごもりすメモ

    Fluentd に Config DSL を導入しろや! つまり設定をRubyのコードで書かせろや! という声は前から多かった。が、なんかいろいろ面倒な思惑が交錯し、あと「設定ファイルにrubyのコードでcallbackとか書いてプラグインの挙動を制御したい!」とか更に面倒なことを言いだした人がいたせいでDSL以外の設定書式でそれどうすんの……とコミッタの精神状態がどん底まで落ち込み長らく放置されていた。 みんなもOSSプロジェクトにfeature requestするときはあんまりステキすぎる機能のリクエストをする前に少し考えてみよう。まじで。 https://github.com/fluent/fluentd/pull/97 で、そんな数ヶ月ののち、ちょうど Fluentd v11 ハッカソンなるものがあったので、生ハムべつつワイン飲んでたらConfig DSLのことを思い出した。まー

    Fluentd Config DSLについての話 - たごもりすメモ
  • fluentdとシステム設計の小ネタ - たごもりすメモ

    あるいは http://yugui.jp/articles/879 へのreply。 システム監視をfluentdに統合してしまうべきか否か システム監視は分けておいた方がいいと思う。分けるべき、とまでは言わないけれど。 それらの仕組みには相応の必要な機能セットがあり、それらは長い歴史の中で比較的決まった機能セットに収斂してきており、その収集・モニタリング・可視化・アラート通知など決まりきったパターンを様々な項目について停止なく行う必要がある。 Fluentdの各種プラグインを用いることで同じような機能は実現できる。そのプラグインのうち数割は自分が書いものだったりする。とはいえ各ホストのシステム監視までそこで行うことを想定して書いたかというと、もうちょっと高いレイヤでの監視・集計、つまりサービス単位などを目的としたものが多い。サーバ単位で行おうとしたときに設定が雑多なものになるのはおそらく

    fluentdとシステム設計の小ネタ - たごもりすメモ
  • #fluentd の性能・リソースに関する最近のいくつかの傾向の話 - たごもりすメモ

    いくつかそれぞれ違う内容のことについて書きます。また複数の変更をほぼ同時期にやったケースもあり「お前それ分けてやれよ」と言いたくものがあるかもしれません。いや分かってはいるんだけど、そうそう変更ばっかりもしてられないからまとめてやりたいじゃんよ。 前提ですが、今回出てくるサーバはすべて、fluentdのみを8プロセスずつ起動している物理サーバです。fluentd meetupのときに「deliverサーバ」として紹介したやつ。各Webサーバからログを受け、アーカイブサーバにscribeプロトコルで送ると同時にロードバランスしてログ変換サーバに forward で送る配送サーバ。out_forwardのインスタンスが57あります。 ruby 1.9.2 -> 1.9.3 にした 前々から全くトラフィックの流れていないスタンバイ用のサーバでもメモリの使用量が徐々に上がっていって定期的な再起動が

    #fluentd の性能・リソースに関する最近のいくつかの傾向の話 - たごもりすメモ
  • 自家製 td-agent のrpmをつくる - たごもりすメモ

    自社サービスの運営のために fluentd を使っているとrpmでインストールできる td-agent が大変便利だ。 便利だが、自社内で使うんだから、もう最初から自社用の設定とかその設定に必要なプラグインとか入っててほしい。そんで yum install td-agent をサーバ上で実行したら設定とかいじらないでいいようにしたい。みんなラクをしたいでしょ!? もちろん td-agent のリポジトリをforkしてあれこれ手を入れればできるが、そうするとその後のメンテナンスが面倒だ。リポジトリ自体のアップデートはTreasure Dataの人に頑張っていただいて、我々は spec をいじる程度に収めておきたい。みんなラクをしたいよねー。 した いろいろと td-agent のビルドスクリプトに手を入れる必要はあったが、もうその修正は当たっているのでみなさんは以下の手順を実行するだけでよろ

    自家製 td-agent のrpmをつくる - たごもりすメモ
  • FluentdでバッファつきOutputPluginを使うときのデフォルト値 - たごもりすメモ

    なんか自分で docs.fluentd.org へのpatchを書いてて混乱してきたのでまとめる。コードを読んでも関係する設定値がいくつものモジュールに分散しており、完全に把握することが困難である。具体的には、この組合せを記憶だけで答えられる fluentd コミッタはおそらく一人もいない。 概要 対象は BufferedOutput および TimeSlicedOutput を継承している output plugin の全て*1。out_forward, out_exec や out_exec_filter も含まれる。 基的にはいくつかの設定により flush をするタイミングを制御するパラメータ一式、およびflush対象となるデータのチャンクを溜めておく量の上限を決めることとなる。fluentd をうっかり試したときに「アイエエエ、fluent-cat してみたんだけど、設定したと

    FluentdでバッファつきOutputPluginを使うときのデフォルト値 - たごもりすメモ
  • #fluentd な今だからこそふりかえる scribed のすべて - たごもりすメモ

    最近 fluentd というツールのことがたいへんよく話題に上がっており、かく言う自分もささやかながら使用している身なのだが、それはそれとして比較対象に上がってくるツールに scribed というものがある。これがどういうものなのか、話には聞いていてもよくは知らないという人が多いようなので、これもささやかながら触ってみている自分としてはここらで一度まとめておかねばなるまい、と思った次第である。 日全国に10人くらいはいるかもしれない scribed のヘビーユーザ各位に捧げる。 なお記憶と経験だけを頼りに書き殴るので、意思決定の重要な局面とかで「これこれこういうブログにたごもりすなる者がこのようなことを書き残しており」などと引用するのはくれぐれも避けていただきたい。 また途中から思いっきりビール飲みながら書いたので文章自体の品質にも問題のある可能性がある。 そも scribed とは何か

    #fluentd な今だからこそふりかえる scribed のすべて - たごもりすメモ
  • 簡単にscribedにログを転送するためのエージェント scribeline を作った - たごもりすメモ

    まあ実際のコード自体はずいぶん前に書き上がっててGitHubにあったんだけど。 tagomoris/scribe_line · GitHub 何で作ったの scribedはログ収集サーバとしてはグッドなんだけど、なぜかエージェント側、ログを送出する側のコード例が極めて貧弱で、たとえば俺はいますぐApacheのログをscribedに送り付けたいんだ! というときにどうしたらいいのかがよくわからない。というか簡単な方法が世の中に転がっていないように見える。 ので、しょうがないから作った。 ついでにデフォルト設定ファイルを読むようにしたりとか、各ログファイルの転送を一発で開始/終了できるようにしたりとか、接続先の scribed が死んだらセカンダリサーバに接続をフェイルオーバできるようにしたりとか、してある。前に 障害に強いscribeサーバ構成と設定 - tagomorisのメモ置き場 で書

    簡単にscribedにログを転送するためのエージェント scribeline を作った - たごもりすメモ
  • 障害に強いscribeサーバ構成と設定 - たごもりすメモ

    scribeによるログ配送についていくらか試したりしつつ実戦投入しているのでその話。 今のところピーク時で20Mbps程度の流量で、100Mbpsを超えてくるようになると流量制限をシビアに考えたり中継サーバを複数台構成にしたり考えることになるのかなーと思っているが、現状はまだそこまでやってない。世の中には考えている人がぜったいいるはずなので話を聞いてみたいなあ。なんか「動かしてみた」レベルの話しかぐぐっても見付からない。悲しい。 サーバ構成 各サーバからログを(ほぼ)リアルタイムにscribedに流すのはいいとして、1台立ててるだけだと障害があったら全て終了してしまう。これはまずいので、複数台構成にする。 scribedはdeliverとcentralの両方で起動する。(設定はもちろん異なる。後述。) 通常は各サーバはすべて deliver サーバに接続してログを送る。deliverサーバ

    障害に強いscribeサーバ構成と設定 - たごもりすメモ
  • 1