td-agentを使ってMysqlにLogを格納する Part 2 [td-agentの導入]
前回に続き、
最近作っているTCPハニーポットのLogをtd-agentを使ってMysqlに格納していきます。
td-agent (fluentd)でmongodbにVPSのTCPスキャンログを取っていたのですが、なんとなくMysqlに移行して行こうと思います。
td-agent (Fluentd)って?
Fluentdの安定リリースだそうです。 knowledge.sakura.ad.jp
以下、OSはcentos 6.8です。rubygemでfluentdをインストールする方法もありますが、今回は公式からyumリポジトリを追加し、インストールしました。
td-agentのインストールと起動
$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh $ sudo service td-agent start Starting td-agent: td-agent [ OK ] $ sudo service td-agent status td-agent is running [ OK ]
td-agentのmysqlプラグインをインストール
$ sudo td-agent-gem install fluent-plugin-mysql
rubyでテストコードを作成
require 'fluent-logger' Fluent::Logger::FluentLogger.open(nil, host: 'localhost', port:12345) Fluent::Logger.post('td.honeypot.log', { TIME: "#{Time.new}", IP: "127.0.0.1", PORT: "22", COUNTRY: "TEST", DATA: "hogehoge" }
td-agentの設定ファイル変更
$ sudo vim /etc/td-agent/td-agent.conf
あらかじめMysqlでcreate tableしておきます。rubyのプログラムに合わせて設定していきます。
<source> @type forward port 12345 </source> <match td.honeypot.log> @type copy <store> @type mysql_bulk host 127.0.0.1 port 12346 username XXXX password xxxx database honeypot table log column_names time,ip,port,country,data key_names TIME,IP,PORT,COUNTRY,DATA </store> </match>
最後にtd-agentに設定ファイルをreloadさせて終わり。
$ sudo service td-agent reload