-
Notifications
You must be signed in to change notification settings - Fork 11
setup_monitoring
terukusu edited this page Apr 15, 2019
·
18 revisions
自動売買で検知しなければならないことは、何をおいても以下の 3つ。ここでは1、2の検知を設定します。
- 意図しないVMインスタンスの再起動
- MetaTrader のクラッシュ
- VMインスタンスやネットワークのダウン
- これについては「外側からの監視の設定」を参照
加えて、以下の3つもここで設定します
- 定時連絡。毎日サーバーから「可動OK!」と通知を送ってもらう
- セキュリティアップデートやソフトウェアアップデートが利用可能になったら通知
- 再起動時に自動的にMT4/5を起動
VMインスタンスへSSHログインしたターミナルから以下を実行
$ ~/auto-trading-support-tools-master/setup_cron.sh
この設定をすると以下の定期的なチェックがスケジュールされます
- 1分毎に再起動したかどうかを確認
- 1分毎に MetaTrader がクラッシュしていないかどうかを確認
- 毎朝8時半にデスクトップ等のVMインスタンスの様子を画像で通知
- 毎朝9時に「サーバー可動OK!」という定時通知
- 毎朝9時に更新可能なパッケージが有るか確認
- VMインスタンスの再起動時に MetaTrader を自動起動
正しく設定されたかを確認
VMインスタンスへSSHログインしたターミナルから以下を実行
$ crontab -l
↓この様に表示されればOK
MAILTO=""
PATH="/path/to/the/atst_home:/bin:/usr/bin:/usr/local/bin" ← /path/to/the... の部分は大抵 /home/<ユーザー名>/auto-trading..... となっているはず
# List of MetaTrader which should be Monitored.
# It consists of space separated, single quoted MetaTrader name.
# ex. "('Land-FX' 'MetaTrader 5' 'MetaTrader 4')"
TARGET="('Land-FX')"
0 9 * * * check_daily.sh
* * * * * check_reboot.sh
@reboot wrapper.sh "$TARGET" mtctl.sh start
30 6 * * * wrapper.sh "$TARGET" truncate_monitoring.sh
30 8 * * * wrapper.sh "$TARGET" report_image.sh
* * * * * sleep 10; wrapper.sh "$TARGET" check_order.sh
* * * * * sleep 40; wrapper.sh "$TARGET" check_order.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_monitoring.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_process.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_ping.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_price.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_spread.sh
再起動検知が機能しているかを確認するために再起動を行う。 VMインスタンスへSSHログインしたターミナルから以下を実行
$ sudo reboot
再起動が始まりSSHは自動切断される。
しばらくしたら再起動を検知した旨が LINE に届く
もういちどVMインスタンスへSSHログインしてターミナルから以下を実行
$ ~/auto-trading-support-tools-master/mtctl.sh status land-fx
↓ 実行結果。今はMetaTraderが動いているはずなので、このように一覧に表示されるはず。
status=running, pid=1257, name=land-fx
以下を実行して MetaTrader を終了する。
~/auto-trading-support-tools-master/mtctl.sh stop land-fx
MetaTrader が終了していることを確認する。
~/auto-trading-support-tools-master/mtctl.sh status land-fx
↓ 実行結果。status=stopped となり終了していることを確認する。
status=stopped, pid= -, name=land-fx
1分毎に MetaTrader が動いているかチェックされるので、1分程度で MetaTrader が動いていない旨の通知がLINEに届く
確認が終わったらまたMetaTraderを起動しておく。一分程度で MetaTrader 再開の通知が来ます。
~/auto-trading-support-tools-master/mtctl.sh start land-fx