[Amazon Linux2] fluentdインストール

$ curl -L https://toolbelt.treasuredata.com/sh/install-amazon2-td-agent3.sh | sh

// プラグインインストール
$ sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-zabbix
$ sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-cloudwatch

// 起動
$ sudo systemctl start td-agent.service
$ sudo systemctl status td-agent.service

### テスト
$ curl -X POST -d ‘json={“json”:”message”}’ http://localhost:8888/debug.test
$ tail /var/log/td-agent/td-agent.log

### 設定ファイル
$ sudo vi /etc/td-agent/td-agent.conf
-> apache log出力

<source>
  type tail
  path /var/log/apache2/access.log
  pos_file /var/tmp/apache2-access.log.pos
  format apache2
  tag log.apache
</source>

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

source
– inputしたいソースに対応するプラグインを指定

match
– イベントをタグ指定してoutputプラグインに渡す。
– 標準的に使用するプラグイン;file,forward

$ sudo systemctl reload td-agent.service

vi td-agent.conf

設定ファイル
sourceディレクティブ。入力方法を決める

<source>
  type forward
</source>

matchディレクティブ。マッチした入力への処理を決める

<match index.html>
  type file
  path /var/log/fluent/access1
</match>

[vagrant@localhost td-agent]$ sudo /etc/init.d/td-agent status
td-agent is running [ OK ]

fluentdを使おう

vagrant@vagrant-ubuntu-trusty-64:~$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
vagrant@vagrant-ubuntu-trusty-64:~$ gem -v
1.8.23
vagrant@vagrant-ubuntu-trusty-64:~$ gem update –system
ERROR: While executing gem … (RuntimeError)
gem update –system is disabled on Debian, because it will overwrite the content of the rubygems Debian package, and might break your Debian system in subtle ways. The Debian-supported way to update rubygems is through apt-get, using Debian official repositories.
If you really know what you are doing, you can still update rubygems by setting the REALLY_GEM_UPDATE_SYSTEM environment variable, but please remember that this is completely unsupported by Debian.
vagrant@vagrant-ubuntu-trusty-64:~$ gem list

*** LOCAL GEMS ***

curl -L https://toolbelt.treasuredata.com/sh/install-amazon1-td-agent3.sh | sh

[vagrant@localhost td-agent]$ ls
plugin td-agent.conf

fluentdをインストール

[vagrant@localhost ~]$ sudo rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm
http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm を取得中
curl: (22) The requested URL returned error: 404 Not Found
エラー: skipping http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm – transfer failed

あれ、必要なかったか。fluentdを入れます。
sudo curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

完了しました!
Installation completed. Happy Logging!

happy loggingって。。。えらい陽気だな。
luentdは古橋貞之氏(写真)が開発を始めたOSS。
あ、tresure dataの人だ! マジすげー

とりあえず起動してみましょう。

[vagrant@localhost ~]$ sudo service td-agent start
td-agent td-agent: [ OK ]
おおおおおお、なんか感動した。

fluentdの動作テストを行います。
[vagrant@localhost ~]$ curl -X POST -d ‘json={“json”:”message”}’ http://localhost:8888/debug.test
[vagrant@localhost ~]$ tail -3 /var/log/td-agent/td-agent.log
2018-09-16 10:31:38 +0900 [info]: listening fluent socket on 0.0.0.0:24224
2018-09-16 10:31:38 +0900 [info]: listening dRuby uri=”druby://127.0.0.1:24230″ object=”Engine”
2018-09-16 10:32:17 +0900 debug.test: {“json”:”message”}

えーと、、読み方がわからん。
POSTリクエストを送るには、-X POST を付与します。
localhost:888/dubug.test に’json={“json”:”message”}’をpostしたってことかな。

続いてtailコマンド。
>tailはファイルの最終行から数行を表示するコマンドだ。
>標準では10行を表示
あ~ なるほど。 /var/log/td-agent/td-anget.logの最後の3行を読んでいるわけね。たしかに、tailはお尻って意味ですね。

はいはい、td-agent.logに入っています。

centosにfluentdを入れる準備をしよう

まず、ntpを入れます。
[vagrant@localhost ~]$ sudo yum install -y ntp
インストール:
ntp.x86_64 0:4.2.6p5-12.el6.centos.2

依存性関連をインストールしました:
ntpdate.x86_64 0:4.2.6p5-12.el6.centos.2

完了しました!

etcのntp.confを編集していきます。

[vagrant@localhost ~]$ yum info libcurl
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
* remi-safe: ftp.riken.jp
bintray–sbt-rpm 33/33
epel 12520/12520
インストール済みパッケージ
名前 : libcurl
アーキテクチャ : x86_64
バージョン : 7.19.7
リリース : 53.el6_9
容量 : 339 k
リポジトリー : installed
提供元リポジトリー : updates
要約 : A library for getting files from web servers
URL : http://curl.haxx.se/
ライセンス : MIT
説明 : This package provides a way for applications to use FTP,
: HTTP, Gopher and other servers for getting files.

利用可能なパッケージ
名前 : libcurl
アーキテクチャ : i686
バージョン : 7.19.7
リリース : 53.el6_9
容量 : 176 k
リポジトリー : base
要約 : A library for getting files from web servers
URL : http://curl.haxx.se/
ライセンス : MIT
説明 : This package provides a way for applications to use FTP,
: HTTP, Gopher and other servers for getting files.

td-agent, fluentd

ログの収集、集約やデータの収集、集約、プラグインを利用した集計などログやデータの収集にまつわるものならなんでも出来るツール。

サービス用のサーバー群
– ログ収集の設定がされたFluentd
ログ集約サーバー
ーログ集約用の設定がされたFluentd

公式
https://www.fluentd.org/
Syslog, apache/nginx logs, mobile/web app logs, sensor/iot

Fluentd is an open source data collector for unified logging layer.
Fluentd allows you to unify data collection and consumption for a better use and understanding of data.

Fluentd is an open source data collector, which lets you unify the data collection and consumption for a better use and understanding of data.

Unified Logging with JSON
Pluggable Architecture
Minimum Resources Required
Built-in Reliability

あと重要そうなところでいくと、list of Data Sources
application logs: java, ruby, python, php, perl, node.js, scala, .net
network protocols: syslog, http, tcp, udp, unix domain soket, snmp, scribe protocol, mqtt
iot devices: rasperryPi
others: docker, twitter, mysql slow query log, postgresql slow query log, gluster fs, kafka, kestrel, munin, dstat, windows event log, netflow, postfix, aws cloud watch, aws elb log, aws sqs

List of data outputs
log management: elasticsearch + kibana, splunk
dig data: hadoop DFS, treasure data, mongoDB
data archiving: file, aws s3
pub sub: aws kinesis, kafka, amqp, rabbitMQ
data warehouse: bigquery, mysql, postgresql, sqlserver, vertica, aws redshift
monitoring system: datadog, librato, ganglia, graphite, growthforecast, stasd, zabbix, macherel, riemann, sentry
Middleware: norikra, couchdb, couchbase, riak, hbase, opentsdb, zeromq
notification system: email, slack, hipchat, irc, twillo, aws sns

なるほど、give & takeか。