本記事について
InterSystems IRISをモニタリングする方法はいくつかあります。
- SNMP
- システムモニターとemail通知機能
- 管理ポータルのシステムダッシュボード
- Prometheus+Grafanaを使用
- InterSystems SAM (System Alerting and Monitoring)
本記事では上記に加えてAWSにIRISをデプロイする場合に自然な選択子となりうる方法として、CloudWatchを使用する方法をご紹介します。
AWSネイティブの各種サービスとIRISを連携させる方法の典型のご紹介を兼ねています。
内容は、Open Exchangeで公開されています。日本語のREADMEがありますのでそちらをご覧ください。
README.MDからの引用
InterSystems IRISの各種メトリクスとログをAWS CloudWatchに簡単に公開することができます。
これらメトリクスとログがあれば、IRISのデータをダッシュボードやアラートなどに統合することができます。
Prometheus+Grafana,SAM,CloudWatchについては、共通点があります。いずれもIRIS 2019.4から利用可能となった監視APIを使用している点です。下記のREST要求を出すだけで、任意のIRISホストの各種メトリクスの取得が出来ます。これにより多種多様なモニタリングツールやサービスとの連携が容易になりました。
$ curl http://localhost:52773/api/monitor/metrics
iris_cpu_pct{id="CSPDMN"} 0
iris_cpu_pct{id="CSPSRV"} 0
iris_cpu_pct{id="ECPWorker"} 0
iris_cpu_pct{id="GARCOL"} 0
iris_cpu_pct{id="JRNDMN"} 0
iris_cpu_pct{id="LICENSESRV"} 0
iris_cpu_pct{id="WDSLAVE"} 0
iris_cpu_pct{id="WRTDMN"} 0
iris_cpu_usage 3
iris_csp_activity{id="127.0.0.1:52773"} 31
iris_csp_actual_connections{id="127.0.0.1:52773"} 8
iris_csp_gateway_latency{id="127.0.0.1:52773"} .551
・
・
・
詳細はREADME.MDを読んでください、以上です、というのでは拍子抜けしそうですので、以下、追加情報です。
ログインサイトについて
message.logの分析は、画像でも確認できますが、ログインサイトを使って、ロググループInterSystems-IRISに対して下記のクエリを実行します。
PARSE @message "* (*) * [*] *" as timestamp,pId,severity,eventType,text
| filter severity=3 or severity=2
| sort @timestamp
CloudFormationのテンプレート
オリジナルで紹介されている手順及びIRISを自動でデプロイするCloudFormationのテンプレートをご用意しました。パラメータの意味はこちらの記事とほぼ同じです。
パラメータIamInstanceProfileParameterで指定するEC2インスタンスロールには、CloudWatchAgentServerPolicyに加えてAmazonS3ReadOnlyAccessも追加してください。
実行すると、ポート22(ssh), 52773をインターネットに解放します。安全を見るなら、パラメータRemoteAccessCIDRParameterには自分のグローバルIPを指定するのが望ましいです。
キット及びライセンスキーは、パラメータS3BucketNameParameterで指定したs3バケットから取得しています。
事前に用意したキット、ライセンスの保管場所が下記である場合、このパラメータ値はmybucketにします。
s3://mybucket/IRIS-2020.1.0.215.0-lnxrhx64.tar.gz
s3://mybucket/iris.key
実行されるシェルコマンド
UserDataセクションに一通りのコマンドが記述されています。
また、オリジナルの内容に加えて、各種設定(AWS Region, timezone, localeなど)を日本の環境に合わせています。
こんな風に、AWSが持つ様々なサービスとIRISを連携させられるのね、と感じていただければ幸いです。
なお、Amazon Linux2はIRISの正式なサポート対象環境ではありませんが、RedHat7ベースですのでデモ目的で使用しています。