Docker i Portainer Nowy
Łączyć Dzienniki kontenerowe do Excela, Arkuszy i AI
Docker zapisuje dziennik dla każdego kontenera — przeszukaj wszystkie naraz. Plik json rejestruje zapisywany przez demona dziennik, dzienniki dokera eksporty, które zapisujesz ręcznie, oraz własny dziennik serwera Portainer. Skieruj strumień zapytań na folder, a każdy wiersz stanie się wierszem — zawierającym prawdziwą nazwę kontenera, jego obraz i usługę Compose, zamiast katalogu pełnego 64-znakowych identyfikatorów.
Jeden folder dzienników kontenerów staje się jedną tabelą.
Query Streams odczytuje pliki zapisane przez demona, przypina format i zwraca kolumny z kontenerem o określonej liczbie znaków obok każdego wiersza. Bez sidecara, bez potoku wysyłkowego, bez indeksu do utrzymania — a wiersz, którego parser nie może odczytać, jest przechowywany jako wiersz z uzasadnieniem, a nie po cichu usuwany.
a3f9c1…-json.logDoker
shopfront-stack_api.logeksport
portainer.logPortainerObsłużono rotacje, skompresowane archiwa i ponownie odczytane pliki
SELECT aplikacja, usługa tworzenia,
liczyć(*) AS kwestia
Z zestaw_plików.zdarzenia
GDZIE strumień = 'stderr'
GROUP BY aplikacja, usługa tworzenia
ORDER BY kwestia DESCPołącz go z bazą danych swojej aplikacji w tym samym zapytaniu
Pliki, które demon już zapisuje, teraz w postaci tabeli, na podstawie której można generować raporty
Dwa narzędzia, trzy formaty, bez sidecara
Każda karta zawiera nazwy plików odczytywanych przez Query Streams i ich lokalizację. Nie musisz zmieniać sterownika rejestrowania, aby to działało — plik json jest ustawieniem domyślnym Dockera i jest ustawieniem domyślnym obsługiwanym.
Obsługiwane dzienniki kontenerów
3 formaty · 2 narzędzia
Dokersterownik rejestrowania plików json
- Jeden
{"log","strumień","czas"}koperta na wiersz, napisana przez demona - Nazwa kontenera pochodzi od własnej nazwy Dockera
konfiguracja.v2.jsonobok kłody - Projekt/usługa „Image and Compose” w formie kolumn
- Zazwyczaj
/var/lib/docker/containers - Dołącza; ponumerowane obroty i
.gzśledzony
Dokereksport dzienników Dockera
- Pliki, które zapisałeś
dzienniki dokera --znaczniki czasu - Znaczek nanosekundowy RFC 3339, a następnie własna linia kontenera
- Linie banerów kontenerowych są pomijane ze względu na deklarację, a nie szczęście
- Dowolny folder, w którym przechowujesz eksporty
- Jeden plik na usługę; nazwa pochodzi od rdzenia pliku
PortainerDziennik serwera, konsola zerolog
portainer.loglub własnego wyjścia kontenera- Kody kolorów ANSI są usuwane przed analizą, więc poziom jest poziomem
- Ten
klucz=wartośćogon staje się kolumnami; reszta ląduje wdane - Odczytywane są również linie o różnym kształcie wbudowanego serwera tunelowego
- Znaczki z rozdzielczością minutową, odczytywane jako UTC
Nowe formaty dzienników kontenerów są dodawane z każdą wersją Agenta. Ponieważ Agenty są na bieżąco aktualizowane, format dodany później pojawia się w konektorze bez konieczności odwiedzania serwera.
dzienniki dokera Eksportuje z hosta Swarm i log serwera Portainer CE 2.39.1. Jedna rzecz, którą warto wiedzieć na początku: w Docker Desktop dla systemów Windows i Mac logi w plikach json znajdują się na maszynie wirtualnej, gdzie agent działający jako usługa nie może się z nimi połączyć. Wyeksportuj je za pomocą dzienniki dokera --znaczniki czasu i użyj drugiego profilu.
Kontenery w każdym regionie, odczyt dzienników gdzie siedzą
Kontenery rzadko działają w jednym miejscu. Host w biurze, klaster Swarm w jednym regionie chmury, pojedyncze urządzenie w innym kraju. W każdej lokalizacji działa agent sieciowy, który odczytuje pliki dziennika tam, gdzie się one znajdują, i nawiązuje połączenie z Query Streams. Z punktu widzenia zapory sieciowej jest to zwykłe połączenie wychodzące — nie ma niczego do otwarcia ani konieczności budowania sieci VPN.
dzienniki dokera eksport na usługę
wybiera numery
Trzy połączenia wychodzące, jedno miejsce do ich sprawdzania — bez portu przychodzącego, bez VPN, bez zmiany zapory sieciowej
Jeden agent na lokalizację
Agent obejmuje całą witrynę, a nie pojedynczy folder: każdy format dziennika, który chcesz tam umieścić, staje się osobnym łącznikiem zestawu plików w tym samym agencie. Standardowo jeden agent na lokalizację to jeden. W ramach darmowego poziomu działa jeden agent, a w wyższych poziomach – więcej.
1 witryna = 1 agent = wiele łączników
Nic do otwarcia
Agent nawiązuje jedno szyfrowane połączenie wychodzące, przez które zarówno żądanie wychodzące, jak i dane z powrotem są przesyłane. Nie ma potrzeby zmiany portu przychodzącego, VPN-a ani zmiany zapory sieciowej – a dane uwierzytelniające pozostają w sieci.
jedno połączenie, w obu kierunkach
Jedno zapytanie we wszystkich witrynach
Każde źródło w zapytanie federacyjne nadaje nazwę własnemu agentowi, dzięki czemu jedno polecenie może odczytać dziennik w jednym kraju i dziennik w innym, zwracając jeden wynik — lub dołączyć dowolny z nich do bazy danych. Dostępne w wersjach Business i Enterprise.
2 kraje → 1 zestaw wyników
Utrzymują się na bieżąco
Agenci aktualizują się sami, więc format dziennika kontenerów dodany w późniejszej wersji dociera do każdej witryny bez konieczności logowania się na serwerze w celu jego instalacji. To właśnie sprawia, że ściana powyżej jest punktem początkowym, a nie stałą listą.
nowe formaty pojawiają się wraz z Agentem
Nazwy, zegary i kody kolorów
Log kontenera to nie plik tekstowy z datą. Trzy rzeczy rutynowo idą nie tak, gdy próbujesz traktować go jako dane, a każda z nich jest tutaj obsługiwana poprzez deklarację, a nie przez zgadywanie.
Nazwy, nie identyfikatory szesnastkowe
Docker nadaje nazwę każdemu folderowi logów na podstawie identyfikatora kontenera, co sprawia, że zapytanie grupowe jest nieczytelne. Strumienie zapytań odczytują rekord zapisany przez Dockera obok logu i przyjmują jego prawdziwą nazwę, zachowując identyfikator jako osobną kolumnę.
a3f9c1…-json.log → aplikacja = sklep-api
Zegar demona
Kontener, który drukuje swój własny znacznik czasu w sekundach epoki, ląduje w 1970 roku, jeśli w to wierzysz. Czas zdarzenia to czas przechwycenia demona; znacznik kontenera jest przechowywany jako kolumna, a nie jest zaufany.
czas koperty → czas_wydarzenia
Kody kolorów w pliku
Rejestratory konsoli zapisują sekwencje ucieczki terminala bezpośrednio do logu. Są one usuwane przed analizą składniową, więc poziom jest odczytywany jako poziom, a nie jako poziom ujęty w znaki ucieczki — a oryginalne bajty pozostają nietknięte.
usunięto kody wyjścia → poziom = INF
Nic nie liczyło się dwa razy
Każdy plik jest oznaczany odciskiem palca na podstawie pierwszych 4 KB, dzięki czemu obrócony plik jest rozpoznawany jako ten sam plik, a nie odczytywany ponownie od góry. Przesuwające się okno duplikatu wychwytuje nakładanie się, gdy zapisujący odtwarza jego ogon.
4 KB prefiksu hash · okno 20 000 rekordów
Kolumny, które faktycznie otrzymujesz
Nie jest to kleks tekstu ze znacznikiem czasu. Każdy format jest analizowany w postaci kolumn, które można bezpośrednio filtrować, grupować i agregować — a podczas gdy kontener rejestruje ustrukturyzowany JSON, jego pola również są rozpakowywane do postaci kolumn.
Każdy rząd również niesie czas_wydarzenia, surowy znaczek, z którego został odczytany, oraz plik, z którego pochodzi. Każdy format dodaje swoją kolumnę identyfikacyjną — aplikacja dla pliku json i Portainera, pojemnik do eksportu — a wiersze pliku JSON dodatkowo zawierają obraz, compose_project, usługa_kompozycji oraz identyfikator_kontenera. Singiel wiadomość Kolumna w eksporcie jest celowa: wiersz kontenera jest zachowywany w całości, a nie odgadywany.
Gdzie mogą trafić dane z dziennika kontenera
Pliki dziennika nie są ślepą uliczką. Podłącz folder raz, a to samo połączenie tylko do odczytu będzie dostępne dla każdej powierzchni obsługiwanej przez Query Streams — bez konieczności drugiej konfiguracji, drugiej kopii danych i bez różnicy w obsłudze ze strony łącznika bazy danych.
Rejestry kontenerów do programu Excel
Microsoft Excel · Dodatek do programu Excel
Przeciągnij wyniki dziennika kontenerów na żywo bezpośrednio do arkusza kalkulacyjnego i odświeżaj je na żądanie — w programie Excel na komputerze stacjonarnym, w programie Excel Online, w programie Microsoft 365.
Jak działa ExcelRejestry kontenerów w Arkuszach Google
Dodatek Arkuszy
Uruchom zapisany dziennik kontenera z paska bocznego i upuść wiersze do arkusza. Współpracownicy korzystający z udostępnionego konta mogą je samodzielnie odświeżyć.
Jak działają Arkusze GoogleKontener rejestruje serwer MCP
Claude, klienci Cursor i MCP · Serwer MCP
Udziel asystentowi AI dostępu tylko do odczytu dziennika kontenera ze schematem potrzebnym do pisania prawidłowych instrukcji SQL — bez konieczności podawania danych uwierzytelniających w czacie.
Jak działa MCPLogi kontenerów REST API
Punkt końcowy HTTP
Opublikuj zapytanie do dziennika kontenera jako uwierzytelniony punkt końcowy JSON, który może wywołać dowolna aplikacja, ze specyfikacją OpenAPI 3.1 i gotowymi kolekcjami Postman, Insomnia i Hoppscotch. Port bazy danych nie jest otwarty.
Jak działa REST APIRejestry kontenerów do Airtable
Platforma automatyzacji
Synchronizuj wiersze dziennika kontenera z bazą Airtable zgodnie z harmonogramem lub pobieraj je za pomocą skryptu automatyzacji Airtable.
Jak działa AirtableKontenerowe kłody do Baserow
Platforma automatyzacji
Przekaż tabelę Baserow z dziennika kontenera do punktu końcowego REST — hostowanego samodzielnie lub w chmurze Baserow.
Jak działa BaserowRejestry kontenerów do SeaTable
Platforma automatyzacji
Utrzymuj bazę SeaTable na bieżąco, korzystając z danych dziennika kontenera, bez konieczności eksportowania pliku lub udostępniania bazy danych.
Jak działa SeaTableRejestry kontenerów do Smartsheet
Platforma automatyzacji
Prześlij wyniki rejestrowania kontenerów do siatki Smartsheet, aby plany i raporty były odczytywane z systemu źródłowego, a nie z eksportu z poprzedniego tygodnia.
Jak działa SmartsheetKontenerowe kłody do Anvil
Anvil Works · Platforma aplikacji
Wspieraj aplikację Anvil Python za pomocą dziennika kontenera przez punkt końcowy REST zamiast osadzać poświadczenia bazy danych w aplikacji.
Jak działa AnvilRejestry kontenerów w usłudze Power BI
Power Query M
Wklej wygenerowany kod Power Query M do Edytora zaawansowanego usługi Power BI, a raport odczyta wyniki dziennika kontenera na żywo przesyłane przez protokół HTTPS — bez sterownika ODBC i bez otwartego portu bazy danych.
Jak działa Power BIAlerty i raporty dotyczące kontenerów
Slack · Discord · E-mail · Webhook
Utwórz harmonogram zapytań do kontenera, aby wiersze były dostarczane do Slacka, Discorda, poczty e-mail lub podpisanego webhooka — albo wstrzymaj wiadomość, aż liczba wierszy, próg lub zmiana procentowa przekroczy ustawioną linię.
Jak działają alerty i raportyCzego to celowo nie robi
To nie jest żywy ogon. Query Streams odczytuje pliki w momencie ich obecności na dysku podczas uruchamiania zapytania, więc pętla restartu wyświetla się jako wiersze, a nie jako strumień, który można obserwować. Jeśli potrzebujesz alertów na temat wiersza w trakcie jego drukowania z dokładnością do mniej niż sekundy, odpowiednim narzędziem jest potok logów.
Dane wyjściowe kontenera są dowolne, co ma swoją konsekwencję, którą należy jasno powiedzieć: wszystko, co wypisuje Twoja aplikacja, trafia do tabeli. Jeśli rejestruje token lub adres e-mail klienta, ten ciąg znaków znajduje się już w pliku dziennika i będzie również w kolumnie. Nie ma mapy nagłówków, która wykluczałaby to, co ma miejsce w przypadku dziennika serwera WWW — traktuj wynikową tabelę z taką samą ostrożnością, z jaką traktowałbyś plik.
Dwa mniejsze limity, nazwane, a nie ukryte. Na dzienniki dokera eksport własnej linii kontenera jest przechowywany w całości w jednym wiadomość kolumna; ponowne analizowanie tego wewnętrznego wiersza według jego własnego formatu nie zostało jeszcze zbudowane. A opcjonalne atrybuty, które Docker może dołączyć za pomocą znacznika rejestrowania, są rozpoznawane tylko po kształcie — żaden kontener w przechwyconym korpusie ich nie używał, więc ścieżka jest zadeklarowana, a nie sprawdzona.
Reszta działa zgodnie ze standardową strukturą. Agent łączy się z serwerem wychodzącym i odczytuje pliki; nic nie jest instalowane w kontenerze, nic nie jest zapisywane z powrotem, gniazdo Dockera i API nie są modyfikowane, a dostęp jest tylko do odczytu. Okres przechowywania danych dla tego ustawienia wstępnego wynosi 30 dni i można go zmienić.
Jak to działa
Trzy kroki i nic nie zostaje zainstalowane w kontenerze.
Wskaż folder dziennika
Udziel agentowi strumieni zapytań dostępu do odczytu miejsca, w którym znajdują się już logi — /var/lib/docker/containers na hoście Docker, folderze zapisanych eksportów lub udziale, w którym je gromadzisz.
Rozpoznaje format
Query Streams identyfikuje format na podstawie zawartości wierszy, a nie nazwy pliku — dzięki temu zmieniona nazwa kopii nadal daje się odczytać, a plik, który nie pasuje do przypiętego formatu, jest parkowany z określonego powodu, zamiast uszkadzać tabelę.
Zapytaj o to lub dołącz do nas
Uruchamiaj polecenia SQL z poziomu portalu, wdrażaj je w programie Microsoft Excel lub Arkuszach Google albo używaj zapytań federacyjnych, aby łączyć dzienniki kontenerów z użytkownikami i zamówieniami w bazie danych aplikacji — za pomocą jednego polecenia.
Często zadawane pytania dotyczące dziennika kontenerów
Czy muszę zmienić sterownik rejestrujący Docker?
NIE. plik json to domyślny sterownik Dockera i jest obsługiwany. Jeśli nigdy nie konfigurowałeś rejestrowania, pliki już tam są i mają odpowiednią formę.
Jeśli zmieniłeś sterownik, dzienniki dokera --znaczniki czasu export jest właściwą drogą: działa niezależnie od sterownika, ponieważ CLI odczytuje dane za pomocą demona.
Skąd zna nazwę kontenera, a nie tylko jego identyfikator?
Docker zapisuje własny rekord kontenera w tym samym folderze co dziennik. Query Streams odczytuje nazwę z tego pliku i używa jej jako kolumny tożsamości, a obraz oraz projekt i usługa Compose są przechowywane jako kolumny obok. 64-znakowy identyfikator folderu jest zachowywany jako identyfikator_kontenera, więc nic nie jest stracone.
Jeśli rekordu brakuje, jest nieczytelny lub nie ma nazwy, używana jest nazwa folderu, a proces sprawdzania zlicza, ile razy taka sytuacja miała miejsce — dzięki temu informacja zapasowa pojawia się jako liczba, którą można sprawdzić, a nie jako cicha zamiana.
Korzystam z Docker Desktop dla Windows lub Mac. Czy to działa?
Nie bezpośrednio w logach pliku json. Docker Desktop przechowuje je na własnej maszynie wirtualnej, a agent działający jako usługa na hoście nie ma do nich dostępu.
Drogą przez to jest profil eksportowy: docker logs --timestamps <kontener> przekierowany do pliku w dowolnym folderze, który Agent może odczytać. To obsługiwany format sam w sobie, a nie obejście problemu — to ta sama metoda, z której ludzie korzystają już do przechowywania kopii dziennika po usunięciu kontenera.
Czy to dzieje się w czasie rzeczywistym?
Działa na żądanie, a nie strumieniowo. Pliki są odczytywane w momencie uruchomienia zapytania, więc nowe wiersze pojawiają się w momencie zapisu kontenerów, a plik jest pobierany — nie według stałego nocnego harmonogramu, ale też nie na bieżąco.
Aby zadać pytanie dotyczące ostatnich kilku tygodni w każdym kontenerze i zapisać odpowiedź w arkuszu kalkulacyjnym, potrzebny jest przydatny kształt i znacznie mniej maszyn niż stos kłód.
A co z Kubernetesem lub Podmanem?
Żaden z nich nie ma dziś własnego profilu i wolimy o tym mówić, niż sugerować zasięg. Obowiązuje jednak format eksportu: profil jest kluczowany do dokładnego kształtu. dzienniki dokera --znaczniki czasu zapis — nanosekundowy znacznik RFC 3339, spacja, a następnie wiersz własny kontenera, jeden plik na usługę. Narzędzia, które zapisują ten sam kształt, odczytują go.
Niezawodną metodą sprawdzenia własnych plików jest polecenie Test połączenia, które raportuje rozpoznane dane przed podjęciem jakichkolwiek działań.
Moje kontenery logują dane JSON. Czy ich pola są wyświetlane jako kolumny?
Tak, w przypadku logów w plikach JSON. Koperta demona jest rozpakowywana, a JSON kontenera w jej wnętrzu jest spłaszczany do kolumn — poziomu, rejestratora, komunikatu, hosta i usługi, tam gdzie występują. Wszystko, co nie jest mapowane na nazwaną kolumnę, jest przechowywane w dane kolumnę, a nie odrzuconą, więc nietypowe pole nadal może być przedmiotem zapytania.
Jedynym elementem, którego nie pobrano z JSON-a kontenera, jest znacznik czasu. Pochodzi on z demona, ponieważ znacznik aplikacji może mieć dowolny format, a jego błędna interpretacja powoduje niezauważone przesunięcie wiersza w czasie.
A co z wierszem, którego parser nie może odczytać?
Jest on zachowywany, a nie usuwany. Wiersz niezgodny z przypiętym formatem jest zachowywany jako surowy wiersz z dołączoną przyczyną, więc błędny wpis lub nieoczekiwana zmiana formatu jest widoczna i możliwa do sprawdzenia, a nie jako cicha luka w liczbach.
Twoje kontenery już rozmawiają
Podłącz folder dziennika i uruchom w nim pierwsze zapytanie w ciągu kilku minut. Bezpłatny plan, bez karty kredytowej, bez instalacji w kontenerze.
Tylko do odczytu · tylko połączenie wychodzące · Twoje logi pozostają na Twoim hoście












