fluentdインストール、mongodbに保存

* RaspberryPi(DietPi:Jessie), ubuntu14.04, linuxmint17.2 にて確認。

## 参考

* [Installing Fluentd Using Ruby Gem | Fluentd](http://docs.fluentd.org/articles/install-by-gem)

## インストール(deb系)

```bash:
sudo apt-get install -y ruby-dev build-essential
sudo gem install fluentd --no-ri --no-rdoc
```

* `/usr/local/bin/fluentd` が入る。

## インストール(centos5系)

```bash:/etc/yum.repos.d/td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
```

`gpgcheck=0`が必要。

```bash:
sudo yum install -y td-agent
```

## 動作確認

```bash:待ち受け
fluentd --setup ~/fluent
fluentd -c ~/fluent/fluent.conf
```

```bash:送信
echo '{"json":"message"}' | fluent-cat debug.test
```

fluentdは`Ctrl-C`で終了


## http 8888ポートで待ち受け、ログをファイルに保存

```diff:~/fluent/fluent.conf
 <source>
   @type http
   @id http_input
   port 8888
 </source>
+<match host1>
+  type file
+  path /mnt/usb_1/fluent/host1
+</match>
```

* fluentd を再立ち上げし以下実施

```bash:ログの送信
curl http://myserver:8888/host1 -F 'json={"log":"test_dayo"}'
```

* `/mnt/usb_1/fluent/host1.20150821.b51dc6d7e2ba239e2` に以下ログが保存される。

```text:
2015-08-21T08:52:26+09:00       host1   {"log":"test_dayo"}
```

## apacheのproxypass機能で8888ポートを開放せずに保存

```diff:
 <VirtualHost *:80>
 ...
+   ProxyPass /host1 http://localhost:8888/host1
 </VirtualHost>
```

```bash:
sudo a2enmod proxy_http
sudo /etc/init.d/apache2 restart
```


```bash:ログの送信
curl http://myserver/host1 -F 'json={"log":"test_dayo"}'
```

ログが保存されていることを確認。


# mongodbに保存

* [Fluentd入門 - Qiita](http://qiita.com/ysk_1031/items/bcbf74150a8ee9f979d7)
* [MongoDB - mongo shellの操作まとめ - Qiita](http://qiita.com/rubytomato@github/items/390cdead677a851550e8)

```bash:
sudo apt-get install -y mongodb
```

```diff:/etc/mongodb.conf
- dbpath=/var/lib/mongodb
+ dbpath=/mnt/usb_1/fluent/mongodb
- logpath=/var/log/mongodb/mongodb.log
+ logpath=/mnt/usb_1/fluent/mongodb/mongodb.log

```

```bash:
mongod -f /etc/mongodb.conf
```


```bash:プラグインのインストール
sudo gem i fluent-plugin-mongo --no-ri --no-rdoc
sudo gem i bson_ext --no-ri --no-rdoc
```

```diff:~/fluent/fluent.conf
 <match host1>
-  type file
-  path /mnt/usb_1/fluent/host1
+  type mongo
+  host localhost
+  database fluent
+  collection host1
 </match>
```

```bash:レコードの確認
mongo fluent
> show collections
> db.host1.find()
```

```json:レコード
{ "_id" : ObjectId("55d6738290c3222278000001"), "log" : "test_dayo", "time" : ISODate("2015-08-21T00:40:12Z") }
{ "_id" : ObjectId("55d6738290c3222278000002"), "log" : "test_dayo", "time" : ISODate("2015-08-21T00:40:33Z") }
{ "_id" : ObjectId("55d673cb90c32222a0000001"), "log" : "test_dayo", "time" : ISODate("2015-08-21T00:40:53Z") }
{ "_id" : ObjectId("55d6744490c32222a0000002"), "log" : "test_dayo", "time" : ISODate("2015-08-21T00:43:42Z") }
```

mongodは[`sudo killall mongod`で終了](http://superuser.com/questions/875533/mongodb-not-shutting-down-via-shutdown-command)するか
[Manage mongod Processes — MongoDB Manual 3.0](http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/)を参照。


## mongodb3.0をインストールする場合

* [Install MongoDB on Debian — MongoDB Manual 3.0](http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/)
    * jessieのmongodbは2.4。[45歳以上はMongoDBを使ったシステムが使えなくなる件 - Qiita](http://qiita.com/exabugs/items/653ee0bffdc96c0b97cd)という問題もあるようなので、3.0を入れるのも良いでしょう。
    * RaspberryPi用は3.0が存在しない。

```bash:mongodb3.0をインストール
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org