Cześć, witaj na moim blogu o chmurach. Z tego artykułu dowiesz się o tym, co zrobić, żeby otrzymywać powiadomienia dotyczące zajętości dysku na EC2. W artykule wyjaśnię jak wysyłać powiadomienia z CloudWatch na dowolny adres e-mail.
Jeśli jesteś ciekawy jak dodatkowo otrzymywać takie powiadomienia slacku albo przez Microsoft Teams to zajrzyj do artykułu Powiadomienia z AWS na MS Teams – blog z tutorialem po polsku (lepczynski.it)
Z tego tutorialu dowiesz się jak otrzymywać powiadomienia e-mail, gdy zajętość dysku przekroczy 80%. Spokojnie, wyjaśnię krok po kroku, co trzeba zrobić. Jeśli wolisz oglądać poradniki, zamiast je czytać, to mam dobrą wiadomość, na YouTube znajdziesz ten tutorial w formie video.
Jeśli jeszcze nie wiesz, jak możesz monitorować pamięć RAM, to mam świetną wiadomość.
nagrałem jakiś czasem temu tutorial także na ten temat How to Monitor EC2 Memory Usage – EC2 Custom Metrics in AWS CloudWatch – 2022 – YouTube.
Przejdźmy do rzeczy, przygotuj sobie pyszną kawę i zdobądź nową wiedzę, czytając ten artykuł:)
Odpowiednia Rola IAM i uprawnienia
Witaj ponownie mam nadzieje, że masz ze sobą kawę albo swój ulubiony napój, bo nie każdy musi lubić kawę 😉
Bezpieczeństwo to podstawa, więc na początek utwórz nowa role IAM pozwalającą na wysyłanie danych do CloudWatch CloudWatchAgentServerPolicy
.
Teraz wystarczy dodać tę rolę do EC2. Rola ta pozwoli na wysyłanie danych z EC2 do CloudWatch.
Konfiguracja CloudWatch Agenta
Wracając do EC2, to oprócz uprawnień potrzebny jest jeszcze CloudWatch agent, który będzie wysyłał dane.
Ja trochę zmieniłem konfiguracje z mojego artykułu dotyczącego monitorowania pamięci RAM i tym razem monitoruje miejsce na dysku. Na początek przejdź do tmp
i pobierz CloudWatch agenta:
cd /tmp
wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
Pamiętaj użyć wersji przeznaczonej na twój system i odpowiednich komend, poniże przykłady dla innych systemów:
- https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
- https://s3.amazonaws.com/amazoncloudwatch-agent/centos/amd64/latest/amazon-cloudwatch-agent.rpm
- https://s3.amazonaws.com/amazoncloudwatch-agent/debian/amd64/latest/amazon-cloudwatch-agent.deb
- https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
Teraz możesz zainstalować agenta, używając np. RPM z opcją -U. Gdyby agent był już zainstalowany, to zostanie zaktualizowany:
sudo rpm -U amazon-cloudwatch-agent.rpm
Jeśli używasz innego systemu i pobrałeś inny typ, to możesz użyć:
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
msiexec /i amazon-cloudwatch-agent.msi
Po instalacji edytuj albo utwórz plik konfiguracyjny, który zazwyczaj powinien być w /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
. Możesz użyć np. vi albo innego dowolnego edytora:
sudo vi /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
Możesz skopiować zawartości mojego pliku konfiguracyjnego przedstawioną poniżej i na jego podstawie utworzyć swój. W moim przypadku agent będzie co 5 minut sprawdzał zajętość dysku i co 5 minut wysyłał dane do CloudWatch. Zalecam wysyłanie większej ilości informacji. Ja utworzyłem prostą konfigurację, żeby osobom początkującym ułatwić zrozumienie tematu, a plik był bardziej czytelny.
{
"agent": {
"metrics_collection_interval": 320,
"run_as_user": "cwagent"
},
"metrics": {
"append_dimensions": {
"InstanceId": "${aws:InstanceId}"
},
"metrics_collected": {
"disk": {
"measurement": [
"used_percent"
],
"metrics_collection_interval": 320,
"resources": [
"/"
]
}
}
}
}
Więcej informacji dotyczących CloudWatch znajdziesz w dokumentacji. Tworząc plik możesz także skorzystać z kreatora Create the CloudWatch agent configuration file with the wizard – Amazon CloudWatch
Teraz możesz zrestartować agenta. Żeby mieć pewność, że odczytał nową konfigurację, możesz zerknąć na logi, np. za pomocą tail:
sudo systemctl restart amazon-cloudwatch-agent
tail -f /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
Wysyłanie powiadomień
Dobra bierzmy się do pracy. Jeśli twój agent działa prawidłowo, to w ClodWatch powinieneś widzieć to, co wysyła:
Spokojnie, chwilkę może zająć, zanim pojawią się dane. Gdy wszystko będzie ok, to z menu po lewej stronie wybierz Alarms i All alarms. Możesz kliknąć Create alarm:
Wybierz metrykę, na podstawie której chcesz utworzyć alarm. W moim przypadku disk_used_percent
. Przy konfiguracji zwróć uwagę czy jest zaznaczone Static oraz Greater. Ja używam wartości 80, ponieważ chcę otrzymywać alarm, gdy miejsce na dysku będzie zajęte w 80%.
W następnym kroku wybierz topic, jeśli już kiedyś tworzyłeś albo utwórz nowy, jeśli jeszcze tego nie robiłeś i podaj adres, albo adresy email, na które ma być wysyłane powiadomienie.
Poniżej możesz także dodać akcję, która ma być wykonana. W następnym kroku podajesz nazwę dla alarmu i możesz dodać dodatkowy opis. Sprawdź w podsumowaniu czy wszystko się zgadza i utwórz alarm.
Pamiętaj, że po utworzeniu alarmu należy jeszcze potwierdzić subskrypcję. Tylko wtedy otrzymasz powiadomienia.
Podsumowanie
Jak widzisz, dodawanie alarmów jest proste i warto być informowanym o problemach.
Możesz także dodać następny alarm. Ja zalecam utworzenie kilku poziomów powiadomień. Pierwszy alarm przy zajętości dysku powyżej 80% mogą otrzymać np. wszyscy członkowie zespołu. Drugi powiedzmy, że przy zajętości dysku powyżej 90% dodatkowo team leader.
Dzięki temu team leader będzie powiadamiany tylko w poważnych przypadkach. Nie musisz podawać po kolei wszystkich adresów email, dobrym pomysłem jest utworzenie aliasu.
Ok, to wszystko w tym artykule. Dzięki, że przeczytałeś go do końca:) Mam nadzieję, że Ci się podobał. Postaram się, by nowe treści były jeszcze lepsze i by nie było denerwujących reklam na blogu. W zamian proszę, byś polecił ten blog i moje treści w sieci. Pomaga mi to utrzymać ten blog dzielić się wiedzą z większą liczbą ludzi. Jeśli chcesz zobaczyć więcej poradników, zachęcam do odwiedzenia mojego kanału na YouTube Wojciech Lepczyński – YouTube.