サービスの状況に合わせてAWS EC2のサーバインスタンス数を増減させる目的などで、カスタマイズしたサーバのマシンイメージ(AMI)を利用しており、そのAMIにFlyData Agentが含まれる場合、ログの重複や欠損が起こる可能性もあるため、下記の点をご注意ください。
FlyData Agentの内部機能
FlyData Agentはポジションファイルとバッファディレクトリを利用して、継続的なデータ転送を実現しています。
ポジションファイル (.flydata/.pos):
現在ロードしたファイルの位置情報(offset)を保持し変更ある度に更新します。監視対象のファイルの差分を毎秒チェックしており、差分があった場合は差分をロードした後、このファイルが更新されます。
バッファディレクトリ (.flydata/buffer/):
サーバに送信前に一旦バッファとして読み込んだデータを保存。平常時は1分に1回送信するようになっています。監視対象のファイルの更新が無い状態で、このディレクトリが空であることが数秒(長くとも5秒程度)続くようであれば、送信するものが無い状態といえます。
このポジションファイルとバッファの働きを踏まえ、下記のように運用ください。
インスタンス起動時の運用
- AMIからインスタンスを起動します。
- FlyData Agentが停止していることを確認ください。
- インスタンス内に過去に転送したログファイルが存在する場合、削除してください。
- ポジションファイルを削除してください。
- バッファディレクトリにバッファファイルがあれば削除してください。
- FlyData Agentを起動してください。
- 転送するログファイルの生成・更新を開始してください。
なお、ログフェアの生成・更新の前にFlyData Agentを起動する必要性については、下記FAQを参照ください。
データエントリに指定する前からファイルにデータがあった場合、そのデータは反映されませんか?
インスタンス停止時の運用
- 転送するログファイルの更新を停止してください。
- バッファディレクトリにバッファファイルがないことを確認してください。
- インスタンスを停止してください。
0 コメント