Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

みんなのGO言語、いよいよ発売です(書評)

GO言語いいですよね。学習しやすくパフォーマンスも良く、メモリ管理が楽で、さらにワンバイナリも作れると。 コマンドラインツールなどもGo言語でさくっと書けば、ワンバイナリで非常に便利な物ができあがります。 今回「みんなのGO言語」をsuzuken (@suzu_…

Appraisalを用いた、Fluentdプラグインの後方互換性を保てるテスト方法 #Fluentd

2015年にはFluentd v0.12系が主流となってきましたが、まだ古いv0.10系を利用している環境も残っていると思います。 プラグイン開発する上では、Fluentdの後方互換性が保てているかのテストもTravis-CIで行いたいですよね。 その時にどのように行うのか、メ…

Travis-CIでapt-get installに失敗する時の対処法

最近はTravisCIでの不可解なエラーのためgem update bundlerを追記する対応が必要になり話題となりましたね。 なんと今度は、今まで動いていたapt-get installが、次のメッセージで失敗するようになりました。 E: Unable to locate package libgeoip-dev さ…

Fluentdのレコードにホスト名を付与する最良の方法

Fluentdでログを集める時にそのサーバのホスト名(hostname)をレコードに追加したい。 そういう時に便利な設定サンプルを紹介します。 ユースケース tailプラグインで収集したApacheのエラーログに、ホスト情報を付与する その他、ございましたら教えてくだ…

Rubyで全角英数字を半角英数字にnkfで変換する時の落とし穴

RubyでUTF-8文字列の全角英数字の表記揺れを統一したいとき、 気をつけないと希に文字化けする事象を見つけたのでメモします。 NKFを用いて全角英数字→半角英数字に変換する方法 ググるとよく出てくる方法は次の通りです。 もちろん、問題なく普通に動きます…

jqコマンドをsudoを使わずにインストールし、PATHを通す方法

JSONデータをコマンドラインでフィルター出来るjqコマンド、便利ですよね。 割と新しいepelリポジトリであれば、yum -y install jqで使えるようになります。 しかし次のようなケースでは大抵フルパスでバイナリを指定するのではないでしょうか。 root権限は…

データ可視化アプリの新星、PrometheusをCentOSにインストールする方法

SoundCloudが内製しているモニタリングシステム「Prometheus」がいま気になっております。 時系列データベースを用いた柔軟なクエリ言語を用い、ダッシュボードによる可視化やアラート機能もあるそうです。 Prometheus: Go言語で書かれたモニタリングシステ…

elasticsearchのファイルディスクリプタを監視する

elasticsearchはLuceneをベースにしているため、細かい粒度でのファイルを多く生成します。 そのため "too many open files" エラーが発生して停止しないよう、安定稼働のためには日頃のリソース監視が必要です。 では、どのようにファイルディスクリプタの…

どこでもオンライン♪ 人工衛星経由でリモート作業を進めるテクニック

こんにちは、某L社のAdventCalendarの25日目を担当する事になりました、よしけんさんです。 「人工衛星経由でインターネットできる」と聞いたら、なんだか未来感があってワクワクしませんか? これさえ持っていれば、どんな過酷な旅をしていようとも通信でき…

FluentdでURL付きツイートを漏れなく収集する方法

Twitterで言及されている様々な記事のURLを収集したいと考えた時、次の方法が選択肢となります。 定期的にAPIを叩く ストリーミングAPIを使う 前者の方法では単位時間毎のAPIコール制限を容易に超えてしまうので避けたいところですね。 そこでストリーミング…

要確認!GitHubでうっかり放置してしまったIssueやPullRequestを検索する方法

git

GitHubで後で見ておこうと放置してしまったIssueやPullRequestはございませんか? ブラウザUIで見られるダッシュボードからはPull RequestsやIssuesが見られますが、 その一覧には自分のリポジトリへ第三者が発行したIssueやPull Requestはありません。 この…

実は簡単なFluentdプラグインのv1-config対応テストの書き方

Fluentd Advent Calendarの4日目は、Fluentdプラグインを数多くメンテナンスする@yoshi_kenがお届けします。 Fluentdはその拡張性の高さから、数多くのプラグインがリリースされております。 これをご覧になる方の中には、プラグインを自作された方もいらっ…

elasticsearchのクラスタで利用するNICをインターフェース名で指定する方法

複数のインターフェースを搭載するマシンでelasticsearchをクラスタ稼働させると、1つ目のインターフェースのIPを対向クラスタへ返します。そのため、1つ目のインターフェースでクラスタ同士の疎通が出来ない構成で稼働させるには、network.publish_hostの調…

ElasticsearchのLogstash形式インデックスをお手軽に削除するワンライナー

photo by Irina Souiki elasticsearchのlogstash形式インデックスを、定期的にcronで削除したいときに便利なワンライナーを紹介します。 使うコマンドはdateとcurlのみという大変シンプルなものですので、環境を選びません。

データ可視化に便利なkibanaは、elasticsearchのsiteプラグインとして構成すると便利 #fluentd

Fluentdなどから収集したメッセージをelasticsearchへ格納してKibanaで可視化するソリューションは素晴らしく、とても人気があります。 しかしそれだけのためにApacheやNginxなどのWEBサーバを新たに起ち上げるのは手間ですよね。 実は新たに起ち上げない方…

Fluentdのお勧めシステム構成パターンについて発表しました

2014年9月9日開催の『サーバ/インフラエンジニア養成読本 ログ収集〜可視化編』 出版記念!執筆者が語る大講演会!にて発表してきました。 今回は「Fluentdのお勧めシステム構成パターン」というタイトルで、ユースケース毎にどのようなシステム構成をすると…

Fluentd、Kibana、Elasticsearch本の電子書籍版が発売開始&Fluentdステッカーが購入特典で付録する都内某書店を紹介

Fluentd、Kibana、Elasticsearchを大特集した本書は好評を集め、Amazonを始めとする大手書店でもベストセラー入りしております! そんなログ収集から可視化を実現するためのノウハウが凝縮された本書は、フロントエンジニアの方にも大変おすすめです。 さら…

ログ収集や可視化で話題のFluentd、Elasticsearch、Kibanaを徹底解説したムック本が発売となります

2014年8月8日、ログ収集や可視化を始めたいエンジニア必携の書籍が技術評論社より刊行されます。 本邦初公開となる、全編書き下ろしの特集で構成された本書を読むことで、ログ解析の有用性からログ収集、保存、可視化手法を習得できます。 私はこの第2特集「…

SoftBank携帯とnet.ipv4.tcp_tw_recycle=1の相性が悪い本当の理由

photo by saschaaa LinuxにおいてTIME_WAITなコネクションを減らす手法としてnet.ipv4.tcp_tw_recycle=1にするテクニックは有名です。 しかし環境によってはSoftBankに限らず問題が起きるため、利用には注意が必要です。 一体どのような問題が起きるのか、詳…

5分あれば出来る、Muninでelasticsearch 1.xのリソース監視を行う方法

JVMで動くelasticsearchを安定運用させるにはリソース監視も欠かせません。 今回は手軽なリソース監視が出来るMuninを用いて、インストール方法から作られるグラフサンプルの紹介まで行います。 利用プラグイン elasticsearch 1.x系で動くプラグインは現状こ…

プロキシを使わずにRuby-1.9/2.1混在環境も作れる、Apache2+Passenger4+rbenvを用いた混在環境の作り方

Passenger 3.x で複数のRubyバージョンを使い分けるには、とてもトリッキーな対応が必要でした。 ところがPassenger 4.0.0 より公式に複数のRubyバージョンに対応しました。つまり、同一筐体のApacheで動く他アプリケーションへ影響を与えることなく、気軽に…

MySQLからelasticsearchへ、レコードをネスト構造化しつつ同期出来る fluent-plugin-mysql-replicator v0.4.0 を公開しました

elasticsearchは全文検索サーバとしても知名度を獲得しており、次のような記事も人気を集めています。 elasticsearchを全文検索サーバとして活用するなら読んでおきたい、6つのブログ記事をピックアップ - Y-Ken Studio http://y-ken.hatenablog.com/entry/e…

elasticsearchを全文検索サーバとして活用するなら読んでおきたい、6つのブログ記事をピックアップ(追記あり)

LuceneベースのNoSQL全文検索サーバ、elasticsearchはログ解析の収集先として取り上げられることが多いですが、優れたNoSQL全文検索サーバでもあります。 日本でも2013年末頃から続々とブログ記事や利用事例が増えている注目の技術でもあります。 今回は、そ…

プレースホルダ設定に対応した fluent-plugin-geoip v0.1.1 をリリースしました

GeoIPを用いてIPアドレスを元に位置情報をレコードに付与するFluentdプラグイン、fluent-plugin-geoip v0.1.1をリリースしました。 今回の目玉は、GeoIP判定対象の複数キー対応化と、プレースホルダ記法への対応するための設定ファイル仕様の変更です。 http…

Fluentdでelasticsearchの一般ログ・スロークエリログを収集する設定

FluentdのtailプラグインでElasticsearchのログを収集する方法を紹介します。

不正バイト文字列対策済の fluent-plugin-rewrite-tag-filter v1.4.1 をリリースしました #fluentd

ログ収集ツールFluentdに、Apacheのmod_rewriteのようにtagを自在に書き換える機能を追加する、fluent-plugin-rewrite-tag-filterのv1.4.1をリリースしました。 https://github.com/y-ken/fluent-plugin-rewrite-tag-filter http://rubygems.org/gems/fluent…

タグ書き換えが捗るFluentd用Mixinプラグイン「Fluent::Mixin::RewriteTagName」を公開

fluent-mixin-rewrite-tag-nameというFluentd向けMixinプラグインを公開しました。 このMixinプラグインは、<source>や<match **>の中で使えるtagオプションを追加します。 タグ書き換え周りのプラグイン実装の省力化ができますね! https://github.com/y-ken/fluent-mixin-rew</match></source>…

LXCベースのDockerゲストマシンとホストマシンのディスクI/O性能を比較検証(Bonnie++編)

dotCloudが開発しているLinuxコンテナ型仮想ソフト「Docker」が巷で話題ですね! これはLXCにストレージドライバとしてunionfsから派生したaufs(CentOSではLVMのThin Provisioning)を組み合わせた所がキモで、つまりファイルシステムの差分管理が出来る特…

elasticsearch-1.0.0正式版がリリースされたので、0.9.xからのアップグレード手順をまとめました(追記あり)

Elasticsearch 1.0.0 released ということで、早速アップデートしてみました!

第3回elasticsearch勉強会でトークしました #elasticsearchjp

2014年2月7日にリクルートテクノロジーズで開催された「第3回 ElasticSearch勉強会」でトークしてきました!前回の皆様の発表はKibanaに関する情報がメインでしたが、今回は検索技術中心のガチな内容でとても楽しかったです。 懇親会では今回発表したYamabik…