„Graylog“: centralizuotas žurnalų rinkimas ir analizė

Graylogyra visų funkcijų atviro kodo sprendimas, skirtas centralizuotam žurnalų rinkimui, saugojimui, vizualizavimui, filtravimui, paieškai ir analizei. Jis taip pat gali būti naudojamas atliekant stebėjimo užduotis ir siųsti įspėjimus. „Graylog“ gali rinkti žurnalus ir įvykius iš šimtų tinklo įrenginių, įskaitant „Linux“ serverius, „Windows“ serverius, tinklo įrangą ar kitą aparatinę įrangą. „Graylog“ yra galinga platforma, kuri gali saugoti terabaitus žurnalų, tuo pačiu leidžianti jų ieškoti beveik akimirksniu. Šiame vadove aprašytas „Graylog“ krūvos diegimas ir pagrindinės registravimo užduočių galimybės.

Šie komponentai yra „Graylog“ krūvos dalis:

  • Graylog Server – vizualizavimo ir konfigūravimo žiniatinklio sąsaja.
  • MongoDB – duomenų bazė, naudojama metaduomenų informacijai saugoti.
  • „ElasticSearch“ arba jos šakutė „OpenSearch“ – naudojama struktūrinių ir nestruktūruotų žurnalų saugojimui ir viso teksto paieškai.
  • Java (OpenJDK) – yra OpenSearch (ElasticSearch) vykdymo laikas.

Žurnalams saugoti naudosime OpenSearch, kuris yra nemokamas atvirojo kodo ELK kamino analogas (Elasticsearch + Logstash + Kibana).

Kaip įdiegti „Graylog Stack“ „Linux“ sistemose

„Graylog“ kamino diegimo instrukcijos kiekvienai versijai labai skiriasi. Todėl rekomenduojame rankiniu būdu pasirinkti Linux distro ir Graylog versijąhttps://go2docs.graylog.org/current/home.htmsvetainę. Šiame vadove naudojamos „Debian 12“ ir „Graylog 5.2“.

Graylog steką galima paleisti naudojant docker-compose, tačiau šiuo atveju mes apimsime visą visų komponentų diegimą.

Mes naudosime:

  • OpenJDK 17
  • OpenSearch2.x (arbaElasticsarch7.10.2 – vienintelė versija, suderinama su Graylog 5.2)
  • MongoDB5.x arba 6.x („MongoDB 7“ šiuo metu nerekomenduojama diegti)
  • Mažam diegimui „Graylog Server“ reikia mažiausiai 2 GB RAM.

Įdiekite būtinas sąlygas ir pridėkite „MongoDB 6“ atpirkimą:

$ sudo apt-get install gnupg curl
$ curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
$ echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
$ sudo apt-get update

Dabar įdiekite MongoDB paketą:

$ sudo apt-get install -y mongodb-org

Mano atveju, įdiegus Mongodb Debian 12, atsiranda klaida:

The following packages have unmet dependencies:
mongodb-org-mongos : Depends: libssl1.1 (>= 1.1.1) but it is not installable
mongodb-org-server : Depends: libssl1.1 (>= 1.1.1) but it is not installable
I had to install an additoonal libssl package:

Ištaisykite ją įdiegdami libssl paketą.

$ sudo wget https://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
$ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb

Pradėti paslaugą:

$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod.service
$ sudo systemctl restart mongod.service
$ sudo systemctl --type=service --state=active | grep mongod

Tada tęskite OpenSearch diegimą.

$ sudo apt-get update && sudo apt-get -y install lsb-release ca-certificates curl gnupg2

Pridėkite atpirkimo sandorį:

$ curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
$ sudo apt update

Sužinokite daugiau:Ką reikia žinoti apie HBO Max ir Discovery Plus susijungimą: pagrindinės įžvalgos ir turinio analizė

Pradedant nuo OpenSearch 2.12, diegimo metu turite nustatyti administratoriaus slaptažodį:

$ sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom  | head -c${1:-32}) apt-get install opensearch

Tada sukonfigūruokite „OpenSearch“ nustatymus:

$ sudo nano /etc/opensearch/opensearch.yml

Paprastai vieno mazgo konfigūracijai pakanka sukonfigūruoti šiuos parametrus:

cluster.name: graylog
node.name: ${HOSTNAME}
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
discovery.type: single-node
network.host: 0.0.0.0
action.auto_create_index: false
plugins.security.disabled: true
indices.query.bool.max_clause_count: 32768

Konfigūruokite SMTP serverio nustatymus, kurie bus naudojami el. pašto pranešimams siųsti:

transport_email_enabled = true
transport_email_hostname = smtp.gmail.com
transport_email_port = 465
transport_email_use_auth = true
transport_email_use_tls = false
transport_email_use_ssl = true
transport_email_auth_username =
transport_email_auth_password =
transport_email_subject_prefix = [graylog]
transport_email_from_email =
transport_email_web_interface_url =

Tada pakeiskite numatytuosius Java nustatymus:

$ sudo nano /etc/opensearch/jvm.options

Norėdami nurodyti, kiek atminties gali naudoti „Java“ virtualioji mašina, naudokite Xms ir Xmx parametrus. Čia rekomenduojama nustatyti pusę pagrindinio kompiuterio RAM. Pavyzdžiui, jei jūsų pagrindinis kompiuteris turi 8 GB RAM, paskirkite 4 GB čia:

-Xms4g
-Xmx4g

Pakeiskite virtualios atminties nustatymus:

$ sudo sysctl -w vm.max_map_count=262144
$ sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

Paleiskite „OpenSearch“ paslaugą:

$ sudo systemctl enable --now opensearch

Tada pereikite prieįdiegti Graylog serverį. Yra dvi „Graylog“ versijos. LaisvasGraylog Openir prenumeratos įmonėGraylog operacijos.

Norėdami įdiegti „Graylog Open“:

$ wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb
$ sudo dpkg -i graylog-5.2-repository_latest.deb
$ sudo apt-get update && sudo apt-get install graylog-server

Sukurkite slaptažodžius dviem kintamiesiems,password_secretirroot_password_sha2. Graylog be jų neprasidės.

Slaptažodis password_secret turi būti bent 64 simbolių ilgio:

$ pwgen -N 1 -s 96

Tada gaukite „Graylog“ administratoriaus slaptažodžio maišą. Ši komanda sugeneruoja įvesto slaptažodžio maišą:

$ echo -n "Enter Password: " && head -1 </dev/stdin | tr -d 'n' | sha256sum | cut -d" " -f1

Pridėkite gautas password_secret ir root_password_sha2 reikšmes/etc/graylog/server/server.conf

Nustatykite „Graylog“ žiniatinklio serverio IP adresą ir prievadąhttp_bind_address.

Paleisti „Graylog“:

$ sudo systemctl enable --now graylog-server

Darbo su „Graylog“ konfigūracija pradžia

Dabar prisijunkite prie „Graylog“ žiniatinklio sąsajos naudodami administratoriaus vartotoją ir slaptažodį, kurio maišą nurodėte konfigūracijos faile. Tačiau šis slaptažodis nebus priimtas pirmą kartą prisijungus.

Jei pažvelgsite į GrayLog serverio žurnalus, rasite įdomų pranešimą:

$ cat /var/log/graylog-server/server.log

It seems you are starting Graylog for the first time. To set up a fresh install, a setup interface has been started. You must log in to it to perform the initial configuration and continue.
Initial configuration is accessible at 0.0.0.0:9000, with username 'admin' and password 'eDLaYAlaeX'.
Try clicking on https://admin:[email protected]:9000

Norėdami prisijungti pirmą kartą, naudokite laikinąjį slaptažodį iš žurnalo failo. Naudokite paprastą pradinės konfigūracijos vedlį. Graylog duomenų mazgo režimas naudojamas kelių mazgų OpenSearch klasteriui konfigūruoti. Šį veiksmą galima praleisti, kad būtų paprasta konfigūruoti naudojant vieną žurnalo pagrindinį kompiuterį.

Tada prisijunkite prie „Graylog“ žiniatinklio sąsajos naudodamiadminnaudotojas ir slaptažodis:

Prisijungę sukurkite savo „Graylog“ vartotojąSistema->Vartotojai ir komandos. Kai kurių integruotos administratoriaus paskyros nustatymų tinkinti negalima, todėl geriau susikurti atskirą vartotojo paskyrą. Priskirkite šiam vartotojui administratoriaus vaidmenį ir nurodykite el. pašto adresą.

Dabar turime sukurtiĮėjimai(duomenų rinkėjai). Pageidautina sukurti atskirą įvestį kiekvienai įrenginių klasei („Linux“ serveriams, kompiuterių tinklo įrenginiams, „Windows“ pagrindiniams kompiuteriams ir kt.).

Sukursime aSyslog UDPįvestis Linux pagrindiniams kompiuteriams. Nurodykite jo pavadinimą ir prievadą, kuriuo Graylog serveris gaus duomenis. Kitus nustatymus palikite kaip numatytuosius.

Dabar eik įSistema->Indeksaiir sukurti atskirą indeksą Linux įrenginių klasei.

Nurodykite pavadinimą, aprašymą ir priešdėlį (pvz.,linux_indx). Konfigūruokite, kiek dienų saugoti senus žurnalus, kada ištrinti senus indeksus ir didžiausią indekso dydį.

Sukurkite atskirąSrautas kiekvienai įvestiei.Tai leidžia žurnalus iš skirtingų įrenginių klasių padalyti tarp skirtingų indeksų. Eiti įSrautas-> Sukurti srautą -> nurodykite srauto pavadinimą ir pasirinkite norimą naudoti rodyklę.

Srauto nustatymuose pridėkite naują taisyklę, nurodančią šiam srautui priskirtų žurnalų tipą. Pavyzdyje pasirinkiteSuderinti įvestį-> pasirinkite savoLinux įvestis.

Tada pradėkite srautą.

Kaip siųsti žurnalus iš Linux į Graylog

Dabar sukonfigūruokite savo kliento įrenginius siųsti įvykius ir žurnalus į „Graylog“. „Graylog“ gali gauti duomenis iš įvairių šaltinių: Filebeat, Winlogbeat, Nxlog, Syslog, Rsyslog ir kt.

Norėdami rinkti žurnalus ir siųsti juos į Graylog, galite naudotirsyslogLinux serveriuose

$ sudo apt install rsyslog

$ sudo systemctl status rsyslog

Kai rsyslog paslauga veikia, sukonfigūruokite, kuriuos žurnalus siųsti į Graylog.

$ sudo nano /etc/rsyslog.d/60-graylog.conf

Pridėkite šią eilutę prie failo:

 *.*@192.168.14.146:20514;RSYSLOG_SyslogProtocol23Format

Šiame pavyzdyje mes išsiųsime visus žurnalus syslog formatu į Graylog serverį (192.168.14.146) prie prievado, kurį nustatėte įvesties (20514).

Iš naujo paleiskite rsyslogą:

$ sudo systemctl restart rsyslog

Žurnalų paieška ir analizavimas „Graylog“.

Dabar eikite įIeškoti Graylogskirtuką, pasirinkite „Linux“ srautą ir pamatysite visus įvykius, kurie buvo gauti iš jūsų šeimininkų per paskutines 5 minutes (laiko intervalą galima keisti).

Norėdami rasti konkrečius įvykius, naudokite paprastus filtrus. Graylog paieškos juosta yra interaktyvi. Paieškos juostoje pasirenkate skirtingas įvykio ypatybes ir pasirenkate iš siūlomų parinkčių.

Pavyzdžiui, norėdami rasti visus įvykius, susijusius su nepavykusiais SSH prisijungimo prie pagrindinio kompiuterio bandymais, naudokite šį paieškos filtrą:

source:srv-ubun01 AND application_name:sshd AND message:Fail*

Ši užklausa pateikia visus žurnalus, atitinkančius visas tris sąlygas (ANDparametras). Jei AND nenurodytas, Graylog daro prielaidą, kad jūs ieškote įvykiųORrežimu.

Lentelėje bus rodomi jūsų paieškos kriterijus atitinkantys įvykiai. Galite išplėsti ir ištirti žurnalo informaciją. Graylog paieškos filtrai yra gana paprasti ir intuityviai naudojami bei tyrinėjami. Visada galite išplėsti bet kurį įvykį, peržiūrėti galimus laukus (įvykio atributus) ir naudoti jų reikšmes konkretiems įvykiams filtruoti ir ieškoti.

Graylog leidžia kurti ir tinkinti įvairias informacijos suvestines, kuriose rodoma informacija apie jus dominančius įvykius (gali apimti įvykių skaičių, prieglobas, grupės elementus, grafikus ar žemėlapius). Valdikliai naudojami prietaisų skydeliams tinkinti.

Konfigūruokite „Graylog“ įspėjimus apie įvykį

Kai įvyksta tam tikri įvykiai, „Graylog“ gali siųsti automatinius pranešimus (perspėjimus). Pavyzdžiui, noriu, kad „Graylog“ atsiųstų man el. laišką, kai kas nors prisijungia prie vieno iš mano serverių per SSH.

Eiti įPerspėjimai->Įspėjimai ir įvykiai. Skirtuke Pranešimas pridėkite el. pašto adresus, į kuriuos norite siųsti el. laiškus.

„Graylog“ turi integruotus šablonus, skirtus įspėjimams siųsti „MS Teams“ ir „Slack“. Pranešimų siuntimas iš „Graylog“ į „WhatsApp“ arba „Telegram“ pasiuntinius gali būti sukonfigūruotas naudojant papildomus papildinius.

Sukurkite užklausą ir ieškokite įvykių, apie kuriuos norite gauti pranešimus įvykio apibrėžime. Norėdami sekti SSH prisijungimus prie „Linux“ pagrindinių kompiuterių, pasirinkite atitinkamą srautą ir nurodykite paieškos užklausą:

application_name:sshd AND message:Accepted password*

Dešinėje peržiūros srityje bus rodomas jūsų kriterijus atitinkančių įvykių sąrašas. Patikrinkite, ar visi jūsų ieškomi renginiai buvo rasti. Jei ne, redaguokite paieškos užklausą.

Belieka pasirinkti pranešimo tipą ->paštu. Kai žurnaluose įvyksta tam tikras įvykis, „Graylog“ išsiųs pranešimą el. paštu.

Šiame straipsnyje apžvelgėme „Graylog“ diegimo ir naudojimo centralizuotam žurnalų rinkimui ir analizei pagrindus. Kitame straipsnyje apžvelgsime, kaip naudoti Graylog centralizuotai rinkti ir ieškoti žurnalų iš Windows serverių.

Related Posts