Graylog: Pradžia
Kaip pradėti naudotis Graylog
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo paruoštą naudoti Graylog cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:
- Įtrauktas neribotas ir dedikuotas SMTP el. pašto serveris.
- Lengvi atnaujinimai vienu paspaudimu.
- Pritaikomas domeno vardas, apsaugotas HTTPS (pavyzdžiui, https://logs.jusu-imone.com).
- Optimali veikla ir tvirta sauga, užtikrinta privačia ir dedikuota VM.
Taupykite laiką ir supaprastinkite savo gyvenimą: tereikia 5 minučių, kad išbandytumėte Stackhero Graylog cloud hosting sprendimą!
Pirmojo įvesties taško (input) sukūrimas Graylog
Įvesties taškas (input) yra galutinis taškas, kuriame Graylog priima jūsų žurnalus (logs). Žurnalus galite siųsti naudodami TCP arba UDP. Be to, Graylog gali rinkti žurnalų įrašus iš API, Kafka eilės, RabbitMQ serverio ir kitais būdais.
Šiame pavyzdyje sukursime Raw UDP įvestį. Pirmiausia atidarykite Graylog sąsają ir eikite į „System“, tada „Inputs“. Pasirinkite „Raw/Plaintext UDP“ ir spustelėkite „Launch new input“. Suveskite šias reikšmes ir patvirtinkite formą:
- Node: Pasirinkite savo node
- Title: RAW UDP
- Port: 5555
Toliau atidarykite terminalą savo kompiuteryje ir išsiųskite UDP žinutę į savo Graylog serverį. Nepamirškite XXXXXX pakeisti savo paslaugos domeno vardu:
- macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Linux:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
Išsiuntę žinutę, grįžkite į Graylog ir spustelėkite „Search“. Turėtumėte matyti savo žinutę 🎉
Sveikiname, ką tik išsiuntėte pirmąją žinutę į Graylog! Galite kurti papildomus įvesties taškus ir prietaisų skydelius (dashboards), pritaikytus jūsų poreikiams. Daugiau informacijos rasite oficialioje Graylog dokumentacijoje.
Graylog kodo pavyzdžiai
Keletą kodo pavyzdžių rasite mūsų Git saugykloje. Šioje saugykloje pateikiamos praktinės implementacijos ir papildomos pritaikymo galimybės, padėsiančios maksimaliai išnaudoti Graylog.
rsyslog žurnalų siuntimas į Graylog naudojant TLS šifravimą
Jei naudojate rsyslog klientą ir norite saugiai siųsti žurnalus į Graylog, atlikite šiuos veiksmus:
Neaktyvuokite jokių TLS nustatymų Graylog įvesties taške. TLS bus valdomas tiesiogiai per reverse proxy jūsų instancijoje, todėl Graylog jo netvarkys.
-
Eikite į savo Graylog paslaugos konfigūraciją Stackhero valdymo skydelyje ir įjunkite „TLS šifravimą“ Syslog TCP 514 prievadui.
-
Atnaujinkite rsyslog konfigūraciją, kaip nurodyta žemiau. Pakeiskite
<XXXXXX>.stackhero-network.comį savo instancijos host vardą:# Nustatykite TLS CA sertifikatą global( DefaultNetstreamDriver="gtls" DefaultNetstreamDriverCAFile="/etc/ssl/certs/ca-certificates.crt" ) # Siųskite visus žurnalus į nuotolinį serverį # Šiam veiksmui sukuriama disko eilė. Jei nuotolinis hostas # nepasiekiamas, žinutės kaupiamos diske ir išsiunčiamos, kai hostas vėl tampa prieinamas # Žiūrėkite https://www.rsyslog.com/doc/v8-stable/configuration/actions.html # ir https://www.rsyslog.com/doc/v8-stable/configuration/modules/omfwd.html *.* action( type="omfwd" target="<XXXXXX>.stackhero-network.com" port="514" protocol="tcp" KeepAlive="on" KeepAlive.Interval="30" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" ResendLastMSGOnReconnect="on" queue.filename="fwdRule1" # unikalus spool failų prefiksas queue.type="LinkedList" queue.maxDiskSpace="256m" queue.saveOnShutdown="on" action.resumeRetryCount="-1" action.resumeInterval="30" ) -
Paleiskite rsyslog paslaugą iš naujo ir patikrinkite konfigūraciją išsiųsdami žurnalą šia komanda:
logger This is a test
Konfigūracija baigta. Dabar jūsų žurnalai į Graylog siunčiami saugiai naudojant TLS šifravimą!
Kaip spręsti klaidą „failed to parse field [XXXX] of type [YYYY]“
Galite susidurti su tokia klaida:
org.opensearch.index.mapper.MapperParsingException: failed to parse field [time] of type [long] in document with id 'xxxx'
Šią klaidą galite matyti Stackhero valdymo skydelyje pateikiamuose žurnaluose arba Graylog administravimo panelėje, System > Overview > Indexer failures.
Ši klaida reiškia, kad žurnale lauko time reikšmė neatitinka laukiamo tipo (šiuo atveju – skaitinė „long“ tipo reikšmė). Graylog naudoja OpenSearch dinaminio žemėlapio (dynamic mapping) funkciją. Kai žurnalas siunčiamas pirmą kartą, OpenSearch bando atspėti laukų tipus. Pavyzdžiui, jei žurnale laukas time yra su skaitine reikšme 1234, OpenSearch jį apibrėžia kaip skaitinį lauką. Jei vėliau atsiunčiamas žurnalas su lauku time ir reikšme „abcd“ (eilutė), OpenSearch jį atmes, nes tikisi skaitinės reikšmės.
Atkreipkite dėmesį, kad lauko pavadinimas time naudojamas tik pavyzdžiui. Tai gali būti bet koks lauko pavadinimas ir tipas.
Norėdami išspręsti šią problemą, turite iš naujo apibrėžti lauką, kurio tikisi OpenSearch. Daugiau informacijos rasite oficialioje Graylog dokumentacijoje.
OpenSearch žemėlapio (mapping) atnaujinimas
Prieš tęsdami, Stackhero valdymo skydelyje įjunkite OpenSearch prieigą. Eikite į savo Graylog paslaugą ir spustelėkite „Configure“ mygtuką, kad aktyvuotumėte OpenSearch prieigą.
Būkite atsargūs su šiais pakeitimais – neteisinga konfigūracija gali užblokuoti jūsų OpenSearch klasterį ir sukelti duomenų praradimą. Jei nesate tikri, netęskite.
-
Apibrėžkite naują mapping. Šiame pavyzdyje laukas
timeperrašomas kaip string tipo. Galimus tipus rasite OpenSearch laukų tipų dokumentacijoje. -
Išsaugokite šį turinį faile
graylog-custom-mapping.json:{ "template": "graylog_*", "mappings": { "message": { "properties": { "time": { "type": "string", "index": "not_analyzed" } } } } } -
Išsiųskite šį failą naudodami šią curl komandą (pakeiskite
<XXXXXX>.stackhero-network.comį savo instancijos domeną):curl -u 'admin' -X PUT -d @'graylog-custom-mapping.json' -H 'Content-Type: application/json' 'https://<XXXXXX>.stackhero-network.com/opensearch/_template/graylog-custom-mapping?pretty'Turėtumėte gauti atsakymą:
{ "acknowledged": true } -
Galiausiai patikrinkite, ar mapping buvo atnaujintas, naudodami šią komandą (prireikus pakeiskite domeną):
curl -u 'admin' -X GET 'https://<XXXXXX>.stackhero-network.com/opensearch/graylog_deflector/_mapping?pretty'
Kaip spręsti klaidą „Unable to write audit log entry“
Jei matote tokią klaidą:
Unable to write audit log entry because there is no valid license
arba
Not running cleanup for auditlog entries in MongoDB because there is no valid license
Tai reiškia, kad Graylog Enterprise buvo aktyvuotas be galiojančios licencijos. Jei turite licenciją, ją galite įvesti Graylog sąsajoje. Jei licencijos neturite, tiesiog išjunkite Graylog Enterprise Stackhero valdymo skydelyje.