次の記事で Ubuntu 14.04 に Telegraf をインストールしましたが、今回は CoreOS へインストールします。インストール時点でのバージョンは 1122.3.0 となります。
Telegrafでサバーリソースを取得してInfluxDBに格納する
Telegraf バイナリの取得
GitHub - influxdata/telegraf: The plugin-driven server agent for collecting & reporting metrics.
Linux tarballs: のセクションから入手してください。
https://dl.influxdata.com/telegraf/releases/telegraf-1.0.1_linux_amd64.tar.gz (2016/10/24時点のバージョン)
インストール時は、最新バージョンをご確認ください。tarball を展開すると以下の構成になっています。
etc/logrotate.d/telegraf # log rotate config
etc/telegraf/telegraf.conf # config
var/log/telegraf/ # 空ディレクトリ
usr/bin/telegraf # 実行バイナリ本体
usr/lib/telegraf/scripts/
init.sh # initスクリプト
telegraf.service # systemd の設定ファイル
そのまま /
に上書きしようとすると怒られます。
sudo mv usr/bin/telegraf /usr/bin/
mv: inter-device move failed: 'usr/bin/telegraf' to '/usr/bin/telegraf'; unable to remove target: Read-only file system
CoreOSではユーザーが書き込みできる領域が限られているためです。CoreOSでは標準で$PATH
に/opt/bin
が含まれていますので、ここに配置します。
ここで欲しいファイルは2つなので、手動で設定してしまうことにします。
sudo mv usr/bin/telegraf /opt/bin/
sudo mv usr/lib/telegraf/scripts/telegraf.service /etc/systemd/system/
sudo mkdir -p /var/log/telegraf
sudo mkdir /etc/telegraf
sudo mkdir /etc/telegraf/telegraf.d
sudo vi /etc/telegraf/telegraf.conf
service ファイルの修正
telegraf の配置パスを変更したので一部修正します。
本記事ではユーザーを作成していませんので、ここは必要に応じて適宜見直しください。
--- telegraf.service 2016-10-24 02:27:01.000000000 +0900
+++ /etc/systemd/system/telegraf.service 2016-10-24 02:32:10.000000000 +0900
@@ -5,10 +5,10 @@
[Service]
EnvironmentFile=-/etc/default/telegraf
-User=telegraf
+User=root
Environment='STDOUT=/var/log/telegraf/telegraf.log'
Environment='STDERR=/var/log/telegraf/telegraf.log'
-ExecStart=/bin/sh -c "exec /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d ${TELEGRAF_OPTS} >>${STDOUT} 2>>${STDERR}"
+ExecStart=/bin/sh -c "exec /opt/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d ${TELEGRAF_OPTS} >>${STDOUT} 2>>${STDERR}"
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
KillMode=control-group
systemd で Telegrafサービスを有効にします。
$ sudo systemctl enable telegraf
$ systemctl list-unit-files telegraf.service
UNIT FILE STATE
telegraf.service enabled
最後に、enabled になっていることを確認したら sudo systemctl start telegraf
で完成です。もし起動しない場合、sudo journalctl -u telegraf -f
で起動ログを確認しながら動作確認を試みるとヒントが見つかるはずです。
意外と、InfluxDB側のHTTPサーバーのアクセス制限だったりしますので気をつけましょう。 (別サーバーだったりする場合は特に!)