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ą!

Įvestis yra galinis taškas, kuriame Graylog gauna jūsų žurnalus. Galite siųsti žurnalus 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 neapdorotą UDP įvestį. Norėdami pradėti, 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ą:

  1. Node: Pasirinkite savo mazgą
  2. Title: RAW UDP
  3. Port: 5555

Tada atidarykite terminalą savo kompiuteryje ir išsiųskite UDP žinutę į savo Graylog serverį. Nepamirškite pakeisti XXXXXX 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 pamatyti savo žinutę 🎉

Sveikiname, jūs išsiuntėte savo pirmąją žinutę į Graylog! Nedvejodami kurkite papildomas įvestis ir prietaisų skydelius, pritaikytus jūsų poreikiams. Daugiau informacijos galite rasti Graylog oficialioje dokumentacijoje.

Keletas kodo pavyzdžių yra mūsų Git saugykloje. Ši saugykla siūlo praktinius įgyvendinimus ir papildomas pritaikymo galimybes, padedančias maksimaliai išnaudoti Graylog.

Jei turite rsyslog klientą ir norite saugiai siųsti žurnalus į Graylog, atlikite šiuos veiksmus:

Neaktyvinkite jokių TLS parinkčių Graylog įvestyje. TLS bus tiesiogiai valdomas atvirkštinio tarpinio serverio jūsų instancijoje, kad Graylog jo neapdorotų.

  1. Eikite į savo Graylog paslaugos konfigūraciją Stackhero prietaisų skydelyje ir įjunkite "TLS encryption" Syslog TCP prievadui 514.

  2. Atnaujinkite savo rsyslog konfigūraciją, kaip nurodyta žemiau. Pakeiskite <XXXXXX>.stackhero-network.com savo instancijos pagrindiniu vardu:

    # Apibrėžti TLS CA sertifikatą
    global(
      DefaultNetstreamDriver="gtls"
      DefaultNetstreamDriverCAFile="/etc/ssl/certs/ca-certificates.crt"
    )
    
    # Siųsti visus žurnalus į nuotolinį serverį
    # Šiai veiklai sukuriama disko eilė. Jei nuotolinis kompiuteris yra
    # neprisijungęs, žinutės yra eilėje diske ir siunčiamos, kai jis vėl tampa prieinamas
    # Žr. 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 pavadinimo priešdėlis spūlės failams
      queue.type="LinkedList"
      queue.maxDiskSpace="256m"
      queue.saveOnShutdown="on"
      action.resumeRetryCount="-1"
      action.resumeInterval="30"
    )
    
  3. Perkraukite savo rsyslog paslaugą ir patikrinkite konfigūraciją, išsiųsdami žurnalą naudodami komandą:

    logger This is a test
    

Tai užbaigia nustatymą. Dabar saugiai siunčiate žurnalus į Graylog naudodami TLS šifravimą!

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 prietaisų skydelyje pateiktuose žurnaluose arba Graylog administravimo skydelyje, skiltyje System > Overview > Indexer failures.

Ši klaida rodo, kad žurnalas buvo išsiųstas su lauko time verte, kuri neatitinka laukiamo tipo (šiuo atveju, skaitinės "long" tipo vertės). Graylog naudoja OpenSearch dinaminio žemėlapio funkciją. Kai žurnalas siunčiamas pirmą kartą, OpenSearch bando atspėti laukų tipus. Pavyzdžiui, jei žurnale yra laukas time su skaitine verte 1234, OpenSearch jį apibrėžia kaip skaitinį lauką. Jei kitas žurnalas siunčiamas su lauku time, nustatytu kaip "abcd", eilutė, OpenSearch jį atmes, nes tikisi skaitinės vertės.

Atminkite, kad lauko pavadinimas time naudojamas tik iliustracijai. Tai gali būti bet koks lauko pavadinimas ir tipas.

Norėdami išspręsti šią problemą, turite iš naujo apibrėžti tipą, kurio tikisi OpenSearch. Daugiau informacijos rasite oficialioje Graylog dokumentacijoje.

Prieš tęsdami, įjunkite OpenSearch prieigą Stackhero prietaisų skydelyje. Eikite į savo Graylog paslaugą ir spustelėkite "Configure" mygtuką, kad aktyvuotumėte OpenSearch prieigą.

Būkite atsargūs su šiais pakeitimais, nes neteisingos konfigūracijos gali užblokuoti jūsų OpenSearch klasterį ir galimai sukelti duomenų praradimą. Jei nesate tikri, netęskite.

  1. Apibrėžkite savo naują žemėlapį. Šiame pavyzdyje mes iš naujo apibrėžiame lauką time, kad jis būtų eilutės tipo. Galimus tipus galite rasti OpenSearch laukų tipų dokumentacijoje.

  2. Išsaugokite šį turinį faile pavadinimu graylog-custom-mapping.json:

    {
      "template": "graylog_*",
      "mappings": {
        "message": {
          "properties": {
            "time": {
              "type": "string",
              "index": "not_analyzed"
            }
          }
        }
      }
    }
    
  3. Išsiųskite šį failą naudodami šią curl komandą (pakeiskite <XXXXXX>.stackhero-network.com savo instancijos domeno vardu):

    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ą kaip:

    {
      "acknowledged": true
    }
    
  4. Galiausiai, patikrinkite, ar žemėlapis buvo atnaujintas su šia komanda (pakeiskite domeną, jei reikia):

    curl -u 'admin' -X GET 'https://<XXXXXX>.stackhero-network.com/opensearch/graylog_deflector/_mapping?pretty'
    

Klaidos "Unable to write audit log entry" tvarkymas

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 įvyksta, nes Graylog Enterprise buvo aktyvuotas be galiojančios licencijos. Jei turite licenciją, galite ją įvesti Graylog sąsajoje. Jei neturite licencijos, tiesiog išjunkite Graylog Enterprise Stackhero prietaisų skydelyje.