Mamy trzy serwery, na których działają programy w języku Python, które wykonują zadania analizy danych w ramach tmux
sesji. Obecnie używamy metody ssh'ing do każdego z nich, łącząc tmux
sesję i obserwując dane wyjściowe w linii poleceń.
Ta metoda jest nużąca, dlatego szukamy rozwiązania automatyzującego monitorowanie postępu programu (danych wyjściowych w interfejsie CLI) dla wielu serwerów jednocześnie. Idealnie chcielibyśmy mieć interfejs WWW, ale interfejs CLI byłby również doskonale odpowiedni.
Dziękuję za przeczytanie.
monitoring
guano
źródło
źródło
Odpowiedzi:
Za każdym razem, gdy uruchamiasz długo działające polecenia ad-hoc, powinieneś cofnąć się i przemyśleć swój proces, ponieważ powinno to być zautomatyzowane, w tym obsługę błędów.
Zamiast łączyć się z serwerami, aby zobaczyć status, lepszym rozwiązaniem jest wypchnięcie tych informacji. Możesz zrobić wiele różnych rzeczy, jeśli chcesz napisać kilka niestandardowych kodów, ale najprostszą rzeczą jest prawdopodobnie rozpoczęcie wysyłania danych wyjściowych przez syslog do scentralizowanego systemu rejestrowania (sam syslog, ELK lub cokolwiek innego). W ten sposób możesz monitorować wszystko z centralnej lokalizacji.
Myśląc naprzód, jeśli nie jest to jednorazowe zadanie, monitorowanie powinno zostać zautomatyzowane. Oznacza to, że nigdy nie powinieneś po prostu oglądać dzienników, aby sprawdzić, czy wszystko idzie zgodnie z planem. Zamiast tego powinieneś założyć, że są (i kontynuować z innymi pracami), dopóki alarm nie wyłączy się . Jest to inwestycja czasu w uzyskiwanie niezawodnych i szeroko zakrojonych alertów, ale gdy systemy stają się coraz bardziej złożone, to się opłaci, ponieważ nie musisz monitorować wszystkiego za każdym razem, gdy coś zmienisz .
źródło
Graylog
Ponieważ dwie osoby już doradziły ci przemyślenie twojego obecnego procesu (który popieram, ponieważ w pewnym momencie spowoduje to nieprzespane noce;)), wybiorę inną drogę i zalecę konkretne oprogramowanie, które - moim zdaniem - pasuje do większości twoje potrzeby: Graylog .
Wdrożyłem i stosowałem kilka stosów ELK zarówno do agregacji dzienników, jak i analizy biznesowej, a także prowadzę / utrzymuję graylog od około dwóch lat u mojego obecnego pracodawcy. Polecam graylog, ponieważ ma on wbudowane następujące funkcje i jest - moim zdaniem - nieco łatwiejszy w konfiguracji i utrzymaniu:
O ile rozumiem twój scenariusz, wygląda na to, że musisz działać lub otrzymywać powiadomienia o określonych zdarzeniach pojawiających się w strumieniu komunikatów dziennika. Jeśli spojrzymy na funkcje Graylog :
Aby wypróbować graylog, zaleciłbym następujące dwa kroki:
Uwaga: te dwa kroki umożliwiają zapełnianie stron najlepszych stron i powinny otrzymać co najmniej kilka przemyśleń. Nie wspominając już o tym, że graylog nie jest rozwiązaniem monitorującym, a sam graylog powinien być monitorowany za pomocą odpowiedniego narzędzia do monitorowania (np. Icinga, Prometheus, Nagios, aby wymienić tylko kilka).
źródło
Zgadzam się z @Xiong Chiamiov i chcę dać więcej wyjaśnień. Jeśli chcesz monitorować każdą linię w interfejsie CLI, sugeruję przekierowanie wszystkich danych wyjściowych do określonego pliku i błędu do innego pliku, a następnie użyj logstash lub bebe pliku, aby wysłać oba te pliki do Elasticsearch , a następnie możesz skonfigurować Logtril za pomocą Kibana umożliwia przeglądanie, analizowanie, wyszukiwanie i rejestrowanie zdarzeń z wielu hostów w czasie rzeczywistym dzięki przyjaznemu interfejsowi programistów
źródło
scentralizowany
tmux
Podczas gdy inne odpowiedzi są mądrzejsze i mądrzejsze w dłuższej perspektywie, myślę, że warto wspomnieć o szybkim, zhackowanym rozwiązaniu CLI. Uruchom
tmux
na jednym serwerze, który może dotrzeć do wszystkich pozostałych. Dobrym miejscem do tego byłoby pole skoku lub inne miejsce, w którym ludzie są często zalogowani. W ramach tego „centralnego”tmux
ssh do każdego pola w innym okienku i ogonem, wszystkie niezbędne pliki dziennika. Możesz użyć ctrl-, b "aby uzyskać więcej paneli w jednej zakładcetmux
. Teraz wszystko, co ktoś musi zrobić, aby sprawdzić, jest dołączone dotmux
sesji „centralnej” i może zobaczyć cały klaster na pierwszy rzut oka.Spędziłem dużo czasu na tworzeniu internetowych interfejsów użytkownika, nad którymi pracujesz, ale jeśli potrzebujesz go dzisiaj, zhakowanie czegoś razem
tmux
może uratować dzień.źródło