Skip to content

setup_monitoring

terukusu edited this page Apr 15, 2019 · 18 revisions

再起動やMT4/5の監視を設定

概要

自動売買で検知しなければならないことは、何をおいても以下の 3つ。ここでは1、2の検知を設定します。

  1. 意図しないVMインスタンスの再起動
  2. MetaTrader のクラッシュ
  3. 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 に届く

MetaTrader のクラッシュ検知を確認する

もういちど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

次のステップ


Topへ戻る

Clone this wiki locally