Kubernates セットアップ用に Prometheus Alertmanager を設定しています。メールでアラートを直接送信することはできますが、代わりに AWS SNS を使用したいと考えていました。後で、AWS-SNS が AlertManager によって公式にサポートされているのではなく、コミュニティによってサポートされていることがわかりました。
alertmanager で AWS SNS を有効にできる github プロジェクトを見つけました。
https://github.com/DataReply/alertmanager-sns-forwarder
しかし、試してみると、CrashloopBackOff ステータスが表示されます。プロジェクトごとに同じ展開 yaml を使用しています。以下は、環境固有の詳細を追加した部分です。
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
labels:
component: alertmanager-sns-forwarder
annotations:
iam.amazonaws.com/role: cluster-test-Role
spec:
restartPolicy: Always
containers:
- name: alertmanager-sns-forwarder
image: datareply/alertmanager-sns-forwarder
imagePullPolicy: Always
# You can also specify arguments
# args: ["--addr=:9087", "--debug", "--arn-prefix=<some_prefix>"]
env:
- name: AWS_REGION
value: "us-east-1"
- name: AWS_DEFAULT_REGION
value: "us-east-1"
- name: SNS_FORWARDER_ADDRESS
value: "9087"
- name: SNS_FORWARDER_DEBUG
value: "false"
- name: SNS_FORWARDER_ARN_PREFIX
value: "arn:aws:sns:us-east-1:8xxxxxxxx:SYSTEST_K8S_ALERTS"
ログを確認しましたが、問題は見つかりませんでした。
kubectl logs -f alertmanager-sns-forwarder-f8b4546b7-97c55 -n monitoring
time="2019-01-09T07:16:19Z" level=info msg="listening on9087"