摘要: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