td-agent2.3.5のfluentdが0.14系になってしまっているのでソースからビルドする

fluentd

追記(2016-06-25): 現在は普通に入れても0.12系の2.3.5-1が入るようになっている。

$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
$ td-agent --version
td-agent 0.14.16

0.12系じゃない!?

$ yum list installed | grep td-agent
td-agent.x86_64                       2.3.5-0.el2017               @treasuredata

どうやら2.3.5では0.14系になってしまっているよう。 そのあとにリリースされた2.3.5-1では直ってるみたいだが、現時点ではrpmリポジトリに上がっていない。

しょうがないのでソースからビルドすることにした。 いずれにせよ各環境で同じバージョンのビルドに合わせるべきだとは思う。 Beanstalk環境の場合、AMIに固めていたとしても非Beanstalk AMIではyum updateされてしまうので注意が必要だ。

BeanstalkでのパッケージのバージョンがAMIでのバージョンと異なる原因 - sambaiz-net

前UbuntuでやったようにDockerでビルドする。今回はAmazon Linux向け。

td-agentをビルドしてfluentdのバージョンを上げる - sambaiz-net

https://hub.docker.com/r/sambaiz/docker-td-agent-build-amazon-linux/

FROM amazonlinux:2017.03

WORKDIR /tmp

RUN yum -y update && \
    yum groupinstall -y "Development Tools" && \
    yum install -y ruby23 ruby23-devel && \
    gem install bundler io-console && \
    git clone https://github.com/treasure-data/omnibus-td-agent

WORKDIR /tmp/omnibus-td-agent

RUN bundle install --binstubs && \
    bin/gem_downloader core_gems.rb && \
    bin/gem_downloader plugin_gems.rb && \
    bin/gem_downloader ui_gems.rb && \
    mkdir -p /opt/td-agent /var/cache/omnibus && \
    bin/omnibus build td-agent2 && \
    mv ./pkg/*.rpm /
$ docker build -t amazon-linux-td-agent .
$ docker run --name altd -itd amazon-linux-td-agent sh
$ docker cp altd:/td-agent-2.3.5-1.el2017.x86_64.rpm .

あとはこれをインストールする。

$ yum install -y redhat-lsb-core
$ rpm -ivh td-agent-2.3.5-1.el2017.x86_64.rpm 
$ td-agent --version
td-agent 0.12.36