最近業務で Fluentd を触ることが出てきて入門したんですが、最初のうちはトラブルが起きた時に何が起きているのか、どう対処したら良いのかがさっぱりわからなかったので、「Fluentd ってログの収集とかに使われるやつでしょ?」程度の知識しかなかった過去の自分に向けて「とりあえずこれぐらいは知っておけ!」と言いたい内容をまとめてみました。 トラブルが起きた時にどの処理で問題が起きているのか素早くコードを追うことができて、データの消失を最小限に抑えつつ適切に対処できるようになることを目的としています。 なお、現時点で最新版の Fluentd v0.14.21 を対象にしています。 アジェンダ Getting Started Fluentd のアーキテクチャ Processes Supervisor process Worker process Threads Input thread En
fluentdの設定手順 続いては実際にfluentdを利用するために必要な設定手順などを紹介しておこう。以下では、Red Hat Enterprise Linux 6.3互換であるCent OS 6.3上に、fluentdの開発しているTreasure Dataが提供しているRPMパッケージを使ってfluentdをインストールする例を解説する。 fluentdのインストール fluentdのソースコードはGitHubで公開されている。ただ、通常はソースコードからではなく、RPMやDeb形式のパッケージ、もしくはRuby Gemを利用してインストールするほうが一般的だ。なお、Ruby Gemで(もしくはソースコードから)インストールを行う場合はRuby 1.9.2が必要となるが、fluentdの開発元であるTreasure Dataが提供しているRPM/DebパッケージにはRuby 1.9
このエントリはFluentd Advent Calendar 2015の12月25日分の記事です。4日遅れ! で、本題ですが、もうタイトルそのまんま、logstash-output-fluentd を作りました。 logstash-output-fluentd | RubyGems.org | your community gem host tagomoris/logstash-output-fluentd · GitHub How to install / use 先日書いたものと全く一緒ですが、いちおう書いておきます。 とりあえずインストール。 $ bin/plugin install ../logstash-output-fluentd-0.1.0.gem Uninstalling logstash-output-fluentd Validating ../logstash-outp
Regular Expression Test String Custom Time Format (See also ruby document; strptime) Example (Apache) Regular expression: ^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$ Time Format: %d/%b/%Y:%H:%M:%S %z
Fluentdを触るようになって、いろんなログをfluentdに 渡すように試行錯誤している最中。 td-agent.conf、fluent.confを用意するときに任意のjson形式にするために 正規表現を用いてformatを書く必要があるんですが、formatの作り方というかデバック方法について どういう手順に作ると良いのか情報がネット上に見当たらず試行錯誤中。 もっと良い方法を教えてもらいたいので、今やっている方法を晒してみる。 そもそもの疑問、どうやってformatを作るのか たとえばfluentd関連の情報を調べてると、 #fluentd で maillog を読み込んで MongoDB に投入 - 酒日記 はてな支店 format /^(?<date>[^ ]+) (?<host>[^ ]+) (?<process>[^:]+): (?<message>((?<key>[^ :
既存のプロジェクトでは、fluentd(td-agnet)とmongodbを利用してログを収集し、日々のログ解析に役立てています。 主にproxyサーバーやwebサーバー等のアクセスログやユーザ行動ログ等を収集しているのですが、何も設定していないと不必要なログまで収集してしまうため fluent-plugin-filter を使ってログのフィルタリングを行なってみます。 muddydixon/fluent-plugin-filter 環境構成 OS: Amazon Linux AMI 2013.03 td-agent: fluentd-0.10.33 インストール $ sudo /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-filter Fetching: fluent-plugin-filter-0.0.0.gem (100%
Fluentdはデータを流すのに非常に便利なツールでそこら中で使われている(個人調べ)。そのため、なんかいろんなところで設定を見るのであるが、タグに情報が付いていたりフィールドに情報がついていたりして、あれ、これどうなってるんだっけ感に襲われることがよくある。 このあたり自分でも混乱しがちなので、普段どのように考えているかだいたいまとまった気がしたところで書いておくことにした。 Fluentdのデータ構造 まずはFluentdのデータ構造を知っておいた方が良い。Fluentdの内部データはMessagePackで符号化されているが、Fluentdのデータ構造は単なるハッシュではなく、時刻(time)とタグ(tag)という属性を持っている。次のような感じだ。 レコード レコード(record)は入力されたデータそのものであり、tailプラグインであれば、tailした1行のデータに相当する。重
Googleの虎の子BigQueryをFluentdユーザーが使わない理由はなくなったとのこと。 Googleの虎の子「BigQuery」をFluentdユーザーが使わない理由がなくなった理由 #gcpja - Qiita よし、Google BigQueryを使って超高速ログ解析だ!!!!と思っているとそこまでの道のりは長かった。 Google BigQueryの環境を構築する Google BigQueryはGoogle Cloud Platformのサービスの1つである。Google Cloud Platformには様々なサービスがあり、統合されているような、されていないような作りになっている。AWSのWebインターフェースも難しいけど、Google Cloud Platformもよくわからないので覚悟してかかろう。公式のドキュメントも記述が古いときもあるので疑ってかかろう。 プロジ
どちらかというとFluentdの設定の話なのですが、 Kibana上でデータを扱うことも考慮して、くらいの感じで。 アクセスログの可視化はよくあるやつなので細かい所は飛ばします。 1段目:ログ収集先からの転送設定 <source> type tail path /path/to/apache_access.log format /(?<message>.*)/ pos_file /var/log/td-agent/apache_access.pos tag apache.access.HOSTNAME </source> <match **> type forward flush_interval 1s <server> host FORWARD_HOST </server> </match>以前の記事ではin_tailにパースを書いていましたが、 パラメータが増減するのに毎回対応したり、
ここ数年のデータ解析の重要性の高まりから、ログに関するソリューションが方々で活発に探求されている昨今でございます。ウェブサーバーの単純なアクセスログをそのまま保存するではなく追加情報を添加してみたり、あるいはアプリケーションから直接ログを吐いてそれらをデータウェアに投げ込んで・・・というのも当然のように行うようになりましたね。 しかしあまり自由度のない access_log の combined フォーマット。さてどうしたもんか・・・ ここで id:stanaka の登場です。 Labeled Tab Separated Valueというのは、はてなで使っているログフォーマットのことで、広く使われているTSV(Tab Separated Value)フォーマットにラベルを付けて扱い易くしたものです。はてなでは、もう3年以上、このフォーマットでログを残していて、one-linerからflue
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く