Чтобы проверить, работает ли экземпляр EC2 вверх или вниз:
import sys
import boto3
ec2 = boto3.client('ec2')
if sys.argv[1] == 'ON':
response = ec2.monitor_instances(InstanceIds=['INSTANCE_ID'])
else:
response = ec2.unmonitor_instances(InstanceIds=['INSTANCE_ID'])
print(response)
Чтобы проверить работоспособность экземпляра:
# Boto 2.x
for status in ec2_connection.get_all_instance_statuses():
print(status)
# Boto 3
for status in ec2.meta.client.describe_instance_status()['InstanceStatuses']:
print(status)
Для получения дополнительной информации см .: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/migrationec2.html
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/ec2-example-managing-instances.html
Обновление: (чтобы проверить, запущена или нет конкретная служба в EC2)
- Вы можете опубликовать sh пользовательскую метрику c в CloudWatch в форме «сердцебиения».
- У вас есть небольшой скрипт, работающий через cron на вашем сервере, проверяющий список процессов чтобы увидеть, работает ли my_service и, если он есть, позвоните
put-metric-data
в CloudWatch. - Метри c может быть так же просто, как нажать цифру "1" в вашем пользовательском метри c в CloudWatch.
- Настройка будильника CloudWatch, который срабатывает, если среднее значение для метри c падает ниже 1
- . Установите период будильника> = период, который запускает крон, например, cron запускается каждые 5 минут, срабатывает сигнализация, если он видит, что среднее значение ниже 1 в течение двух 5-минутных периодов.
- Убедитесь, что вы Вы также обрабатываете ситуацию, в которой metri c не публикуется (например, cron не запускается или вся машина умирает). Вы хотите настроить оповещение в случае, если отсутствует метри c. (см. здесь: AWS Сигнал пульса Cloudwatch )
- Имейте в виду, что пользовательский метри c добавит дополнительную стоимость 50 c к вашему счету AWS (не большое дело для одного метри c - но уравнение радикально меняется, если вы хотите набрать sh сто / тысячи метрик - т.е. приятно знать, что это не бесплатно, как можно было бы ожидать)
- Вы должны создайте topi c в службе SNS (Simple Notification Service) в AWS. Там вы должны указать свой адрес электронной почты в SNS, на который вы будете получать уведомление.
Ссылки:
- Используйте cloudwatch, чтобы определить, является ли услуга linux работает
- AWS Cloudwatch Alarm Heartbeat Alarm