🐕
Amazon EC2に立てたVirtuosoのヘルスチェックを行う
概要
Amazon EC2に立てたVirtuosoのヘルスチェックを行う機会がありましたので、その備忘録です。
具体的には、何らかの不具合で、Virtuoso(https://xxx.zzz/sparql など)がエラーを返すようになってしまった際、その内容をメールで通知します。
方法
以下の記事で、Amazon EC2にVirtuoso RDFストアを構築する方法を紹介しています。
上記では、ELBを使用しています。上記の記事から1点だけ変更を行う必要があります。Health check path
を/
に設定していますが、この部分をSPARQLエンドポイントへのパス(例えば/sparql
)に変更します。
その後、以下の記事を参考に、CloudWatchやAmazon SNSの設定を行いました。
結果
以下のようにモニタリングを行うことができるようになりました。
またアラート発生時には、以下のようなメールが届くようになりました。
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