へろへろもへじ

(ブログタイトル募集中)

fluent-logger-phpを使ってfluentd(td-agent)にPush通知をしてみた

githubのREADMEとexsamples配下のサンプルがしっかりしているので、特にハマることなく実現できましたが、一応作業ログとして。

Composerでfluent-logger-phpをダウンロード

カレントディレクトリにcomposer.jsonを用意し、以下を定義する。

{
    "require": {
        "fluent/logger": "v0.3.7"
    }
}

Composerをダウンロードする

curl -sS https://getcomposer.org/installer | php

fluent-logger-phpをダウンロードする

php composer.phar install

Push通知してみる

準備

■サンプルコード(push通知側)

<?php

require 'vendor/autoload.php';

use Fluent\Autoloader,
    Fluent\Logger\FluentLogger;


// UNIXドメインソケットを使った通知
$logger = FluentLogger::open("unix:///var/run/td-agent/td-agent.sock");
// INETドメインソケットを使った通知
// $logger = FluentLogger::open("localhost", "24224");

// 10回pushしてみる
foreach (range(1, 10) as $i) {
  $param = array(
    'seq' => $i,
    'message' => 'hogehoge',
    'create_date' => date("Y-m-d H:i:s")
  );

  $logger->post("debug.posted", $param);

  sleep(1);
}

echo "finished!" . PHP_EOL;

■td-agent.conf(push受け側)

# UNIXドメインソケットを使う場合
<source>
  type unix
</source>

# INETドメインソケットを使う場合
# <source>
#  type forward
#  port 24224
# </source>

<match debug.**>
  type stdout
</match>

実行結果

$ sudo tailf /var/log/td-agent/td-agent.log
2014-03-09 12:57:15 +0000 debug.posted: {"seq":1,"message":"hogehoge","create_date":"2014-03-09 12:57:15"}
2014-03-09 12:57:16 +0000 debug.posted: {"seq":2,"message":"hogehoge","create_date":"2014-03-09 12:57:16"}
2014-03-09 12:57:17 +0000 debug.posted: {"seq":3,"message":"hogehoge","create_date":"2014-03-09 12:57:17"}
2014-03-09 12:57:18 +0000 debug.posted: {"seq":4,"message":"hogehoge","create_date":"2014-03-09 12:57:18"}
2014-03-09 12:57:19 +0000 debug.posted: {"seq":5,"message":"hogehoge","create_date":"2014-03-09 12:57:19"}
2014-03-09 12:57:20 +0000 debug.posted: {"seq":6,"message":"hogehoge","create_date":"2014-03-09 12:57:20"}
2014-03-09 12:57:21 +0000 debug.posted: {"seq":7,"message":"hogehoge","create_date":"2014-03-09 12:57:21"}
2014-03-09 12:57:22 +0000 debug.posted: {"seq":8,"message":"hogehoge","create_date":"2014-03-09 12:57:22"}
2014-03-09 12:57:23 +0000 debug.posted: {"seq":9,"message":"hogehoge","create_date":"2014-03-09 12:57:23"}
2014-03-09 12:57:24 +0000 debug.posted: {"seq":10,"message":"hogehoge","create_date":"2014-03-09 12:57:24"}

おぉ、ちゃんとtd-agentに渡ってきてますね!!「すばらっ!」です!!
ちなみに、INETドメインソケットでも結果は同じです。

備考