Diploma de Participare

5.5 – Comenzi SPL Comune & Cazuri de Utilizare

  1. Filtrarea Rezultatelor (where, search)
  • Utilizează where și search pentru a filtra datele din loguri pe baza unor condiții.
    • Exemplu: Găsirea utilizatorilor cu peste 30 de încercări eșuate de autentificare:
      • Această interogare filtrează evenimentele cu status=Failed, grupează rezultatele după câmpul user, apoi aplică o condiție care afișează doar utilizatorii cu mai mult de 30 de încercări eșuate.
      • index=”test_index” source=”secure.log” status=Failed | stats count by user | where count > 30

    • Exemplu: Găsirea încercărilor eșuate de autentificare pe un port specific.
      • index=”test_index” source=”secure.log” status=Failed | search port=1026

  1. Transformarea Datelor (stats, timechart, table)
  • Folosește comenzile de transformare pentru a analiza și afișa datele eficient.
    • stats – Agregare de date
      • Exemplu: Numără logurile per adresă IP sursă.
        • index=”test_index” source=”secure.log” status=Failed | stats count by src_ip

    • timechart – Analiză bazată pe timp
      • Exemplu: Monitorizează eșecurile de autentificare în timp.
      • index=”test_index” source=”secure.log” status=Failed | timechart span=1h count

    • table – Formatul de ieșire ca tabel
      • Exemplu: Afișează încercările de autentificare cu utilizatorul și IP-ul.
        • index=”test_index” source=”secure.log” status=Failed | table _time user src_ip status

  1. Extracția & Modificarea Câmpurilor (eval, rex, replace)
  • eval – Crearea câmpurilor noi
    • Example: Categorizează autentificările eșuate ca atac de tip brute force sau nu.
      • index=”test_index” source=”secure.log” | stats count by user | eval bruteforce=if(count > 50, „Yes”, „No”)

    • rex – Extrage câmpuri folosind Regex
      • Exemplu: Extrage adresa IP din mesajele brute ale logurilor și afișează-le ca tabel.
        • index=”test_index” source=”secure.log” | rex field=_raw „from (?<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})” | table _time, ip, user

    • replace – Modificarea valorilor câmpurilor
          • Exemplu: Convertește codurile de eroare în mesaje mai ușor de citit.
          • index=”test_index”| where match(_raw, ” 500 „) | eval modified_log=replace(_raw, ” 500 „, ” Server Error „)| rex field=modified_log „^(?<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) .* \”(?<method>\w+) (?<endpoint>[^\s]+)”| eval status=”Server Error”| table ip, method, endpoint, status
            • where match(_raw, ” 500 „) → Filtrează doar logurile care conțin codul 500, asigurând că extragem doar erorile de tip Server Error.
            • replace(_raw, ” 500 „, ” Server Error „) → Înlocuiește 500 cu „Server Error”.
            • rex extrage:
              • ip → Prima adresă IP.
              • method → Metoda HTTP (GET, POST, etc.).
              • endpoint → URL-ul cerut..
            • eval status=”Server Error” → Adaugă un câmp nou care marchează explicit Server Error.
            • table ip, method, endpoint, status → Afișează doar câmpurile extrase.