Docker版の起動と停止の関する説明です。
最新版に更新後に起動するスクリプト
私が使っているDokcer環境のTWSNMP FCを最新版に保つためのスクリプトを紹介します。
#!/bin/sh
docker stop -t 300 twsnmpfc
docker rmi twsnmp/twsnmpfc
docker run --rm -d --name twsnmpfc --net host -v /data/twsnmpfc:/datastore twsnmp/twsnmpfc
データストアのためのボリュームの設定(-v /data/twsnmpfc:/datastore
)は、お使いの環境に合わせて変更してください。
停止する時のコマンド
大量のsyslogや Netflowを受信していて沢山のレポートデータを記録している(DBのサイズが毎日数GB増える)TWSNMP FCがDocker環境で動作している場合には停止する時に注意が必要です。
停止する時は、
#docker stop -t 300 twsnmpfc
のように停止してください。
理由が気なる人へ
#dcoker stop twsnmpfc
というコマンドで停止した場合
- DockerがTWSNMP FCにTermninateシグナルを送る
- TWSNMP FCが終了処理を行う(各処理の停止、ログやレポートの保存)
- Dockerが10秒待ってもTWSNMP FCが終了しないと強制終了する
ということが起こります。未保存のログやレポートのデータ量が多い場合には10秒で保存できないため強制終了が発生します。
保存されないデータが発生するという意味です。docker stopコマンドのヘルプを見ると
% docker stop --help
Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]
Stop one or more running containers
Options:
-t, --time int Seconds to wait for stop before killing it (default 10)
のように書いてあります。
保存されたか心配な人は
心配な人はDockerで稼働するTWSNMP FCのログを確認してください。バックグランドで動作している場合は
#docker logs -f twsnmpfc
でログを表示できます。stopコマンドで停止した時には
のようにtwsnmpfcの停止がログに表示されます。このログに停止にかかった時間も記録されています。