SaltStack - rejestrowanie
Rejestrowanie służy do śledzenia uruchomionych zdarzeń oprogramowania. Zdarzenie jest opisane przez opisowy komunikat, który opcjonalnie może zawierać zmienne dane. Podejście do rejestrowania soli służy do rozwiązywania problemów, z którymi możesz się spotkać. Możesz sprawdzić z określonymi poziomami dziennika.
Ustawienia konfiguracji
Przyjrzyjmy się szczegółowo różnym ustawieniom konfiguracji logowania.
PLIK DZIENNIKA
Rekordy dziennika soli są przesyłane przez plik, który zawiera nazwę ścieżki lokalnej lub lokalizację sieciową w celu identyfikacji. Ten plik jest uważany za plik dziennika.
log_file: /var/log/salt/master
Tutaj plik zależny od pliku binarnego wykonywanego w master. Podobnie możesz wykonać egzekucję również na minionie, co pokazano poniżej.
log_file: /var/log/salt/minion
Możesz także użyć adresu zdalnego. Składnia użycia adresu zdalnego to - <file | udp | tcp>: // <host | socketpath>: <port-if-required> / <log-facility>.
log_file: udp://loghost:port
W tym przypadku funkcja Log domyślnie przyjmuje wartość LOG_USER.
LOG_LEVEL
Poziomy dziennika są uporządkowane według wartości przypisanej numerycznie. Biblioteka Pythona domyślnie zdefiniowała większość poziomów rejestrowania. Oprócz tego Salt zużywa więcej poziomów. Niektóre poziomy wyjaśniono poniżej.
log_level: error; level value is 40 - Wskazuje na błąd rekordu instrukcji dziennika.
log_level: quiet; level value is 1000 - Wskazuje, że nic nie powinno być rejestrowane na tym poziomie.
log_level: info; level value is 20 - Wskazuje normalne informacje dziennika.
log_level: warn; level value is 30 - Wskazuje zapis wyciągu dziennika w momencie ostrzeżenia.
log_level: debug; level value is 10 - Informacje przydatne do debugowania zarówno implementacji soli, jak i kodu soli.
log_level: trace; level value is 5 - Bardziej szczegółowe informacje dotyczące debugowania kodu.
LOG_LEVEL_LOGFILE
Określa poziom komunikatów, które mają być wysyłane do pliku dziennika.
log_level_logfile: info
LOG_DATEFMT
Określa format daty dziennika. Domyślnie jest to przedstawione jako% Y-% m-% d% H:% M:% S.
log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'
LOG_FMT_CONSOLE
Definiuje format konsoli rejestrującej komunikaty. Sól używa zwyczajuLogRecordatrybuty, aby pokolorować wyjście dziennika konsoli. Jest zgodny z następującą składnią -
'%(colorlevel)s' # log level name colorized by level
'%(colorname)s' # colorized module name
'%(colorprocess)s' # colorized process number
'%(colormsg)s' # colorized messages name
LOG_FMT_LOGFILE
Definiuje format pliku dziennika rejestrującego komunikaty. Podstawowa składnia jest następująca -
%(asctime)s,%(msecs)03d [%(name)-17s][%(levelname)-8s] %(message)s
LOG_GRANULAR_LEVELS
Ten poziom służy do dokładniejszej kontroli poziomów rejestrowania.
log_granular_levels:
'salt': 'info'
'salt.modules': ‘trace'
Tutaj główna biblioteka soli na poziomie `` informacji '' ustawia plik salt.modules rejestrować na poziomie śledzenia.
Zewnętrzny program do obsługi logowania
Salt używa zewnętrznej obsługi dziennika LogStash i Sentry do rejestrowania. Zrozummy to szczegółowo w tym rozdziale.
LOGSTASH Handler
LogStash jest oprogramowaniem typu open source; potok bezpiecznego przetwarzania danych po stronie serwera. Rozważmy prosty program obsługi logowania UDP w Salt, który używa LogStash.
Określ następujące zmiany w głównym pliku soli -
logstash_udp_handler:
host: 127.0.0.1
port: 9999
version: 1
msg_type: logstash
Następnie dodaj zmiany w pliku konfiguracyjnym Logstash -
input {
udp {
port ⇒ 9999
codec ⇒ json
}
}
Tutaj, UDP - to wejście, które musi mieć format json_event, który jest tym, co wysyłamy.
SENTRY Logging Handler
Sentry to śledzenie błędów w czasie rzeczywistym we wdrożeniach produkcyjnych oraz informacje umożliwiające odtworzenie i naprawienie awarii. Domyślna konfiguracja w pliku głównym jest zdefiniowana poniżej.
sentry_handler:
dsn: https://pub-key:[email protected]/app-id
log_level: debug
Tutaj domyślnym poziomem rejestrowania dla programu obsługi wartownika jest ERROR, ale zdefiniowaliśmy debugowanie log_level pod kluczem konfiguracyjnym sentry_handler.