Fluentd Meetup 2016 - ServerEngine Integration & Windows supportRitta Narita
Site Reliability Engineering Teamの@cubicdaiyaです。 今回はGo製のログ転送エージェントであるfluent-agent-hydraとメルカリでの利用事例について紹介します。 メルカリとFluentd メルカリではAPIサーバのアクセスログやアプリケーション固有のログをはじめとする各サーバに散らばっているログデータを転送・集約するのにFluentdを活用しています。 具体的にはローカルに書き込まれるログファイルのin_tailやそれらを転送するための(out|in)_forward、ElasticsearchやBigQueryにログを放り込むためのプラグインを利用しているほか、いくつか特殊な用途のプラグインを独自に開発して運用してたりもします。 ログの流量とFluentdのパフォーマンス 多機能で柔軟なプラグイン機構を持つ便利なFluentdですが
Fluentdの知られていない6つのこと 本当に知られていないかはわからないです。 公式にはあまり説明されていなかったり調べてもなかなか見つからないことが多いと個人的に思ったものを集めました。 機能や言葉の細かい説明は省いているのである程度使っている人が対象です。 out_copyはshallow copy Fluentdで最初に使うであろうビルドインされているout_copyプラグインですが、実はデフォルトではメッセージをdeep copyしないため意図しない結果になることがあります。 <match test> type copy <store> type record_modifier tag test.aa foo bar </store> <store> type retag tag test.bb </store> </match> <match test.{aa,bb}> ty
BigQuery側で「1リクエスト500行まで」という制限があるので500とする。 500ちょうどにしておくとエラーになることがあるという情報があるので、300程度にしておくとよいかもしれない(コメント欄参照)。 buffer_chunk_limit チャンクごとの最大バイト数。 BigQuery側で「1リクエスト1MBまで」という制限があるので1000000とする。 1MBちょうどにしておくとエラーになることがあるという情報があるので、768k程度にしておくとよいかもしれない(コメント欄参照)。 buffer_queue_limit プラグイン側でいくつのチャンクをメモリに保持しておくか設定できる。 デフォルト値は1024となっている。 小さすぎるとキューが溢れてエラーとなってしまうので、メモリ量と相談して大きめの値にしておくとよい。 1チャンクの最大サイズが1MBなので、デフォルトの1
fluentd の frsyuki/fluent-plugin-multiprocess · GitHub は、 プロセスを分けられて便利なのですが、 td-agent の initscript の configtest をしたときに、/etc/td-agent/td-agent.conf のチェックしか行えません(設定している cmdline の方は configtest されない)。 そのため、service td-agent configtest が通ったから restart する、ということをすると error でこける場合があります(執筆時の数時間前にやらかしました)。 そこで、/etc/td-agent/td-agent.conf の中身から config ファイルを抜き出して、 それぞれ configtest を行う script を書きました。 追記1. cmdline の
昨年構築してからずっと安定稼働していたfluend(td-agent)が年明けくらいから下記のエラーが出て連日停止してしまって、 ちょっとハマったのでメモしておく。(ハッキリとした原因は掴めてないですが) 利用しているtd-agentのバージョンはtd-agent-1.1.18-0.x86_64。 現象 fluent.logには下記が出ていて、機能が停止している。 2014-01-09T20:28:59+09:00 fluent.error {"error":"#<Fluent::BufferQueueLimitError: queue size exceeds limit>","error_class":"Fluent::BufferQueueLimitError","message":"forward error"} 2014-01-09T20:28:59+09:00 fluent.w
タイトルが長いですが、つまりそういうものをGoで書いています。 fluent-agent-hydra - Github (hydraっていうのは首のいっぱいあるアレです。キングヒドラとか) 特徴 fluent-agent-lite 的なファイルを tail -F のように追尾する機能 1プロセスで複数ファイルを追跡できます in_tail のような pos_file, parse 機能は今のところありません in_forward 的な TCP で msgpack 形式のログを受け取る機能 各種言語の logger (Ruby, Perl, Go など) から投げたログを受け取って fluentd に送り直せます JSON 形式には対応していません 簡易的なオンメモリバッファを持っています 上記から入力されたログを fluentd に送信する out_forward 的な機能 複数の送信先を
社内勉強会で発表した内容です。 ログの収集、分析、可視化までを行なう、 「Fluentd」 「Elasticsearch」 「Kibana」の組み合わせのうち、 今回は「Fluentd」について発表を行いました。 ログの収集方法から、出力先までを柔軟にカスタマイズできるオープンソース・ソフトウェアです。
graphite にメトリクスをポストする fluent-plugin を書きました 先に github で公開されていた fluent-plugin-graphite がありましたが、イチから書いて gem release いたしました https://github.com/studio3104/fluent-plugin-graphite http://rubygems.org/gems/fluent-plugin-graphite なぜイチから書いたのか 以下のような箇所に懸念があり、修正だと結局まるっと書き直すのと変わらないと思いイチから書いてしまいました 先行プラグインは、 Fluent::BufferedOutput を継承し、内部でサンプリングやカウントなどの計算をしていたが、そういうのは他のプラグインに任せて、来た値をそのまま投げてあげればいいのではないかと思った レコード
ES + kibanaでサーバモニタリングをやってみたのですが、ESのCPU負荷がかなり高くて、リアルタイムにモニタリングできない状況だったので、graphite + grafanaにしてみた。ちなみに、ESのサーバのCPU負荷はこんな感じ。 GrafanaはGraphite用のDash boardを作るツール。最近、influxDBにも対応していてなかなか野心的。 Grafana - Graphite Dashboard kibanaをforkしただけあって、画面はそっくり。まだ修正もれがあるのか、メッセージにkibanaって文字がでてくることもある セットアップ もろもろのセットアップのメモ 監視サーバ まず、監視サーバにGraphiteとGrafanaをいれる。環境はCentOS6 CentOS6.x - CentOSにRPMでGraphite+Diamondをインストールする -
jstatの結果を入力とするfluent-plugin-jstatを作りました。 GitHub - wyukawa/fluent-plugin-jstat fluent-plugin-jstat | RubyGems.org | your community gem host JavaアプリケーションのモニタリングというとJMXが思い浮かぶと思いますが、 JMXはアプリ起動時に-Dcom.sun.management.jmxremoteとか指定しないといけないし、 JMXほど大げさじゃなくてもっとカジュアルにモニタリングしたい時もあると思います。 そんなときにはjstatが使えます。 jstatを使ったモニタリングは下記に詳しいです。ここではjstatの結果をderived経由でGrowthforecastに送っています。 derivedがプラグインアーキテクチャになってGrowthFor
March 9, 2013 Monitoring Casual Talk #3に参加してきました。 会場をご提供頂いた株式会社paperboy&co.さま @ume3_さん、@tnmtさん、@lamanotramaさん、ありがとうございました。 会場へ向かう途中で、fujiwaraさんとsongmuさんが 今日はmizzyさんいないからイケるかもしれないとか物騒なこと言ってて怖かったです。 セルリアンタワー、曜日の夜にBARになるところがすごくて 入り口にイケイケのおねーさんいたりして華やかや〜!!!ってなっていました。 発表内容 発表資料はこんな感じです。 出発する30分前につくったのでそんなに大したものではないです。 一枚目は 「*RDSのメトリクスをCloudWatchからfluentdへ、slow_logを添えて*」 って書いてあります。 フレンチっぽくしたかったんですけどただの読
はじめに Fluentdは、ログを収集し格納するためのログ収集基盤ソフトウェアです。Fluentdにインプットされた、すべてのログをJSONに変換し、アウトプットします。インプットとアウトプットはモジュール化されており、モジュールを追加することでインプット元とアウトプット先を追加できるようになっています。 Fluentdは急速に知名度を高め、多くのWebサービス会社で実際に使用されるようになりました。従来のログが抱えていた問題も、Fluentdが適切な解決策となっていると認知され、かつ簡単に導入・スモールスタートできるミドルウェアであったことが大きかったと思います。 本稿では、Fluentdの簡単な仕組みと導入方法、シンプルな動作事例について紹介します。 対象読者 システム管理者 データサイエンティスト 必要な環境 UNIX系OS Ruby 1.9 ログを出力する理由 システム運用を始める
異常値検知、素敵な響きですね!fluent-plugin-anomalydetect 作りました - PolyPeaceLight あらかじめ固定値でアラートの条件を決めておかなくても、通常と異なる数値変化を検出してアラートできたら大変嬉しい、ということでインストールして一週間ほど運用してみました。 fluent-agent-lite で送信されてくる nginx のアクセスログの数を対象 60秒間隔で集計 <match nginx.access.**> type copy <store> ... </store> <store> ... </store> <store> type anomalydetect tag nginx.anomaly.access_log tick 60 store_file /var/log/td-agent/anomalydetect.dat </store
稼働中のFluentdが、時間帯あたりどの程度のトラフィックを捌いているのかをモニタリングしたいな、、と思って色々探していたら、"fluent-plugin-flowcounter"というプラグインがまさにその目的のために作られたプラグインだったので、導入してみました。 以下、備忘録的に。 fluent-plugin-flowcounter Fluentd界では知らない人がいないtagomoris先生作成のプラグインです。 基本的には、streamで流れてきたデータの"count(件数)"ならびに"bytes(データサイズ)"を計測してくれるプラグインです。 詳しくはgithubのREADMEや、tagomoris先生のブログ記事を参照すると良いと思います。 https://github.com/tagomoris/fluent-plugin-flowcounter http://d.ha
fluentdを使ってみたいけど、「JSONでシリアライズしなくていいのに・・・生でいいのに・・・」と思ってなかなか使い出せないというケースはままあるのではないでしょうか。 こんなときに困ってしまうからですよね。 rsyncやscpで毎日深夜にやってくる生ログを解析するスパゲッティスクリプトたちを使えなくなってしまう アプリケーションサーバにログをパースさせるための負荷をかけたくない それでも使ってみたい、現存の古臭い解析機構をアクティブにしたまま、徐々にfluentdによる先鋭的なログ解析を始められたらいいなと思っている方、 fluent-agent-lite と td-agent で、fluentd を小さくはじめてみたらいいと思います。 結論を先に言うと、fluent-agent-lite + fluent-plugin-file-alternative + fluent-plugi
Big Data Day LA 2016/ Big Data Track - Fluentd and Embulk: Collect More Data,...Data Con LA
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く