Ukládání a analýza logů
Systém pro ukládání a analýzu logů se skládá z následujících komponent: Logstash, Elasticsearch, Kibana.
Logstash
Logstash je otevřený softwarový nástroj pro příjem, analýzu a předzpracování logovacích dat. Logstash je schopný shromažďovat data z různých zdrojů a v různých formátech. Tato data může dále transformovat a odeslat do různých cílových systémů pro další zpracování a analýzu. Logstash je zvlášť užitečný pro shromažďování logů a událostí v reálném čase. Při zpracování dat umí provádět různé operace jako filtraci, výběr specifických atributů, přidávání dalších informací a transformaci dat do jiných formátů.
Elasticsearch
Elasticsearch je vysoce škálovatelný open-source full-textový vyhledávací a analytický nástroj. Je schopen uložit, prohledávat a analyzovat velké množství dat v reálném čase. Je optimalizován pro distribuované prostředí a podporuje mnoho datových typů, od textu až po geografické polohy. Jedním z klíčových vlastností Elasticsearch je jeho schopnost provádět komplexní vyhledávání pomocí dotazů, které mohou zahrnovat plnotextové vyhledávání, vyhledávání podle rozsahu a fuzzy vyhledávání. Tento nástroj je často používán v aplikacích, které vyžadují komplexní vyhledávací funkce, jako jsou webové vyhledávače, logovací a monitorovací systémy, analýza dat, a další.
Kibana
Kibana je open-source nástroj pro vizualizaci dat, který umožňuje uživatelům prozkoumávat a vizualizovat data uložená v Elasticsearch. Kibana poskytuje uživatelské rozhraní pro Elasticsearch a umožňuje uživatelům vytvářet různé druhy vizualizací, včetně grafů, tabulek, map a dalších. Umožňuje také tvorbu interaktivních dashboardů, které mohou zobrazovat mnoho různých vizualizací najednou a mohou být upraveny pro různé potřeby. Kibana také poskytuje nástroje pro správu a monitorování Elasticsearch clusterů, stejně jako nástroje pro prohlížení a analýzu logů a událostí, které byly shromážděny a zpracovány pomocí Logstash. V kombinaci s ostatními nástroji Elastic Stacku (Elasticsearch a Logstash), Kibana nabízí silný nástroj pro shromažďování, zpracování, vyhledávání a vizualizaci dat.
Konfigurace systému
Logové zprávy jsou posílány z Django aplikace do Logstash přes TCP
protokol s využitím modulu
python-logstash.
Nastavení je v souboru base.py.
{
"logstash": {
"level": "DEBUG",
"class": "logstash.TCPLogstashHandler",
"host": "logstash",
"port": 5959,
"version": 1,
"message_type": "logstash",
"fqdn": false
}
}
Níže je konfigurace systému Logstash.
input {
tcp {
port => 5959
codec => json
}
}
output {
elasticsearch {
hosts => ["IP:9200"]
index => "amcr"
password => "CHANGE_ME"
user => "amcr"
}
}
Input (vstup): - tcp: Tato část konfigurace definuje TCP jako zdroj dat. TCP je protokol, který se používá pro přenos dat z Django (viz výše). - port => 5959: Tato část konfigurace určuje, že Logstash bude naslouchat na portu 5959 pro příchozí data. - codec => json: Tato část konfigurace určuje, že příchozí data budou ve formátu JSON.
Output (výstup): - elasticsearch: Tato část konfigurace definuje Elasticsearch jako místo, kam Logstash pošle zpracovaná data. - hosts => [“IP:9200”]: Toto určuje, že Logstash pošle zpracovaná data na adresu Elasticsearch hostitele, který je na IP adrese IP a na portu 9200. Je doporučeno používat IP adresy serverů v síti (tj. začínající 192.168.) - index => “amcr”: Toto určuje, že zpracovaná data budou uložena v Elasticsearch indexu nazvaném “amcr”. - user => “amcr” a password => “CHANGE_ME”: Tyto části konfigurace definují jméno uživatele a heslo, které Logstash použije pro autentizaci u Elasticsearch.
Elasticsearch
Nastavení Elasticsearch je součástí docker-compose.yml souborů.
discovery.type=single-node: Toto nastavení říká Elasticsearch, že se jedná o jediný uzel (node).
ES_JAVA_OPTS=-Xms750m -Xmx750m: Tyto Java nastavení definují minimální (-Xms) a maximální (-Xmx) velikost paměti heap, kterou může Elasticsearch využít. V tomto případě je nastaveno na 750 megabajtů.
http.host=0.0.0.0: Toto nastavení definuje IP adresu, na které bude Elasticsearch naslouchat příchozím HTTP spojením. Hodnota 0.0.0.0 znamená, že Elasticsearch bude naslouchat na všech síťových rozhraních.
xpack.security.enabled=true: Toto nastavení aktivuje X-Pack Security, což je součást Elastic Stacku, která poskytuje různé bezpečnostní funkce, jako je autentizace, autorizace, šifrování komunikace a další.
XPACK_MONITORING_ENABLED=false: Toto nastavení deaktivuje X-Pack Monitoring. Monitoring je další součást Elastic Stacku, která poskytuje nástroje pro sledování výkonu a zdraví Elasticsearch clusteru. Cílem nastavení je snížit zatížení systému.
v elasticu je potřeba vytvořit amcr_template v Index Management - Templates. Pomocí této template se poté automaticky vytváří nové indexy pomocí politiky, která zajištuje rotaci indexů a jejich případné mazání.
Zde je vzor amcr_template
{
"settings": {
"index": {
"lifecycle": {
"name": "politika",
"rollover_alias": "amcr"
},
"number_of_replicas": "0",
"routing": {
"allocation": {
"include": {
"_tier_preference": "data_content"
}
}
}
}
},
"mappings": {
"dynamic": "false",
"dynamic_templates": [],
"properties": {
"@timestamp": {
"type": "date"
},
"@version": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"X": {
"type": "float",
"ignore_malformed": false,
"coerce": true
},
"Y": {
"type": "float"
},
"Z": {
"type": "float"
},
"adb_ident_cely": {
"type": "keyword"
},
"address": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"app": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"attachment": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"az_error": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"bottom": {
"type": "float"
},
"change": {
"type": "boolean"
},
"class_name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"close_transaction": {
"type": "boolean"
},
"columns": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"constant": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"count": {
"type": "long",
"ignore_malformed": false,
"coerce": true
},
"custom_created": {
"type": "boolean"
},
"custom_message": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"data": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"dj": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"element": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"email": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"error": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"exception": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"field_type": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"file": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"filed": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"form_error": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"format": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"geom": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"geom_sjtsk": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"geom_system": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"group": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"heslar": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"historie": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"host": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"hv_pk": {
"type": "long"
},
"ident_cely": {
"type": "keyword"
},
"ident_cely_old": {
"type": "keyword"
},
"index": {
"type": "long"
},
"info": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"initial": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"initial_record_pk": {
"type": "long"
},
"instance": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"ip": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"katastr": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"key": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"komponenta": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"large": {
"type": "boolean"
},
"left": {
"type": "float"
},
"level": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"limit": {
"type": "long"
},
"lineno": {
"type": "long"
},
"list": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"logger_name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"maximum": {
"type": "long"
},
"message": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"method": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"mime_type": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"name": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"new": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"next_url": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"notification_type": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"number": {
"type": "long",
"ignore_malformed": false,
"coerce": true
},
"old": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"option": {
"type": "boolean"
},
"path": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"pian": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"pk": {
"type": "long"
},
"process": {
"type": "long"
},
"project_ident_cely": {
"type": "keyword"
},
"projekt": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"query": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"queue": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"record": {
"type": "text",
"fields": {
"Keyword": {
"type": "text"
}
}
},
"redis": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"request": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"request_type": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"request_url": {
"type": "text"
},
"response": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"result": {
"type": "boolean"
},
"right": {
"type": "float"
},
"s_pk": {
"type": "long"
},
"signal": {
"type": "boolean"
},
"soubor": {
"type": "text",
"fields": {
"Keyword": {
"type": "keyword"
}
}
},
"source_url": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"stack_trace": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"status_code": {
"type": "long"
},
"stav": {
"type": "long"
},
"stav_old": {
"type": "text"
},
"subject": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"text": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"thread_name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"thumb_large": {
"type": "boolean"
},
"thumb_small": {
"type": "boolean"
},
"to": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"top": {
"type": "float"
},
"traceback": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"transaction": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"typ_akce": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"typ_arch_z": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"typ_vazby": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"type": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"update": {
"type": "boolean"
},
"url": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"user_active": {
"type": "boolean"
},
"user_id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"uuid": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"valid": {
"type": "boolean"
},
"validation_results": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"value": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"warning": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"zasilat_neaktivnim": {
"type": "boolean"
},
"zaznam": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"aliases": {}
}
Použité názvy atributů parametru extra v Django log
Zde je seznam doporučených jmen atributů extra při logování v Django. Je možné použít jakékoliv jiné názvy, ale obsah vyjmenovaných proměnných je indexován a je možné hodnoty dále vyhledávat nebo podle nich třídit výsledky.
Jméno proměnné |
typ |
|---|---|
adb_ident_cely |
Keyword |
address |
Text |
app |
Text |
attachment |
Text |
az_error |
Text |
bottom |
Float |
class_name |
Text |
close_transaction |
Boolean |
columns |
Text |
constant |
Text |
count |
Long |
custom_created |
Boolean |
custom_message |
Text |
data |
Text |
dj |
Text |
element |
Text |
Text |
|
error |
Text |
exception |
Text |
field_type |
Text |
file |
Text |
filed |
Text |
form_error |
Text |
format |
Text |
geom |
Text |
geom_sjtsk |
Text |
geom_system |
Text |
group |
Text |
heslar |
Text |
historie |
Text |
hv_pk |
Long |
change |
Boolean |
ident_cely |
Keyword |
ident_cely_old |
Keyword |
index |
Long |
info |
Text |
initial |
Text |
initial_record_pk |
Long |
instance |
Text |
ip |
Text |
katastr |
Text |
key |
Text |
komponenta |
Text |
large |
Boolean |
left |
Float |
limit |
Long |
list |
Text |
maximum |
Long |
method |
Text |
mime_type |
Text |
new |
Text |
next_url |
Text |
notification_type |
Text |
number |
Long |
old |
Text |
option |
Boolean |
pian |
Text |
pk |
Long |
project_ident_cely |
Keyword |
projekt |
Text |
query |
Text |
queue |
Text |
record |
Text |
redis |
Text |
request_type |
Text |
request_url |
Text |
response |
Text |
result |
Boolean |
right |
Float |
s_pk |
Long |
signal |
Boolean |
soubor |
Text |
source_url |
Text |
status_code |
Long |
stav |
Long |
stav_old |
Text |
subject |
Text |
text |
Text |
thumb_large |
Boolean |
thumb_small |
Boolean |
to |
Text |
top |
Float |
traceback |
Text |
transaction |
Text |
typ_akce |
Text |
typ_arch_z |
Text |
typ_vazby |
Text |
update |
Boolean |
user_active |
Boolean |
uuid |
Text |
valid |
Boolean |
validation_results |
Text |
value |
Text |
warning |
Text |
X |
Float |
Y |
Float |
Z |
Float |
zasilat_neaktivnim |
Boolean |
zaznam |
Text |
Seznam vyhrazených jmen
Tyto jména používá Django a neměli by se používat jako atributy extra při logování.
Jméno |
typ |
|---|---|
@timestamp |
Date |
@version |
Text |
host |
Text |
level |
Text |
lineno |
Long |
logger_name |
Text |
message |
Text |
name |
Text |
path |
Text |
stack_trace |
Text |
type |
Text |
url |
Text |
user_id |
Text |
process |
Long |
request |
Text |
thread_name |
Text |
Nesmí se také používat jména uvedená v tomto seznamu: https://docs.python.org/3/library/logging.html#logrecord-attributes
Kibana
Níže je konfigurace systému Kibana
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
monitoring.ui.container.logstash.enabled: true
elasticsearch.username: user
elasticsearch.password: CHANGE_ME
server.host: "0.0.0.0": Toto nastavení definuje IP adresu, na které bude Kibana naslouchat příchozím spojením. Hodnota 0.0.0.0 znamená, že Kibana bude naslouchat na všech dostupných síťových rozhraních.server.shutdownTimeout: "5s": Toto nastavení definuje, kolik času má Kibana k dispozici pro bezpečné ukončení své činnosti před tím, než je násilně ukončena. V tomto případě je to nastaveno na 5 sekund.elasticsearch.hosts: [ "http://elasticsearch:9200" ]: Toto nastavení definuje adresy uzlů Elasticsearch, ke kterým se Kibana připojí. V tomto případě je nastavena jedna adresa: http://elasticsearch:9200.monitoring.ui.container.elasticsearch.enabled: trueamonitoring.ui.container.logstash.enabled: true: Tyto dvě nastavení aktivují monitorování kontejnerů Elasticsearch a Logstash v rámci uživatelského rozhraní Kibany. Toto umožňuje uživatelům sledovat výkon a zdraví těchto služeb přímo z Kibany.elasticsearch.username: kibana_systemaelasticsearch.password: CHANGE_ME: Tyto dva řádky definují jméno a heslo, které Kibana použije pro připojení k Elasticsearch. Toto je součást autentizace a je důležité pro zabezpečení dat.
Nasazení systému
Po nasazení je potřeba sputit následující příkaz a nastavit hesla systémových účtů.
sudo docker exec -t -i $(sudo docker ps -q -f name=swarm_webamcr_elasticsearch) bin/elasticsearch-reset-password -u elastic -i --url http://localhost:9200
sudo docker exec -t -i $(sudo docker ps -q -f name=swarm_webamcr_elasticsearch) bin/elasticsearch-reset-password -u kibana_system -i --url http://localhost:9200
Po nastavení je nutné restartovat kontejner Kibana a vytvořit index
amcr s využitím konzole (konzoli lze otevřít kliknutím na odkaz Dev
Tool na titulní stránce).
PUT /amcr
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
}
}
Dále je nutné vytvořit roli amcr a uživatele amcr a nastavit mu
stejné heslo jako v konfiguračním souboru logstash.conf.
Vytvoření role: Klikněte na ikonu “Management” (správa) v hlavním navigačním panelu. V sekci Stack Management vyberte možnost “Security” a přejděte na Roles (role). Dále klikněte na tlačítko “Create role”. Do pole “Role name” zadejte název nové role a nastavte oprávnění. Nakonec klikněte na tlačítko “Create role” pro uložení role.
Vytvoření uživatelského účtu: Klikněte na “Users” a poté na tlačítko “Create user”. Do polí “Username” a “Password” zadejte jméno uživatele a heslo. Můžete také zadat “Full name”, “Email” a “Password confirmation”. Také můžete rozhodnout, zda chcete, aby uživatel musel změnit heslo při příštím přihlášení. V sekci “Roles” můžete vybrat jednu nebo více rolí, které chcete uživateli přiřadit. Tyto role určují, jaká oprávnění má uživatel v Elasticsearch a Kibana. Nakonec klikněte na tlačítko “Create user” pro uložení uživatele.
Práce s obrazovkou Discover
Obrazovka “Discover” v Kibana je nástroj, který umožňuje prozkoumávat a hledat data uložená v Elasticsearch. Tato obrazovka je často využívána pro zkoumání dat v reálném čase, hledání specifických záznamů, analýzu trendů a pro ladění aplikací.
Při použití obrazovky “Discover” můžete provést následující akce: -
Výběr indexu: Nejprve musíte vybrat index, který chcete prozkoumat. To
můžete udělat v pravém horním rohu obrazovky. Vyberte index amcr. -
Prohlížení a hledání dat: Poté můžete procházet dokumentu ve zvoleném
indexu. Každý záznam představuje jeden logový záznam. - Filtrace dat:
Můžete vytvářet filtry, které omezí zobrazené záznamy na ty, které
splňují určité kritéria. - Prohlížení detailů záznamu: Kliknutím na
záznam můžete zobrazit jeho detaily, včetně všech jeho polí a jejich
hodnot. - Výběr časového období: V horní části obrazovky můžete vybrat
časové období, pro které chcete data zobrazit. - Vytváření a ukládání
vyhledávání: Po vytvoření vyhledávání, které chcete znovu použít, můžete
toto vyhledávání uložit pro budoucí použití.
Dashboardy
Dashboardy v Kibana představují kolekce vizualizací a interaktivních ovládacích prvků, které jsou uspořádány na jedné stránce a slouží k monitoringu, analýze a vizualizaci dat z Elasticsearch.
Při práci s dashboardy můžete provádět následující kroky: - Vytvoření nového dashboardu: Klikněte na “Dashboard” v hlavním navigačním panelu a pak na “Create new dashboard”. - Přidání vizualizací na dashboard: Klikněte na “Add” a vyberte vizualizaci, kterou chcete přidat. Můžete přidat jakékoli vizualizace, které jste vytvořili v Kibana, včetně grafů, map, tabulek a dalších. - Úprava a uspořádání prvků na dashboardu: Prvky na dashboardu můžete přesouvat, měnit jejich velikost a upravovat jejich nastavení podle vašich potřeb. - Ukládání a sdílení dashboardu: Jakmile jste s dashboardem spokojeni, můžete ho uložit pro budoucí použití. Také ho můžete sdílet s ostatními členy svého týmu nebo vytvořit URL, které lze vložit do jiných webových stránek. - Využití filtrů a interaktivních ovládacích prvků: Dashboardy mohou obsahovat interaktivní ovládací prvky, jako jsou rozevírací seznamy nebo posuvníky, které umožňují filtrovat a prozkoumávat data na různých úrovních granularit. - Zobrazení dat v reálném čase: Některé dashboardy mohou být nastaveny tak, aby zobrazovaly data v reálném čase. To je užitečné pro monitorování výkonu systému, logování událostí nebo jakékoliv jiné aktivity, které vyžadují okamžité zobrazení dat.
Vyčištění databáze
Pokud je v databázi příliš mnoho záznamů, je možné uvolnit místo smazáním všech záznamů s úrovní DEBUG.
POST /amcr/_delete_by_query
{
"query": {
"term": {
"level.keyword": "DEBUG"
}
}
}
Kontrola stavu kontejneru
Stav kontejneru může být zkontrolován pomocí příkazu
docker inspect --format='{{json .State.Health}}' <container_name_or_id>
Stav služby ve swarm módu může být zkontrolován příkazem
- ::
docker service ps <service_name> –no-trunc