Я обнаружил довольно специфическую проблему при настройке аварийных сигналов AWS CloudWatch через возможность использования динамического инвентаря ec2.Как получить файловую систему через динамический инвентарь AWS EC2
Я успешно настроил aws-script-mon для контроля использования дисковых и ОЗУ на моих машинах.
Также мне удалось установить аварийные сигналы для использования ОЗУ с помощью незаменимого модуля ec2_metric_alarm.
Проблема, с которой я столкнулся в данный момент, заключается в том, что при настройке аварийных сигналов для использования диска требуется параметр размера Filesystem
, но не возвращен в переменные ec2 dynamic inventory.
Некоторые из моих машин имеют файловую систему, установленную на /dev/xvda1
, а в других - что-то вроде: /dev/disk/by-uuid/abcd123-def4-...
.
Мое текущее «решение» выглядят следующим образом:
- name: "Disk > 60% (filesystem by fixed uuid)"
ec2_metric_alarm:
state: present
name: "{{ ec2_tag_Name }}-Disk"
region: "{{ ec2_region }}"
dimensions:
InstanceId: '{{ ec2_id }}'
MountPath: "/"
Filesystem: '/dev/disk/by-uuid/abcd123-def4-...'
namespace: "System/Linux"
metric: DiskSpaceUtilization
statistic: Average
comparison: ">="
threshold: 60.0
unit: Percent
period: 300
evaluation_periods: 1
description: Triggered when Disk utilization is more than 60% for 5 minutes
alarm_actions: ['arn:aws:sns:us-west-2:1234567890:slack']
when: ec2_tag_Name in ['srv1', 'srv2']
- name: "Disk > 60% (filesystem /dev/xvda1)"
ec2_metric_alarm:
state: present
name: "{{ ec2_tag_Name }}-Disk"
region: "{{ ec2_region }}"
dimensions:
InstanceId: '{{ ec2_id }}'
MountPath: "/"
Filesystem: '/dev/xvda1'
namespace: "System/Linux"
metric: DiskSpaceUtilization
statistic: Average
comparison: ">="
threshold: 60.0
unit: Percent
period: 300
evaluation_periods: 1
description: Triggered when Disk utilization is more than 60% for 5 minutes
alarm_actions: ['arn:aws:sns:us-west-2:1234567890:slack']
when: ec2_tag_Name not in ['srv1', 'srv2']
Единственное различие между этими двумя задачами является Filesystem
размером и when
условия (in
или not in
).
Есть ли способ получить значение Filesystem
, поэтому я могу использовать их как можно удобно, скажем, ec2_id
? Моя самая большая проблема заключается в том, что я должен следить за значениями файловой системы при создании новых машин и обрабатывать списки машин в соответствии с этими значениями.
Я сейчас работаю с этим же с Ansible. Вы когда-нибудь находили решение? – brandonhilkert
Нет, я этого не сделал. Все еще используя версию, указанную в вопросе = ( –