CoreOSへTelegrafをインストールする手順です。CoreOSは書き込み可能な領域が限られているため、通常のLinuxとは配置方法が異なります。
Telegrafバイナリの取得
GitHub - influxdata/telegraf の Linux tarballs セクションから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 の設定ファイル
CoreOSへの配置
そのまま /usr/bin/ に配置しようとすると怒られます。
sudo mv usr/bin/telegraf /usr/bin/
mv: inter-device move failed: unable to remove target: Read-only file system
CoreOSではユーザーが書き込みできる領域が限られているためです。$PATH に含まれている /opt/bin に配置します。
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ファイルの修正
配置パスを変更したので、systemdのserviceファイルを修正します。
[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}"
起動と確認
$ sudo systemctl enable telegraf
$ systemctl list-unit-files telegraf.service
UNIT FILE STATE
telegraf.service enabled
$ sudo systemctl start telegraf
起動しない場合は sudo journalctl -u telegraf -f でログを確認してください。InfluxDB側のHTTPアクセス制限が原因であることも意外と多いです。
![[Kubernetes] Prometheus Operator を Helm でイントールする方法](/tcard/4ff50220-af89-4f04-b1d5-9a04208e7710/2022-11-20-4ff50220-af89-4f04-b1d5-9a04208e7710.webp)

