🐕

Amazon EC2に立てたVirtuosoのヘルスチェックを行う

2023/07/14に公開

概要

Amazon EC2に立てたVirtuosoのヘルスチェックを行う機会がありましたので、その備忘録です。

具体的には、何らかの不具合で、Virtuoso(https://xxx.zzz/sparql など)がエラーを返すようになってしまった際、その内容をメールで通知します。

方法

以下の記事で、Amazon EC2にVirtuoso RDFストアを構築する方法を紹介しています。

https://zenn.dev/nakamura196/articles/6b7c5484b2f161

上記では、ELBを使用しています。上記の記事から1点だけ変更を行う必要があります。Health check path/に設定していますが、この部分をSPARQLエンドポイントへのパス(例えば/sparql)に変更します。

その後、以下の記事を参考に、CloudWatchやAmazon SNSの設定を行いました。

https://dev.classmethod.jp/articles/elb-healthcheck-monitoring-by-cloudwatch-alarm/

結果

以下のようにモニタリングを行うことができるようになりました。

またアラート発生時には、以下のようなメールが届くようになりました。

You are receiving this email because your Amazon CloudWatch Alarm "virtuoso-unhealthyhostcount-alarm" in the US East (N. Virginia) region has entered the ALARM state, because "Threshold Crossed: no datapoints were received for 5 periods and 5 missing datapoints were treated as [Breaching]." at "Friday 14 July, 2023 08:05:30 UTC".

View this alarm in the AWS Management Console:
https://us-east-1.console.aws.amazon.com/cloudwatch/deeplink.js?region=us-east-1#alarmsV2:alarm/virtuoso-unhealthyhostcount-alarm

Alarm Details:
- Name:                       virtuoso-unhealthyhostcount-alarm
- State Change:               OK -> ALARM
- Reason for State Change:    Threshold Crossed: no datapoints were received for 5 periods and 5 missing datapoints were treated as [Breaching].
- Timestamp:                  Friday 14 July, 2023 08:05:30 UTC
- AWS Account:                xxxxxxxxxxxxxx
- Alarm Arn:                  arn:aws:cloudwatch:us-east-1:xxxxxxxxxxxxxx:alarm:virtuoso-unhealthyhostcount-alarm

Threshold:
- The alarm is in the ALARM state when the metric is GreaterThanOrEqualToThreshold 1.0 for at least 5 of the last 5 period(s) of 60 seconds.

Monitored Metric:
- MetricNamespace:                     AWS/ApplicationELB
- MetricName:                          UnHealthyHostCount
- Dimensions:                          [TargetGroup = targetgroup/virtuoso] [AvailabilityZone = us-east-1a] [LoadBalancer = app/virtuoso/yyyyyyyyyyyyyyy]
- Period:                              60 seconds
- Statistic:                           Minimum
- Unit:                                not specified
- TreatMissingData:                    breaching


State Change Actions:
- OK:
- ALARM: [arn:aws:sns:us-east-1:xxxxxxxxxxxxxx:Default_CloudWatch_Alarms_Topic]
- INSUFFICIENT_DATA:

まとめ

同様の環境でVirtuosoを運用されている際の参考になりましたら幸いです。

Discussion