====== fluentd + elasticsearch + Kibana3 によるログ収集・可視化 ======
温度計などのセンサデータを、MA-E3xx により収集し、[[http://www.fluentd.org/|fluentd]] により
[[http://www.elasticsearch.org/|elasticsearch]] に集約し、\\
[[http://www.elasticsearch.org/overview/kibana/|Kibana3]] により可視化を行ってみます。\\
今流行りの BuzzWord, "IoT" っていう感じでしょうか。
構成イメージはこのようになります。
{{:mae3xx_tips:setup_fluentd:mae3xx_fluentd_elasticsearch_00.svg?800|}}
(画像ファイルは公式サイトより流用)
シリアルポートのデータを、TCP 変換してサーバに接続するというのは簡単だとは思いますが、\\
3G 回線が切れたときなど、通信ができないときのデータ欠損が避けらず、オススメできません。\\
シリアルポート通信はリモート側で終端し、この仕組みでデータを送信するのが今時の仕組みではないでしょうか。
\\
===== 参考 =====
==== 書籍 ====
最高の参考書が発売されました。
[[http://gihyo.jp/book/2014/978-4-7741-6983-5|{{http://image.gihyo.co.jp/assets/images/cover/2014/thumb/TH160_9784774169835.jpg|サーバ/インフラエンジニア養成読本 ログ収集〜可視化編}}]]
==== Web ====
* [[http://repeatedly.github.io/ja/2014/07/fluentd-and-log-forwarding-patterns/|Fluentdとログ収集のパターン]] (Go ahead! - Memoization for Everything)
* [[http://knowledge.sakura.ad.jp/tech/1336/|柔軟なログ収集を可能にする「fluentd」入門]] (さくらのナレッジ)
* [[http://www.iij.ad.jp/company/development/tech/activities/dc_data/|研究開発用データセンターの空調制御効率化を目指したデータ収集]] (IIJ)
* [[http://www.slideshare.net/hsugipon/fluentddc-15092795|Fluentdによる研究開発用DCのデータ収集 (slideshare)]] (上記 IIJ のプレゼン資料, Vaisala 使ってます)
* [[http://blog.zoncoen.net/blog/2013/11/11/logging-system-with-fluentd-elasticsearch-kibana3/|Fluentd + ElasticSearch + Kibana3で簡単に様々なログを可視化・解析する]] (404 Engineer Logs)
* [[http://blog.johtani.info/blog/2013/06/19/introduction-kibana3/|Kibana3というのもありまして]] (@johtaniの日記 2nd)
* [[https://www.digitalocean.com/community/tutorials/elasticsearch-fluentd-and-kibana-open-source-log-search-and-visualization|Elasticsearch, Fluentd, and Kibana: Open Source Log Search and Visualization]] (DigitalOcean)
* [[https://www.sraoss.co.jp/event_seminar/2014/20140325-fluentd.pdf|ログ収集基盤 fluentdのご紹介(PDF)]] (SRA OSS)
* [[http://www.publickey1.jp/blog/14/fluentdkubernetes.html|FluentdがKubernetesの標準ログ収集ツールとして採用]] (Publickey)
\\
===== 準備 =====
MA-E3xx 側には、fluentd をインストールする必要があります。
残念ながら、Ubuntu14.04 用の公式パッケージは用意されておりません。\\
パッケージでインストールしておかないと後々管理ができなくなりますので、
Mario FetkaさんのPPA [[https://launchpad.net/~mario-fetka/+archive/fluentd]] \\
からパッケージを作成し、インストールすることにします。
{{:mae3xx_tips:setup_fluentd:ppa_image.png|https://launchpad.net/~mario-fetka/+archive/fluentd}}
\\
パッケージ作成にあたっては、下記環境が前提となります。
* 開発環境一式 (build-essential) をインストール済みであること。((参照: [[mae3xx_devel:build_essential_setup:start]]))
* パッケージ作成用のパッケージ(devscripts)をインストール済みであること。((参照: [[mae3xx_tips:setup_softether:start]]))
* Ruby 開発環境 (ruby-dev) をインストール済みであること。
※ fluentd を組み込んだファームウェアを、"[[download_software:mae3xx:mae3xx_fluentd:start]]" に置いてあります。
\\
==== Ruby 開発環境のセットアップ ====
Ruby2.0 を使用したい(([[mae3xx_tips:test_fib_benchmark:start]] の結果の通り、Ruby1.9系より高速なためです。))ので、ruby2.0, ruby2.0-dev をインストールします。
user1@plum:~$ sudo apt-get install ruby2.0 ruby2.0-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libjs-jquery libruby1.9.1 libruby2.0 libyaml-0-2 ruby ruby1.9.1
rubygems-integration
Suggested packages:
javascript-common ri ruby-dev ruby1.9.1-examples ri1.9.1 graphviz
ruby1.9.1-dev ruby-switch bundler
The following NEW packages will be installed:
libjs-jquery libruby1.9.1 libruby2.0 libyaml-0-2 ruby ruby1.9.1 ruby2.0
ruby2.0-dev rubygems-integration
0 upgraded, 9 newly installed, 0 to remove and 2 not upgraded.
Need to get 6089 kB of archives.
After this operation, 25.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ports.ubuntu.com/ubuntu-ports/ trusty/main libyaml-0-2 armhf 0.1.4-3ubuntu3 [40.4 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports/ trusty/main libjs-jquery all 1.7.2+dfsg-2ubuntu1 [78.8 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby all 1:1.9.3.4 [5334 B]
Get:4 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby1.9.1 armhf 1.9.3.484-2ubuntu1 [35.5 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports/ trusty/main libruby1.9.1 armhf 1.9.3.484-2ubuntu1 [2458 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports/ trusty/main libruby2.0 armhf 2.0.0.484-1ubuntu2 [2599 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby2.0 armhf 2.0.0.484-1ubuntu2 [66.3 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports/ trusty/main rubygems-integration all 1.5 [5340 B]
Get:9 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby2.0-dev armhf 2.0.0.484-1ubuntu2 [800 kB]
Fetched 6089 kB in 10s (590 kB/s)
Selecting previously unselected package libyaml-0-2:armhf.
(Reading database ... 21471 files and directories currently installed.)
Preparing to unpack .../libyaml-0-2_0.1.4-3ubuntu3_armhf.deb ...
Unpacking libyaml-0-2:armhf (0.1.4-3ubuntu3) ...
Selecting previously unselected package libjs-jquery.
Preparing to unpack .../libjs-jquery_1.7.2+dfsg-2ubuntu1_all.deb ...
Unpacking libjs-jquery (1.7.2+dfsg-2ubuntu1) ...
Selecting previously unselected package ruby.
Preparing to unpack .../ruby_1%3a1.9.3.4_all.deb ...
Unpacking ruby (1:1.9.3.4) ...
Selecting previously unselected package ruby1.9.1.
Preparing to unpack .../ruby1.9.1_1.9.3.484-2ubuntu1_armhf.deb ...
Unpacking ruby1.9.1 (1.9.3.484-2ubuntu1) ...
Selecting previously unselected package libruby1.9.1.
Preparing to unpack .../libruby1.9.1_1.9.3.484-2ubuntu1_armhf.deb ...
Unpacking libruby1.9.1 (1.9.3.484-2ubuntu1) ...
Selecting previously unselected package libruby2.0:armhf.
Preparing to unpack .../libruby2.0_2.0.0.484-1ubuntu2_armhf.deb ...
Unpacking libruby2.0:armhf (2.0.0.484-1ubuntu2) ...
Selecting previously unselected package ruby2.0.
Preparing to unpack .../ruby2.0_2.0.0.484-1ubuntu2_armhf.deb ...
Unpacking ruby2.0 (2.0.0.484-1ubuntu2) ...
Selecting previously unselected package rubygems-integration.
Preparing to unpack .../rubygems-integration_1.5_all.deb ...
Unpacking rubygems-integration (1.5) ...
Selecting previously unselected package ruby2.0-dev:armhf.
Preparing to unpack .../ruby2.0-dev_2.0.0.484-1ubuntu2_armhf.deb ...
Unpacking ruby2.0-dev:armhf (2.0.0.484-1ubuntu2) ...
Setting up libyaml-0-2:armhf (0.1.4-3ubuntu3) ...
Setting up libjs-jquery (1.7.2+dfsg-2ubuntu1) ...
Setting up ruby2.0-dev:armhf (2.0.0.484-1ubuntu2) ...
Setting up ruby (1:1.9.3.4) ...
Setting up ruby1.9.1 (1.9.3.484-2ubuntu1) ...
Setting up libruby1.9.1 (1.9.3.484-2ubuntu1) ...
Setting up rubygems-integration (1.5) ...
Setting up ruby2.0 (2.0.0.484-1ubuntu2) ...
Setting up libruby2.0:armhf (2.0.0.484-1ubuntu2) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB
Total disk space freed by localepurge: 0 KiB
user1@plum:~$
\\
上のとおり、ruby1.9.1 も一緒にインストールされてしまいます。
user1@plum:~$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [arm-linux-eabihf]
user1@plum:~$
\\
単に "ruby" として実行すると、Ruby1.9 系がデフォルトとなっているため、Ruby2.0 系をデフォルトにする設定をします。\\
参考: [[http://mhag.hatenablog.com/entry/2014/07/04/151415|´・ω・)<ときどき書くよ - Ubuntu 14.04 LTS に Fluentd をインストールする]]
user1@plum:~$ sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 0
update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in auto mode
user1@plum:~$ sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.0 1
update-alternatives: using /usr/bin/ruby2.0 to provide /usr/bin/ruby (ruby) in auto mode
user1@plum:~$ ruby -v
ruby 2.0.0p384 (2014-01-12) [arm-linux-gnueabihf]
user1@plum:~$
\\
Gem も同様に 2.0 系をデフォルトに変更します。
user1@plum:~$ sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.9.1 0
update-alternatives: using /usr/bin/gem1.9.1 to provide /usr/bin/gem (gem) in auto mode
user1@plum:~$ sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem2.0 1
update-alternatives: using /usr/bin/gem2.0 to provide /usr/bin/gem (gem) in auto mode
user1@plum:~$ gem -v
2.0.14
user1@plum:~$
\\
===== パッケージの作成 =====
==== PPA の追加 ====
PPA を追加します。
user1@plum:~$ sudo add-apt-repository ppa:mario-fetka/fluentd
[sudo] password for user1:
Fluentd is an open source data collector designed for processing data streams.
More info: https://launchpad.net/~mario-fetka/+archive/ubuntu/fluentd
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmpavrdryx3/secring.gpg' created
gpg: keyring `/tmp/tmpavrdryx3/pubring.gpg' created
gpg: requesting key F1AA2FAE from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpavrdryx3/trustdb.gpg: trustdb created
gpg: key F1AA2FAE: public key "Launchpad PPA for Mario Fetka" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
user1@plum:~$
\\
バイナリパッケージが準備されていないものがありますので、PPA のソースパッケージの項を有効にします。
user1@plum:~$ sudo nano -w /etc/apt/sources.list.d/mario-fetka-fluentd-trusty.list
deb http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu trusty main
# deb-src http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu trusty main <--
"deb-src" の前のコメントを外して保存します。
\\
追加された PPA のパッケージ情報を取得するため、apt-get update によりパッケージ情報を更新します。
user1@plum:~$ sudo apt-get update
〜〜〜 略 〜〜〜
Get:1 http://ppa.launchpad.net trusty/main Sources [12.6 kB]
〜〜〜 略 〜〜〜
Fetched 12.6 kB in 7s (1590 B/s)
Reading package lists... Done
user1@plum:~$
\\
==== パッケージの確認 ====
"fluentd" 関連のパッケージを検索してみます。
user1@plum:~$ sudo apt-cache search fluentd
ruby-fluentd - Fluentd event collector
ruby-fluent-mixin-config-placeholders - Configuration syntax extension mixin for fluentd plugin
ruby-fluent-mixin-plaintextformatter - Text formatter mixin module to create fluentd plugin
ruby-fluent-mixin-rewrite-tag-name - Fluentd mixin plugin to provides placeholder function for rewriting tag for your any plugins as like fluent-plugin-rewrite-tag-filter. It will let you get easy to implement tag placeholder for your own plugins.
ruby-fluent-plugin-config-expander - Fluentd plugin to serve some DSL directives in configuration
ruby-fluent-plugin-event-tail - fluentd input plugin for reading [tag, time, record] messages from a file
ruby-fluent-plugin-file-sprintf - sprintf output file plugin for Fluentd.
ruby-fluent-plugin-flatten - Fluentd plugin to extract values for nested key paths and re-emit them as flat tag/record pairs.
ruby-fluent-plugin-geoip - Fluentd Output plugin to add information about geographical location of IP addresses with Maxmind GeoIP databases.
ruby-fluent-plugin-glusterfs - Fluentd plugin for GlusterFS
ruby-fluent-plugin-grep - fluentd plugin to grep messages
ruby-fluent-plugin-in-udp-event - Event driven udp input plugin for fluentd
ruby-fluent-plugin-record-reformer - Fluentd plugin to add or replace fields of a event record
ruby-fluent-plugin-reemit - Fluentd plugin to re-emit messages avoiding infinity match loop
ruby-fluent-plugin-rewrite - Fluentd plugin to rewrite tags/values along with pattern matching and re-emit them.
ruby-fluent-plugin-rewrite-tag-filter - Fluentd Output filter plugin. It has designed to rewrite tag like mod_rewrite. Re-emmit a record with rewrited tag when a value matches/unmatches with the regular expression. Also you can change a tag from apache log by domain, status-code(ex. 500 error), user-agent, request-uri, regex-backreference and so on with regular expression.
user1@plum:~$
\\
==== パッケージのビルド ====
Fluentd 本体は "ruby-fluentd" ですが、下記パッケージに依存しています。
* ruby-iobuffer
* ruby-cool.io
両方共 ARM 用バイナリパッケージが準備されていませんので、ソースパッケージをダウンロードしてビルドを行います。
\\
=== ruby-iobuffer のビルド ===
user1@plum:~$ sudo apt-get source ruby-iobuffer
Reading package lists... Done
Building dependency tree
Reading state information... Done
Need to get 9663 B of source archives.
Get:1 http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu/ trusty/main ruby-iobuffer 1.1.2-2ppa1~trusty1 (tar) [6394 B]
Get:2 http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu/ trusty/main ruby-iobuffer 1.1.2-2ppa1~trusty1 (diff) [1949 B]
Get:3 http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu/ trusty/main ruby-iobuffer 1.1.2-2ppa1~trusty1 (dsc) [1320 B]
Fetched 9663 B in 1s (8186 B/s)
gpgv: Signature made Fri Apr 18 19:24:59 2014 JST using DSA key ID 0F0C7602
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./ruby-iobuffer_1.1.2-2ppa1~trusty1.dsc
dpkg-source: info: extracting ruby-iobuffer in ruby-iobuffer-1.1.2
dpkg-source: info: unpacking ruby-iobuffer_1.1.2.orig.tar.gz
dpkg-source: info: unpacking ruby-iobuffer_1.1.2-2ppa1~trusty1.debian.tar.gz
user1@plum:~$
user1@plum:~$ cd ruby-iobuffer-1.1.2
user1@plum:~/ruby-iobuffer-1.1.2$ sudo debuild -us -uc -b
dpkg-buildpackage -rfakeroot -D -us -uc -b
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: source package ruby-iobuffer
dpkg-buildpackage: source version 1.1.2-2ppa1~trusty1
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by Mario Fetka
dpkg-source --before-build ruby-iobuffer-1.1.2
dpkg-buildpackage: host architecture armhf
dpkg-source: warning: unknown information field 'Dm-Upload-Allowed' in input data in general section of control info file
dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 7.0.50~) gem2deb (>= 0.3.0~) rake rake-compiler ruby-rspec
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
debuild: fatal error at line 1364:
dpkg-buildpackage -rfakeroot -D -us -uc -b failed
user1@plum:~/ruby-iobuffer-1.1.2$
\\
上の通り、いくつかのパッケージがビルドには必要となります。提示されたパッケージをインストールします。\\
"fakeroot" も必要となりますのでインストールしておきます。
user1@plum:~/ruby-iobuffer-1.1.2$ sudo apt-get install debhelper gem2deb rake rake-compiler ruby-rspec fakeroot
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
bsdmainutils dh-apparmor gettext gettext-base groff-base intltool-debian
libasprintf0c2 libcroco3 libfakeroot libunistring0 man-db po-debconf
ruby-diff-lcs ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks
ruby1.9.1-dev
Suggested packages:
wamerican wordlist whois vacation dh-make apparmor-easyprof gettext-doc
groff www-browser libmail-box-perl
Recommended packages:
libasprintf-dev libgettextpo-dev libmail-sendmail-perl
The following NEW packages will be installed:
bsdmainutils debhelper dh-apparmor fakeroot gem2deb gettext gettext-base
groff-base intltool-debian libasprintf0c2 libcroco3 libfakeroot
libunistring0 man-db po-debconf rake rake-compiler ruby-diff-lcs ruby-rspec
ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks ruby1.9.1-dev
0 upgraded, 23 newly installed, 0 to remove and 2 not upgraded.
Need to get 5179 kB of archives.
After this operation, 16.4 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main libasprintf0c2 armhf 0.18.3.1-1ubuntu3 [6488 B]
Get:2 http://ports.ubuntu.com/ubuntu-ports/ trusty/main groff-base armhf 1.22.2-5 [934 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports/ trusty/main bsdmainutils armhf 9.0.5ubuntu1 [195 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports/ trusty/main man-db armhf 2.6.7.1-1 [832 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports/ trusty/main libcroco3 armhf 0.6.8-2ubuntu1 [69.1 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports/ trusty/main libunistring0 armhf 0.9.3-5ubuntu3 [251 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main gettext-base armhf 0.18.3.1-1ubuntu3 [45.8 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main gettext armhf 0.18.3.1-1ubuntu3 [779 kB]
Get:9 http://ports.ubuntu.com/ubuntu-ports/ trusty/main intltool-debian all 0.35.0+20060710.1 [31.6 kB]
Get:10 http://ports.ubuntu.com/ubuntu-ports/ trusty/main po-debconf all 1.0.16+nmu2ubuntu1 [210 kB]
Get:11 http://ports.ubuntu.com/ubuntu-ports/ trusty/main dh-apparmor all 2.8.95~2430-0ubuntu5 [11.3 kB]
Get:12 http://ports.ubuntu.com/ubuntu-ports/ trusty/main debhelper all 9.20131227ubuntu1 [604 kB]
Get:13 http://ports.ubuntu.com/ubuntu-ports/ trusty/main libfakeroot armhf 1.20-3ubuntu2 [21.1 kB]
Get:14 http://ports.ubuntu.com/ubuntu-ports/ trusty/main fakeroot armhf 1.20-3ubuntu2 [55.2 kB]
Get:15 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby1.9.1-dev armhf 1.9.3.484-2ubuntu1 [784 kB]
Get:16 http://ports.ubuntu.com/ubuntu-ports/ trusty/main gem2deb all 0.6.1 [41.8 kB]
Get:17 http://ports.ubuntu.com/ubuntu-ports/ trusty/main rake all 10.0.4-1 [49.0 kB]
Get:18 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe rake-compiler all 0.9.2-1 [17.4 kB]
Get:19 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby-diff-lcs all 1.2.4-1 [26.9 kB]
Get:20 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby-rspec-expectations all 2.14.2-1 [57.9 kB]
Get:21 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby-rspec-mocks all 2.14.3-1 [52.7 kB]
Get:22 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby-rspec-core all 2.14.7-2 [97.0 kB]
Get:23 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby-rspec all 2.14.1-1 [4996 B]
Fetched 5179 kB in 14s (353 kB/s)
Preconfiguring packages ...
Selecting previously unselected package libasprintf0c2:armhf.
(Reading database ... 23420 files and directories currently installed.)
Preparing to unpack .../libasprintf0c2_0.18.3.1-1ubuntu3_armhf.deb ...
Unpacking libasprintf0c2:armhf (0.18.3.1-1ubuntu3) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../groff-base_1.22.2-5_armhf.deb ...
Unpacking groff-base (1.22.2-5) ...
Selecting previously unselected package bsdmainutils.
Preparing to unpack .../bsdmainutils_9.0.5ubuntu1_armhf.deb ...
Unpacking bsdmainutils (9.0.5ubuntu1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../man-db_2.6.7.1-1_armhf.deb ...
Unpacking man-db (2.6.7.1-1) ...
Selecting previously unselected package libcroco3:armhf.
Preparing to unpack .../libcroco3_0.6.8-2ubuntu1_armhf.deb ...
Unpacking libcroco3:armhf (0.6.8-2ubuntu1) ...
Selecting previously unselected package libunistring0:armhf.
Preparing to unpack .../libunistring0_0.9.3-5ubuntu3_armhf.deb ...
Unpacking libunistring0:armhf (0.9.3-5ubuntu3) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../gettext-base_0.18.3.1-1ubuntu3_armhf.deb ...
Unpacking gettext-base (0.18.3.1-1ubuntu3) ...
Selecting previously unselected package gettext.
Preparing to unpack .../gettext_0.18.3.1-1ubuntu3_armhf.deb ...
Unpacking gettext (0.18.3.1-1ubuntu3) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../intltool-debian_0.35.0+20060710.1_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.1) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../po-debconf_1.0.16+nmu2ubuntu1_all.deb ...
Unpacking po-debconf (1.0.16+nmu2ubuntu1) ...
Selecting previously unselected package dh-apparmor.
Preparing to unpack .../dh-apparmor_2.8.95~2430-0ubuntu5_all.deb ...
Unpacking dh-apparmor (2.8.95~2430-0ubuntu5) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../debhelper_9.20131227ubuntu1_all.deb ...
Unpacking debhelper (9.20131227ubuntu1) ...
Selecting previously unselected package libfakeroot:armhf.
Preparing to unpack .../libfakeroot_1.20-3ubuntu2_armhf.deb ...
Unpacking libfakeroot:armhf (1.20-3ubuntu2) ...
Selecting previously unselected package fakeroot.
Preparing to unpack .../fakeroot_1.20-3ubuntu2_armhf.deb ...
Unpacking fakeroot (1.20-3ubuntu2) ...
Selecting previously unselected package ruby1.9.1-dev.
Preparing to unpack .../ruby1.9.1-dev_1.9.3.484-2ubuntu1_armhf.deb ...
Unpacking ruby1.9.1-dev (1.9.3.484-2ubuntu1) ...
Selecting previously unselected package gem2deb.
Preparing to unpack .../archives/gem2deb_0.6.1_all.deb ...
Unpacking gem2deb (0.6.1) ...
Selecting previously unselected package rake.
Preparing to unpack .../archives/rake_10.0.4-1_all.deb ...
Unpacking rake (10.0.4-1) ...
Selecting previously unselected package rake-compiler.
Preparing to unpack .../rake-compiler_0.9.2-1_all.deb ...
Unpacking rake-compiler (0.9.2-1) ...
Selecting previously unselected package ruby-diff-lcs.
Preparing to unpack .../ruby-diff-lcs_1.2.4-1_all.deb ...
Unpacking ruby-diff-lcs (1.2.4-1) ...
Selecting previously unselected package ruby-rspec-expectations.
Preparing to unpack .../ruby-rspec-expectations_2.14.2-1_all.deb ...
Unpacking ruby-rspec-expectations (2.14.2-1) ...
Selecting previously unselected package ruby-rspec-mocks.
Preparing to unpack .../ruby-rspec-mocks_2.14.3-1_all.deb ...
Unpacking ruby-rspec-mocks (2.14.3-1) ...
Selecting previously unselected package ruby-rspec-core.
Preparing to unpack .../ruby-rspec-core_2.14.7-2_all.deb ...
Unpacking ruby-rspec-core (2.14.7-2) ...
Selecting previously unselected package ruby-rspec.
Preparing to unpack .../ruby-rspec_2.14.1-1_all.deb ...
Unpacking ruby-rspec (2.14.1-1) ...
Processing triggers for mime-support (3.54ubuntu1) ...
Setting up libasprintf0c2:armhf (0.18.3.1-1ubuntu3) ...
Setting up groff-base (1.22.2-5) ...
Setting up bsdmainutils (9.0.5ubuntu1) ...
update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/write.1.gz because associated file /usr/share/man/man1/bsd-write.1.gz (of link group write) doesn't exist
update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/from.1.gz because associated file /usr/share/man/man1/bsd-from.1.gz (of link group from) doesn't exist
Setting up man-db (2.6.7.1-1) ...
Building database of manual pages ...
Setting up libcroco3:armhf (0.6.8-2ubuntu1) ...
Setting up libunistring0:armhf (0.9.3-5ubuntu3) ...
Setting up gettext-base (0.18.3.1-1ubuntu3) ...
Setting up gettext (0.18.3.1-1ubuntu3) ...
Setting up intltool-debian (0.35.0+20060710.1) ...
Setting up po-debconf (1.0.16+nmu2ubuntu1) ...
Setting up dh-apparmor (2.8.95~2430-0ubuntu5) ...
Setting up debhelper (9.20131227ubuntu1) ...
Setting up libfakeroot:armhf (1.20-3ubuntu2) ...
Setting up fakeroot (1.20-3ubuntu2) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/fakeroot.1.gz because associated file /usr/share/man/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/faked.1.gz because associated file /usr/share/man/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/es/man1/fakeroot.1.gz because associated file /usr/share/man/es/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/es/man1/faked.1.gz because associated file /usr/share/man/es/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/fakeroot.1.gz because associated file /usr/share/man/fr/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/faked.1.gz because associated file /usr/share/man/fr/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/sv/man1/fakeroot.1.gz because associated file /usr/share/man/sv/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/sv/man1/faked.1.gz because associated file /usr/share/man/sv/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
Setting up ruby1.9.1-dev (1.9.3.484-2ubuntu1) ...
Setting up gem2deb (0.6.1) ...
Setting up rake (10.0.4-1) ...
Setting up rake-compiler (0.9.2-1) ...
Setting up ruby-diff-lcs (1.2.4-1) ...
Setting up ruby-rspec-expectations (2.14.2-1) ...
Setting up ruby-rspec-mocks (2.14.3-1) ...
Setting up ruby-rspec-core (2.14.7-2) ...
Setting up ruby-rspec (2.14.1-1) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB
Total disk space freed by localepurge: 0 KiB
user1@plum:~/ruby-iobuffer-1.1.2$
\\
必要なパッケージを追加しましたので、再び debuild コマンドを実行します。
user1@plum:~/ruby-iobuffer-1.1.2$ sudo debuild -us -uc -b
dpkg-buildpackage -rfakeroot -D -us -uc -b
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: source package ruby-iobuffer
dpkg-buildpackage: source version 1.1.2-2ppa1~trusty1
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by Mario Fetka
dpkg-source --before-build ruby-iobuffer-1.1.2
dpkg-buildpackage: host architecture armhf
dpkg-source: warning: unknown information field 'Dm-Upload-Allowed' in input data in general section of control info file
fakeroot debian/rules clean
dh clean --buildsystem=ruby --with ruby
dh_testdir -O--buildsystem=ruby
dh_auto_clean -O--buildsystem=ruby
/usr/lib/ruby/vendor_ruby/gem2deb.rb:17: warning: setting Encoding.default_external
〜〜〜 略 〜〜〜
dpkg-gencontrol: warning: unknown information field 'Dm-Upload-Allowed' in input data in general section of control info file
dpkg-gencontrol: warning: File::FcntlLock not available; using flock which is not NFS-safe
dpkg-gencontrol: warning: package ruby-iobuffer: unused substitution variable ${misc:Pre-Depends}
dh_md5sums -O--buildsystem=ruby
dh_builddeb -O--buildsystem=ruby
dpkg-deb: warning: 'debian/ruby-iobuffer/DEBIAN/control' contains user-defined field 'Ruby-Versions'
dpkg-deb: warning: ignoring 1 warning about the control file(s)
dpkg-deb: building package `ruby-iobuffer' in `../ruby-iobuffer_1.1.2-2ppa1~trusty1_armhf.deb'.
dpkg-genchanges -b >../ruby-iobuffer_1.1.2-2ppa1~trusty1_armhf.changes
dpkg-genchanges: warning: unknown information field 'Dm-Upload-Allowed' in input data in general section of control info file
dpkg-genchanges: binary-only upload - not including any source code
dpkg-source --after-build ruby-iobuffer-1.1.2
dpkg-source: warning: unknown information field 'Dm-Upload-Allowed' in input data in general section of control info file
dpkg-buildpackage: binary only upload (no source included)
user1@plum:~/ruby-iobuffer-1.1.2$
\\
パッケージが作成されました。
user1@plum:~/ruby-iobuffer-1.1.2$ cd ..
user1@plum:~$ ls -l ruby-iobuffer*deb
-rw-r--r-- 1 root root 7634 Jul 25 14:13 ruby-iobuffer_1.1.2-2ppa1~trusty1_armhf.deb
user1@plum:~$
\\
ビルドされたパッケージをインストールしておきます。
user1@plum:~$ sudo dpkg -i ruby-iobuffer_1.1.2-2ppa1~trusty1_armhf.deb
Selecting previously unselected package ruby-iobuffer.
(Reading database ... 25155 files and directories currently installed.)
Preparing to unpack ruby-iobuffer_1.1.2-2ppa1~trusty1_armhf.deb ...
Unpacking ruby-iobuffer (1.1.2-2ppa1~trusty1) ...
Setting up ruby-iobuffer (1.1.2-2ppa1~trusty1) ...
user1@plum:~$
\\
=== ruby-cool.io のビルド ===
"ruby-iobuffer" と同様にして、ビルドを行います。
user1@plum:~$ sudo apt-get source ruby-cool.io
Reading package lists... Done
Building dependency tree
Reading state information... Done
Need to get 98.1 kB of source archives.
Get:1 http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu/ trusty/main ruby-cool.io 1.1.1-2ppa1~trusty1 (tar) [94.6 kB]
Get:2 http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu/ trusty/main ruby-cool.io 1.1.1-2ppa1~trusty1 (diff) [2214 B]
Get:3 http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu/ trusty/main ruby-cool.io 1.1.1-2ppa1~trusty1 (dsc) [1317 B]
Fetched 98.1 kB in 1s (49.9 kB/s)
gpgv: Signature made Fri Apr 18 19:27:58 2014 JST using DSA key ID 0F0C7602
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./ruby-cool.io_1.1.1-2ppa1~trusty1.dsc
dpkg-source: info: extracting ruby-cool.io in ruby-cool.io-1.1.1
dpkg-source: info: unpacking ruby-cool.io_1.1.1.orig.tar.gz
dpkg-source: info: unpacking ruby-cool.io_1.1.1-2ppa1~trusty1.debian.tar.gz
user1@plum:~$
user1@plum:~$ cd ruby-cool.io-1.1.1/
user1@plum:~/ruby-cool.io-1.1.1$ sudo debuild -us -uc -b
dpkg-buildpackage -rfakeroot -D -us -uc -b
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: source package ruby-cool.io
dpkg-buildpackage: source version 1.1.1-2ppa1~trusty1
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by Mario Fetka
dpkg-source --before-build ruby-cool.io-1.1.1
dpkg-buildpackage: host architecture armhf
dpkg-source: warning: unknown information field 'Dm-Upload-Allowed' in input data in general section of control info file
fakeroot debian/rules clean
dh clean --buildsystem=ruby --with ruby
dh_testdir -O--buildsystem=ruby
〜〜〜 略 〜〜〜
dpkg-deb: warning: 'debian/ruby-cool.io/DEBIAN/control' contains user-defined field 'Ruby-Versions'
dpkg-deb: warning: ignoring 1 warning about the control file(s)
dpkg-deb: building package `ruby-cool.io' in `../ruby-cool.io_1.1.1-2ppa1~trusty1_armhf.deb'.
dpkg-genchanges -b >../ruby-cool.io_1.1.1-2ppa1~trusty1_armhf.changes
dpkg-genchanges: warning: unknown information field 'Dm-Upload-Allowed' in input data in general section of control info file
dpkg-genchanges: binary-only upload - not including any source code
dpkg-source --after-build ruby-cool.io-1.1.1
dpkg-source: warning: unknown information field 'Dm-Upload-Allowed' in input data in general section of control info file
dpkg-buildpackage: binary only upload (no source included)
user1@plum:~/ruby-cool.io-1.1.1$
\\
こちらもパッケージが作成されました。
user1@plum:~/ruby-cool.io-1.1.1$ cd ..
user1@plum:~$ ls -l ruby-cool.io*deb
-rw-r--r-- 1 root root 47100 Jul 25 14:37 ruby-cool.io_1.1.1-2ppa1~trusty1_armhf.deb
user1@plum:~$
\\
同様に、ビルドされたパッケージをインストールしておきます。
user1@plum:~$ sudo dpkg -i ruby-cool.io_1.1.1-2ppa1~trusty1_armhf.deb
Selecting previously unselected package ruby-cool.io.
(Reading database ... 25167 files and directories currently installed.)
Preparing to unpack ruby-cool.io_1.1.1-2ppa1~trusty1_armhf.deb ...
Unpacking ruby-cool.io (1.1.1-2ppa1~trusty1) ...
Setting up ruby-cool.io (1.1.1-2ppa1~trusty1) ...
user1@plum:~$
\\
===== ruby-fluentd のインストール =====
以上で、"ruby-fluentd" が依存する(バイナリパッケージが用意されていない)パッケージのビルド・インストールができましたので、\\
ruby-fluentd をインストールします。
user1@plum:~$ sudo apt-get install ruby-fluentd
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libhttp-parser2.1 libjemalloc1 ruby-http-parser.rb ruby-json ruby-msgpack
ruby-sigdump ruby-yajl
Suggested packages:
ruby-http-parser.rb-doc
The following NEW packages will be installed:
libhttp-parser2.1 libjemalloc1 ruby-fluentd ruby-http-parser.rb ruby-json
ruby-msgpack ruby-sigdump ruby-yajl
0 upgraded, 8 newly installed, 0 to remove and 2 not upgraded.
Need to get 254 kB of archives.
After this operation, 1533 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu/ trusty/main ruby-sigdump all 0.2.2-2ppa1~trusty1 [3784 B]
Get:2 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe libhttp-parser2.1 armhf 2.1-2 [17.3 kB]
Get:3 http://ppa.launchpad.net/mario-fetka/fluentd/ubuntu/ trusty/main ruby-fluentd all 0.10.45-2ppa1~trusty1 [50.9 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe libjemalloc1 armhf 3.5.1-2 [70.6 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe ruby-msgpack armhf 0.5.5-2 [25.6 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ruby-json armhf 1.8.0-1build1 [44.0 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe ruby-yajl armhf 1.2.0-1 [32.0 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe ruby-http-parser.rb armhf 0.6.0~beta.2-1 [10.1 kB]
Fetched 254 kB in 3s (83.4 kB/s)
Selecting previously unselected package libhttp-parser2.1:armhf.
(Reading database ... 25193 files and directories currently installed.)
Preparing to unpack .../libhttp-parser2.1_2.1-2_armhf.deb ...
Unpacking libhttp-parser2.1:armhf (2.1-2) ...
Selecting previously unselected package libjemalloc1.
Preparing to unpack .../libjemalloc1_3.5.1-2_armhf.deb ...
Unpacking libjemalloc1 (3.5.1-2) ...
Selecting previously unselected package ruby-msgpack.
Preparing to unpack .../ruby-msgpack_0.5.5-2_armhf.deb ...
Unpacking ruby-msgpack (0.5.5-2) ...
Selecting previously unselected package ruby-json.
Preparing to unpack .../ruby-json_1.8.0-1build1_armhf.deb ...
Unpacking ruby-json (1.8.0-1build1) ...
Selecting previously unselected package ruby-yajl.
Preparing to unpack .../ruby-yajl_1.2.0-1_armhf.deb ...
Unpacking ruby-yajl (1.2.0-1) ...
Selecting previously unselected package ruby-http-parser.rb.
Preparing to unpack .../ruby-http-parser.rb_0.6.0~beta.2-1_armhf.deb ...
Unpacking ruby-http-parser.rb (0.6.0~beta.2-1) ...
Selecting previously unselected package ruby-sigdump.
Preparing to unpack .../ruby-sigdump_0.2.2-2ppa1~trusty1_all.deb ...
Unpacking ruby-sigdump (0.2.2-2ppa1~trusty1) ...
Selecting previously unselected package ruby-fluentd.
Preparing to unpack .../ruby-fluentd_0.10.45-2ppa1~trusty1_all.deb ...
Unpacking ruby-fluentd (0.10.45-2ppa1~trusty1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Setting up libhttp-parser2.1:armhf (2.1-2) ...
Setting up libjemalloc1 (3.5.1-2) ...
Setting up ruby-msgpack (0.5.5-2) ...
Setting up ruby-json (1.8.0-1build1) ...
Setting up ruby-yajl (1.2.0-1) ...
Setting up ruby-http-parser.rb (0.6.0~beta.2-1) ...
Setting up ruby-sigdump (0.2.2-2ppa1~trusty1) ...
Setting up ruby-fluentd (0.10.45-2ppa1~trusty1) ...
Creating system group: fluent
Adding group `fluent' (GID 112) ...
Done.
Creating user fluent in group fluent
* Starting fluent fluent 2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:214:rescue in main_process: unexpected error error="No such file or directory - /etc/fluent/fluent.conf"
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:276:in `read'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:276:in `read_config'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:88:in `block in start'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:198:in `call'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:198:in `main_process'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:173:in `block in supervise'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:172:in `fork'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:172:in `supervise'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/supervisor.rb:87:in `start'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/vendor_ruby/fluent/command/fluentd.rb:168:in `'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
2014-07-25 14:43:38 +0900 [error]: fluent/supervisor.rb:172:fork: /usr/bin/fluentd:6:in `'
[fail]
Processing triggers for libc-bin (2.19-0ubuntu6) ...
Processing triggers for ureadahead (0.100.0-16) ...
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB
Total disk space freed by localepurge: 0 KiB
user1@plum:~$
\\
セットアップ後、自動で起動処理が行われてしまいました。\\
設定ファイル /etc/fluent/fluent.conf が無いので起動は失敗したようです。
\\
==== 動作テスト ====
簡単な設定ファイルを作り、基本的な動作確認をしてみます。
user1@plum:~$ sudo mkdir /etc/fluent
user1@plum:~$ sudo nano -w /etc/fluent/fluent.conf
type file
path /tmp/fluent_debug.txt
標準入力から入ってきたものの中で、タグが "debug.*" にマッチしたものを /tmp/fluent_debug.txt へ出力する設定です。
\\
fluentd を起動します。
user1@plum:~$ sudo service ruby-fluentd start
* Starting fluent fluent [ OK ]
user1@plum:~$
\\
単純なデータを入力してみます。タグは "debug.test" にします。
user1@plum:~$ echo '{"key" : "value"}' | fluent-cat debug.test
\\
出力されたか確認してみます。
user1@plum:~$ ls -l /tmp/fluent_debug*
-rw-r--r-- 1 fluent fluent 109 Jul 25 15:09 /tmp/fluent_debug.txt.20140725.b4fefe4bdbaa9b437
user1@plum:~$ cat /tmp/fluent_debug.txt.20140725.b4fefe4bdbaa9b437
2014-07-25T15:09:41+09:00 debug.test {"key":"value"}
処理が行われたのが確認できました。
\\
===== サーバの設定 =====
==== コンテナの作成 ====
クライアント(MA-E3xx)側の Fluentd はとりあえずセットアップできましたので、データを蓄積・可視化するサーバ側もセットアップします。\\
今回は、サーバには LXC((docker による方法も、のちほど試そうと考えています)) によるコンテナ型仮想環境を準備します。\\
Fluentd の公式パッケージがサポートしているのが Ubuntu 12.04LTS (Precise) なので、Ubuntu 12.04LTS の環境を作成します。\\
参照: [[http://docs.fluentd.org/articles/install-by-deb]]
user1@ubuntu:~$ sudo lxc-create -t ubuntu -n precise64 -- -r precise
Checking cache download in /var/cache/lxc/precise/rootfs-amd64 ...
Installing packages in template: ssh,vim,language-pack-en,language-pack-ja
Downloading ubuntu precise minimal ...
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
I: Valid Release signature (key id 630239CC130E1A7FD81A27B140976EAF437D05B5)
〜〜〜 略 〜〜〜
Generating locales...
en_US.UTF-8... done
Generation complete.
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
Current default time zone: 'Asia/Tokyo'
Local time is now: Fri Aug 1 16:20:33 JST 2014.
Universal Time is now: Fri Aug 1 07:20:33 UTC 2014.
##
# The default user is 'ubuntu' with password 'ubuntu'!
# Use the 'sudo' command to run tasks as root in the container.
##
user1@ubuntu:~$
\\
==== コンテナの起動 / 設定 ====
作成したコンテナを起動します。\\
まだネットワークの設定を行っていませんので、フォアグランドで起動させます。
user1@ubuntu:~$ sudo lxc-start -n precise64
Ubuntu 12.04.4 LTS precise64 console
precise64 login: <4>init: setvtrgb main process (272) terminated with status 1
Ubuntu 12.04.4 LTS precise64 console
precise64 login: ubuntu
Password:
Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.13.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com/
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
ubuntu@precise64:~$
ログインできました。
\\
使用する環境に合わせて、
* ネットワーク設定
* ユーザアカウント追加
などを行っておきます。ubuntu ユーザも削除しておくほうがよいと思います。
\\
設定が完了したら一旦コンテナを終了し、再度 -d オプション (daemonize the container) 付きで起動します。
user1@ubuntu:~$ sudo lxc-start -n precise64 -d
\\
今度は SSH でログインします。
user1@ubuntu:~$ ssh -l user1 192.168.103.192
user1@192.168.103.192's password:
Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.13.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Fri Aug 1 16:31:33 2014
user1@precise64:~$
\\
==== td-agent のセットアップ ====
[[http://docs.fluentd.org/articles/install-by-deb|公式サイトの説明]] のとおり作業します。\\
※ curl は初期状態ではインストールされていないため、apt-get でインストールが必要です。
user1@precise64:~$ curl -L http://toolbelt.treasuredata.com/sh/install-ubuntu-precise.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 555 100 555 0 0 3037 0 --:--:-- --:--:-- --:--:-- 92500
This script requires superuser access to install apt packages.
You will be prompted for your password by sudo.
[sudo] password for user1:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 934 100 934 0 0 4330 0 --:--:-- --:--:-- --:--:-- 130k
OK
Get:1 http://packages.treasuredata.com precise Release.gpg [198 B]
Get:2 http://packages.treasuredata.com precise Release [2,377 B]
Get:3 http://packages.treasuredata.com precise/contrib amd64 Packages [447 B]
Get:4 http://packages.treasuredata.com precise/contrib i386 Packages [451 B]
Ign http://packages.treasuredata.com precise/contrib TranslationIndex
Hit http://archive.ubuntu.com precise Release.gpg
Hit http://archive.ubuntu.com precise-updates Release.gpg
Hit http://security.ubuntu.com precise-security Release.gpg
Hit http://archive.ubuntu.com precise Release
Hit http://security.ubuntu.com precise-security Release
Hit http://archive.ubuntu.com precise-updates Release
Hit http://security.ubuntu.com precise-security/main amd64 Packages
Hit http://archive.ubuntu.com precise/main amd64 Packages
Hit http://archive.ubuntu.com precise/restricted amd64 Packages
Hit http://archive.ubuntu.com precise/universe amd64 Packages
Hit http://archive.ubuntu.com precise/multiverse amd64 Packages
Hit http://archive.ubuntu.com precise/main i386 Packages
Hit http://archive.ubuntu.com precise/restricted i386 Packages
Hit http://archive.ubuntu.com precise/universe i386 Packages
Hit http://archive.ubuntu.com precise/multiverse i386 Packages
Hit http://archive.ubuntu.com precise/main TranslationIndex
Hit http://archive.ubuntu.com precise/multiverse TranslationIndex
Hit http://security.ubuntu.com precise-security/restricted amd64 Packages
Hit http://security.ubuntu.com precise-security/universe amd64 Packages
Hit http://security.ubuntu.com precise-security/multiverse amd64 Packages
Hit http://security.ubuntu.com precise-security/main i386 Packages
Hit http://security.ubuntu.com precise-security/restricted i386 Packages
Hit http://security.ubuntu.com precise-security/universe i386 Packages
Hit http://security.ubuntu.com precise-security/multiverse i386 Packages
Hit http://security.ubuntu.com precise-security/main TranslationIndex
Hit http://security.ubuntu.com precise-security/multiverse TranslationIndex
Hit http://security.ubuntu.com precise-security/restricted TranslationIndex
Hit http://archive.ubuntu.com precise/restricted TranslationIndex
Hit http://archive.ubuntu.com precise/universe TranslationIndex
Hit http://archive.ubuntu.com precise-updates/main amd64 Packages
Hit http://archive.ubuntu.com precise-updates/restricted amd64 Packages
Hit http://archive.ubuntu.com precise-updates/universe amd64 Packages
Hit http://archive.ubuntu.com precise-updates/multiverse amd64 Packages
Hit http://archive.ubuntu.com precise-updates/main i386 Packages
Ign http://packages.treasuredata.com precise/contrib Translation-en_US
Hit http://security.ubuntu.com precise-security/universe TranslationIndex
Ign http://packages.treasuredata.com precise/contrib Translation-en
Hit http://archive.ubuntu.com precise-updates/restricted i386 Packages
Hit http://archive.ubuntu.com precise-updates/universe i386 Packages
Hit http://archive.ubuntu.com precise-updates/multiverse i386 Packages
Hit http://archive.ubuntu.com precise-updates/main TranslationIndex
Hit http://archive.ubuntu.com precise-updates/multiverse TranslationIndex
Hit http://archive.ubuntu.com precise-updates/restricted TranslationIndex
Hit http://archive.ubuntu.com precise-updates/universe TranslationIndex
Hit http://archive.ubuntu.com precise/main Translation-en
Hit http://security.ubuntu.com precise-security/main Translation-en
Hit http://security.ubuntu.com precise-security/multiverse Translation-en
Hit http://archive.ubuntu.com precise/multiverse Translation-en
Hit http://archive.ubuntu.com precise/restricted Translation-en
Hit http://security.ubuntu.com precise-security/restricted Translation-en
Hit http://archive.ubuntu.com precise/universe Translation-en
Hit http://archive.ubuntu.com precise-updates/main Translation-en
Hit http://archive.ubuntu.com precise-updates/multiverse Translation-en
Hit http://archive.ubuntu.com precise-updates/restricted Translation-en
Hit http://archive.ubuntu.com precise-updates/universe Translation-en
Hit http://security.ubuntu.com precise-security/universe Translation-en
Fetched 3,473 B in 2s (1,383 B/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libcap2 libclass-isa-perl libgdbm3 libopts25 libssl0.9.8 libswitch-perl libxml2 libxslt1.1 libyaml-0-2 ntp
perl perl-modules sgml-base xml-core
Suggested packages:
ntp-doc apparmor perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl make libpod-plainer-perl
sgml-base-doc debhelper
The following NEW packages will be installed:
libcap2 libclass-isa-perl libgdbm3 libopts25 libssl0.9.8 libswitch-perl libxml2 libxslt1.1 libyaml-0-2 ntp
perl perl-modules sgml-base td-agent xml-core
0 upgraded, 15 newly installed, 0 to remove and 0 not upgraded.
Need to get 71.3 MB of archives.
After this operation, 136 MB of additional disk space will be used.
Get:1 http://packages.treasuredata.com/precise/ precise/contrib td-agent amd64 1.1.20-1 [61.0 MB]
Get:2 http://archive.ubuntu.com/ubuntu/ precise-updates/universe libssl0.9.8 amd64 0.9.8o-7ubuntu3.2 [868 kB]
Get:3 http://archive.ubuntu.com/ubuntu/ precise/main libgdbm3 amd64 1.8.3-10 [35.3 kB]
Get:4 http://archive.ubuntu.com/ubuntu/ precise-updates/main libxml2 amd64 2.7.8.dfsg-5.1ubuntu4.9 [673 kB]
Get:5 http://archive.ubuntu.com/ubuntu/ precise/main libcap2 amd64 1:2.22-1ubuntu3 [12.0 kB]
Get:6 http://archive.ubuntu.com/ubuntu/ precise-updates/main libxslt1.1 amd64 1.1.26-8ubuntu1.3 [167 kB]
Get:7 http://archive.ubuntu.com/ubuntu/ precise-updates/main libyaml-0-2 amd64 0.1.4-2ubuntu0.12.04.3 [57.8 kB]
Get:8 http://archive.ubuntu.com/ubuntu/ precise/main libopts25 amd64 1:5.12-0.1ubuntu1 [59.9 kB]
Get:9 http://archive.ubuntu.com/ubuntu/ precise-updates/main ntp amd64 1:4.2.6.p3+dfsg-1ubuntu3.1 [612 kB]
Get:10 http://archive.ubuntu.com/ubuntu/ precise/main sgml-base all 1.26+nmu1ubuntu1 [8,360 B]
Get:11 http://archive.ubuntu.com/ubuntu/ precise/main xml-core all 0.13 [23.4 kB]
Get:12 http://archive.ubuntu.com/ubuntu/ precise/main libclass-isa-perl all 0.36-3 [11.9 kB]
Get:13 http://archive.ubuntu.com/ubuntu/ precise-updates/main perl-modules all 5.14.2-6ubuntu2.4 [3,389 kB]
Get:14 http://archive.ubuntu.com/ubuntu/ precise-updates/main perl amd64 5.14.2-6ubuntu2.4 [4,411 kB]
Get:15 http://archive.ubuntu.com/ubuntu/ precise/main libswitch-perl all 2.16-2 [19.2 kB]
Fetched 71.3 MB in 6s (10.8 MB/s)
Preconfiguring packages ...
Selecting previously unselected package libssl0.9.8.
(Reading database ... 12876 files and directories currently installed.)
Unpacking libssl0.9.8 (from .../libssl0.9.8_0.9.8o-7ubuntu3.2_amd64.deb) ...
Selecting previously unselected package libgdbm3.
Unpacking libgdbm3 (from .../libgdbm3_1.8.3-10_amd64.deb) ...
Selecting previously unselected package libxml2.
Unpacking libxml2 (from .../libxml2_2.7.8.dfsg-5.1ubuntu4.9_amd64.deb) ...
Selecting previously unselected package libcap2.
Unpacking libcap2 (from .../libcap2_1%3a2.22-1ubuntu3_amd64.deb) ...
Selecting previously unselected package libxslt1.1.
Unpacking libxslt1.1 (from .../libxslt1.1_1.1.26-8ubuntu1.3_amd64.deb) ...
Selecting previously unselected package libyaml-0-2.
Unpacking libyaml-0-2 (from .../libyaml-0-2_0.1.4-2ubuntu0.12.04.3_amd64.deb) ...
Selecting previously unselected package libopts25.
Unpacking libopts25 (from .../libopts25_1%3a5.12-0.1ubuntu1_amd64.deb) ...
Selecting previously unselected package ntp.
Unpacking ntp (from .../ntp_1%3a4.2.6.p3+dfsg-1ubuntu3.1_amd64.deb) ...
Selecting previously unselected package sgml-base.
Unpacking sgml-base (from .../sgml-base_1.26+nmu1ubuntu1_all.deb) ...
Selecting previously unselected package xml-core.
Unpacking xml-core (from .../archives/xml-core_0.13_all.deb) ...
Selecting previously unselected package libclass-isa-perl.
Unpacking libclass-isa-perl (from .../libclass-isa-perl_0.36-3_all.deb) ...
Selecting previously unselected package perl-modules.
Unpacking perl-modules (from .../perl-modules_5.14.2-6ubuntu2.4_all.deb) ...
Selecting previously unselected package perl.
Unpacking perl (from .../perl_5.14.2-6ubuntu2.4_amd64.deb) ...
Selecting previously unselected package libswitch-perl.
Unpacking libswitch-perl (from .../libswitch-perl_2.16-2_all.deb) ...
Selecting previously unselected package td-agent.
Unpacking td-agent (from .../td-agent_1.1.20-1_amd64.deb) ...
Processing triggers for ureadahead ...
Setting up libssl0.9.8 (0.9.8o-7ubuntu3.2) ...
Setting up libgdbm3 (1.8.3-10) ...
Setting up libxml2 (2.7.8.dfsg-5.1ubuntu4.9) ...
Setting up libcap2 (1:2.22-1ubuntu3) ...
Setting up libxslt1.1 (1.1.26-8ubuntu1.3) ...
Setting up libyaml-0-2 (0.1.4-2ubuntu0.12.04.3) ...
Setting up libopts25 (1:5.12-0.1ubuntu1) ...
Setting up ntp (1:4.2.6.p3+dfsg-1ubuntu3.1) ...
* Starting NTP server ntpd [ OK ]
Setting up sgml-base (1.26+nmu1ubuntu1) ...
Setting up xml-core (0.13) ...
Setting up libclass-isa-perl (0.36-3) ...
Setting up td-agent (1.1.20-1) ...
Adding system user `td-agent' (UID 104) ...
Adding new group `td-agent' (GID 106) ...
Adding new user `td-agent' (UID 104) with group `td-agent' ...
Not creating home directory `/home/td-agent'.
Installing default conffile /etc/td-agent/td-agent.conf ...
* Starting td-agent td-agent [ OK ]
Setting up libswitch-perl (2.16-2) ...
Setting up perl-modules (5.14.2-6ubuntu2.4) ...
Setting up perl (5.14.2-6ubuntu2.4) ...
update-alternatives: using /usr/bin/prename to provide /usr/bin/rename (rename) in auto mode.
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
user1@precise64:~$
\\
起動しているか、確認します。
user1@precise64:~$ ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 /sbin/init
114 ? S 0:00 upstart-udev-bridge --daemon
145 ? Ss 0:00 /sbin/udevd --daemon
153 ? Sl 0:00 rsyslogd -c5
155 ? S 0:00 upstart-socket-bridge --daemon
203 ? Ss 0:00 /usr/sbin/sshd -D
231 ? Ss+ 0:00 /sbin/getty -8 38400 tty4
234 ? Ss+ 0:00 /sbin/getty -8 38400 tty2
235 ? Ss+ 0:00 /sbin/getty -8 38400 tty3
241 ? Ss 0:00 cron
268 ? Ss+ 0:00 /sbin/getty -8 38400 console
271 ? Ss+ 0:00 /sbin/getty -8 38400 tty1
303 ? Ss 0:00 sshd: user1 [priv]
315 ? S 0:00 sshd: user1@pts/0
316 pts/0 Ss 0:00 -bash
3609 ? Ss 0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 103:105
3732 ? Sl 0:00 /usr/lib/fluent/ruby/bin/ruby /usr/sbin/td-agent --daemon /var/run/td-agent/td-agent.pid --log /var/log/td-agent/td-agent.log
3735 ? Sl 0:00 /usr/lib/fluent/ruby/bin/ruby /usr/sbin/td-agent --daemon /var/run/td-agent/td-agent.pid --log /var/log/td-agent/td-agent.log
3757 pts/0 R+ 0:00 ps ax
user1@precise64:~$
\\
==== Java のセットアップ ====
elasticsearch は JVM 上で動作しますので、Java をインストールしておきます。\\
参照: [[http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html|Install Oracle Java 7 in Ubuntu via PPA Repository]]
準備
user1@precise64:~$ sudo apt-get install python-software-properties
user1@precise64:~$ sudo add-apt-repository ppa:webupd8team/java
You are about to add the following PPA to your system:
Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK6 / JDK7 / JDK8). There are no actual Java files in this PPA.
More info:
- for Oracle Java 7: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
Debian installation instructions: http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmpFd_z7_/secring.gpg' created
gpg: keyring `/tmp/tmpFd_z7_/pubring.gpg' created
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpFd_z7_/trustdb.gpg: trustdb created
gpg: key EEA14886: public key "Launchpad VLC" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
user1@precise64:~$
user1@precise64:~$ sudo apt-get install oracle-java7-installer
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libfreetype6 libxfont1 wget x11-common
xfonts-encodings xfonts-utils
Suggested packages:
binutils-doc default-jre equivs binfmt-support visualvm ttf-baekmuk ttf-unfonts ttf-unfonts-core
ttf-kochi-gothic ttf-sazanami-gothic ttf-kochi-mincho ttf-sazanami-mincho ttf-arphic-uming firefox
firefox-2 iceweasel mozilla-firefox iceape-browser mozilla-browser epiphany-gecko epiphany-webkit
epiphany-browser galeon midbrowser moblin-web-browser xulrunner xulrunner-1.9 konqueror chromium-browser
midori google-chrome
The following NEW packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libfreetype6 libxfont1 oracle-java7-installer wget
x11-common xfonts-encodings xfonts-utils
0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
Need to get 7,609 kB of archives.
After this operation, 17.8 MB of additional disk space will be used.
Do you want to continue [Y/n]?
\\
セットアップされました。
user1@precise64:~$ java -version
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
user1@precise64:~$
\\
==== elasticsearch のセットアップ ====
[[http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup.html]] の説明のとおり、セットアップします。
user1@precise64:~$ wget -qO - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -
OK
user1@precise64:~$
\\
リポジトリを追加します。
user1@precise64:~$ sudo nano -w /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu precise main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
deb http://packages.elasticsearch.org/elasticsearch/1.3/debian stable main
\\
elasticsearch をインストールします。
user1@precise64:~$ sudo apt-get update
user1@precise64:~$ sudo apt-get install elasticsearch
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
elasticsearch
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 26.9 MB of archives.
After this operation, 30.9 MB of additional disk space will be used.
Get:1 http://packages.elasticsearch.org/elasticsearch/1.3/debian/ stable/main elasticsearch all 1.3.1 [26.9 MB]
Fetched 26.9 MB in 5s (4,866 kB/s)
Selecting previously unselected package elasticsearch.
(Reading database ... 20533 files and directories currently installed.)
Unpacking elasticsearch (from .../elasticsearch_1.3.1_all.deb) ...
Processing triggers for ureadahead ...
Setting up elasticsearch (1.3.1) ...
Adding system user `elasticsearch' (UID 105) ...
Adding new user `elasticsearch' (UID 105) with group `elasticsearch' ...
Not creating home directory `/usr/share/elasticsearch'.
### NOT starting elasticsearch by default on bootup, please execute
sudo update-rc.d elasticsearch defaults 95 10
### In order to start elasticsearch, execute
sudo /etc/init.d/elasticsearch start
user1@precise64:~$
\\
==== fluentd-ui のセットアップ ====
\\