概要
observerでリモートサーバー上のElixirアプリを監視したい。
使用するツール/機能
observer
GUIのサーバーモニタリングツールです。iexから、:observer.start
とすることで起動します。erlで起動する時は、erl -run observer
で。
利用するにはErlangのコンパイル時にws(wxWidgetsのErlangバインディング)を有効にしないと利用できないのでご注意ください。
epmd
Erlang Port Mapper Daemon。
分散Erlang環境における名前解決を行います、使用ポートはデフォルトで4369です。起動時のオプションとして、inet_dist_listen_min、inet_dist_listen_maxを指定する事で設定できます。
方法
step.0
リモートサーバー上でcookieを指定しアプリを起動
iex --name rmote@127.0.0.1 --cookie my-cookie --erl "-kernel inet_dist_listen_min 9001 inet_dist_listen_max 9001" -S mix
step.1
ローカルとリモートサーバーをsshで4369ポートをポートフォワーディングする
ssh -N -L 9001:localhost:9001 -L 4369:localhost:4369 root@remotehost
step.2
epmdがローカルとリモートサーバーのErlangVMをクラスタリングする。
step.3
observerをローカルで立ち上げると、(クラスタリングされた)リモートサーバー上のErlangVMをモニタリングすることができます。
erl -name monitor@127.0.0.1 -setcookie my-cookie -run observer