Data Import from PHP Applications
The ‘fluent-logger-php’ library is used to post records from PHP applications to Fluentd.
This article explains how to use the fluent-logger-php library.
Table of Contents
- Basic knowledge of PHP
- Basic knowledge of Fluentd
- PHP 5.3 or higher
Please refer to the following documents to install fluentd.
- Install Fluentd with rpm Package
- Install Fluentd with deb Package
- Install Fluentd with Ruby Gem
- Install Fluentd from source
Modifying the Config File
Next, please configure Fluentd to use the forward Input plugin as its data source.
# Unix Domain Socket Input <source> type unix path /var/run/td-agent/td-agent.sock </source> <match fluentd.test.**> type stdout </match>
Please restart your agent once these lines are in place.
# for rpm/deb only $ sudo /etc/init.d/td-agent restart
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>
Next, initialize and post the records as shown below.
<?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"));
Executing the script will send the logs to Fluentd.
$ php test.php
The logs should be output to
/var/log/td-agent/td-agent.log or stdout of the Fluentd process via the stdout Output plugin.
Various output plugins are available for writing records to other destinations:
- List of Plugin References
High-Availablability Configurations of Fluentd
For high-traffic websites (more than 5 application nodes), we recommend using a high availability configuration of td-agent. This will improve data transfer reliability and query performance.
Monitoring Fluentd itself is also important. The article below describes general monitoring methods for td-agent.
If this article is incorrect or outdated, or omits critical information, please let us know.comments powered by Disqus