Fluentd + PHP

摘要:Fluentd + PHP

Fluentd 是一個Log收集Service
只在Linux環境下跑。

替你將程式非同步的持續傳輸到指定目標上

http://fluentd.org/

第一步:安裝在Unbutu
http://docs.fluentd.org/articles/install-by-deb




Ubuntu Lucid

Executing install-ubuntu-lucid.sh will automaticallly install td-agent on your machine. This shell script registers a new apt repository at /etc/apt/sources.list.d/treasure-data.list and installs the td-agent deb package.
$ curl -L http://toolbelt.treasure-data.com/sh/install-ubuntu-lucid.sh | sh


目的目標,與來源目標,都需要裝fluentd

使用官方使用的install-ubuntu-lucid.sh,就可以自動裝載fluentd及ruby

第二步:啟動
執行位置為/etc/init.d/td-agent 

可使用start,stop,restart,status指令執行


第三步:設定config

config檔在/etc/td-agent/td-agent.conf

第四步:測試



curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test

log會記錄在
/var/log/td-agent/td-agent.log

接著下一步根據你所需要的做處理
我這裡會使用PHP做處理


第五步:來源端使用PHP
http://docs.fluentd.org/articles/php

修改config檔/etc/td-agent/td-agent.conf

加入



# Unix Domain Socket Input
<source>
  type unix
  path /var/run/td-agent/td-agent.sock
</source>
<match fluentd.test.**>
  type stdout
</match>


加入完後,重新啟動

sudo /etc/init.d/td-agent restart


 

要裝PHP插件時,要先裝git

 sudo apt-get install git  or sudo apt-get install git-core

安裝PHP插件



To use fluent-logger-php, copy the library into your project directory.
$ git clone https://github.com/fluent/fluent-logger-php.git
$ cp -r src/Fluent <path/to/your_project>
 
接著撰寫測試程式
<?php
require_once __DIR__.'/src/Fluent/Autoloader.php';
use Fluent\Logger\FluentLogger;
Fluent\Autoloader::register();
$logger = new FluentLogger("unix:///var/run/td-agent/td-agent.sock");
$logger->post("fluentd.test.follow", array("from"=>"userA", "to"=>"userB"));
執行測試程式
php test.php
 
log的記錄在
 /var/log/td-agent/td-agent.log