AWS CloudWatchを使用したInterSystems IRISのモニタリング

Primary tabs

本記事について

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ベースですのでデモ目的で使用しています。