Graylog: Centraliseret logindsamling og analyse

Grayloger en fuldt udstyret open source-løsning til centraliseret logindsamling, lagring, visualisering, filtrering, søgning og analyse. Det kan også bruges til overvågningsopgaver og til at sende advarsler. Graylog kan indsamle logfiler og hændelser fra hundredvis af netværksenheder, herunder Linux-servere, Windows-servere, netværksudstyr eller anden hardware. Graylog er en kraftfuld platform, der kan gemme terabyte af logfiler, samtidig med at de kan søges næsten øjeblikkeligt. Udrulningen af ​​Graylog-stakken og dens grundlæggende funktioner til logføringsopgaver er dækket i denne vejledning.

Følgende komponenter er en del af Graylog-stakken:

  • Graylog Server – visualisering og konfiguration af webgrænseflade.
  • MongoDB – databasen, der bruges til at gemme metadataoplysninger.
  • ElasticSearch eller dets gaffel OpenSearch – bruges til lagring og fuldtekstsøgning i strukturerede og ustrukturerede logfiler.
  • Java (OpenJDK) – er OpenSearchs (ElasticSearchs) runtime.

For at gemme logfilerne bruger vi OpenSearch, som er en gratis open source-analog af ELK-stakken (Elasticsearch + Logstash + Kibana).

Sådan installeres Graylog Stack på Linux-systemer

Installationsvejledningen til Graylog-stakken er meget forskellige for hver version. Vi anbefaler derfor, at du manuelt vælger din Linux distro og Graylog version påhttps://go2docs.graylog.org/current/home.htmhjemmeside. Debian 12 og Graylog 5.2 bruges i denne vejledning.

Graylog-stakken kan køres via docker-compose, men i dette tilfælde dækker vi en fuld udrulning af alle komponenter.

Vi vil bruge:

  • OpenJDK 17
  • OpenSearch2.x (ellerElasticsearch7.10.2 – den eneste version, der er Graylog 5.2-kompatibel)
  • MongoDB5.x eller 6.x (MongoDB 7 anbefales i øjeblikket ikke til implementering)
  • Til en lille installation kræver Graylog Server mindst 2 GB RAM.

Installer forudsætningerne og tilføj MongoDB 6-repoen:

$ 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

Installer nu MongoDB-pakken:

$ sudo apt-get install -y mongodb-org

I mit tilfælde resulterer installation af Mongodb på Debian 12 i en fejl:

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:

Løs det ved at installere libssl-pakken.

$ 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

Start tjenesten:

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

Fortsæt derefter med OpenSearch-installationen.

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

Tilføj repoen:

$ 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

Få flere oplysninger:Hvad du behøver at vide om HBO Max og Discovery Plus Merger: Nøgleindsigt og indholdsanalyse

Fra OpenSearch 2.12 skal du angive en administratoradgangskode under installationen:

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

Konfigurer derefter OpenSearch-indstillingerne:

$ sudo nano /etc/opensearch/opensearch.yml

Det er tilstrækkeligt at konfigurere følgende parametre til en simpel enkelt-node-konfiguration:

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

Konfigurer indstillingerne for SMTP-serveren, der skal bruges til at sende e-mail-meddelelser:

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 =

Skift derefter standard Java-indstillingerne:

$ sudo nano /etc/opensearch/jvm.options

Brug Xms- og Xmx-parametrene til at angive, hvor meget hukommelse Java Virtual Machine kan bruge. Det anbefales, at halvdelen af ​​værtens RAM indstilles her. For eksempel, hvis din vært har 8 GB RAM, skal du tildele 4 GB her:

-Xms4g
-Xmx4g

Skift indstillinger for virtuel hukommelse:

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

Start OpenSearch-tjenesten:

$ sudo systemctl enable --now opensearch

Fortsæt derefter tilinstaller Graylog-serveren. Der er to versioner af Graylog. Den frieGraylog Openog den abonnementsbaserede virksomhedGraylog Operations.

Sådan installerer du 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

Opret adgangskoder til to variabler,password_secretogroot_password_sha2. Graylog starter ikke uden dem.

Adgangskoden password_secret skal være på mindst 64 tegn:

$ pwgen -N 1 -s 96

Hent derefter Graylog-administratoradgangskode-hashen. Følgende kommando genererer en hash af den adgangskode, du indtastede:

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

Tilføj de resulterende password_secret og root_password_sha2 værdier til/etc/graylog/server/server.conf

Indstil Graylog-webserverens IP-adresse og port indhttp_bind_address.

Start Graylog:

$ sudo systemctl enable --now graylog-server

Kom godt i gang med Graylog-konfiguration

Log nu ind på Graylog-webgrænsefladen med den admin-bruger og adgangskode, hvis hash du har angivet i konfigurationsfilen. Denne adgangskode vil dog ikke blive accepteret første gang du logger ind.

Hvis du ser på GrayLog-serverloggene, vil du finde en interessant besked:

$ 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

Brug den midlertidige adgangskode fra logfilen til at logge ind for første gang. Brug den enkle indledende konfigurationsguide. Graylog-dataknudetilstand bruges til at konfigurere en OpenSearch-klynge med flere knudepunkter. Dette trin kan springes over for enkel konfiguration med en enkelt logvært.

Log derefter ind på Graylog-webgrænsefladen ved hjælp afadminbruger og adgangskode:

Når du er logget ind, skal du oprette din Graylog-bruger underSystem->Brugere og teams. Nogle indstillinger for den indbyggede Admin-konto kan ikke tilpasses, så det er bedre at oprette en separat brugerkonto. Tildel administratorrollen til denne bruger, og angiv en e-mailadresse.

Nu skal vi skabeIndgange(dataindsamlere). Det er at foretrække at oprette et separat input for hver enhedsklasse (Linux-servere, computernetværksenheder, Windows-værter osv.).

Vi vil skabe enSyslog UDPinput til Linux-værter. Angiv dens navn og den port, som Graylog-serveren vil modtage data på. Lad de andre indstillinger være standard.

Gå nu tilSystem->Indeksog opret et separat indeks for Linux-enhedsklassen.

Angiv et navn, en beskrivelse og et præfiks (f.eks.linux_indx). Konfigurer, hvor mange dage gamle logfiler skal opbevares, hvornår gamle indekser skal slettes, og den maksimale indeksstørrelse.

Opret en separatStream for hver indgang.Dette gør det muligt at opdele logfiler fra forskellige enhedsklasser mellem forskellige indekser. Gå tilStrøm-> Opret strøm -> angiv navnet på strømmen og vælg det indeks, du vil bruge.

I Stream-indstillingerne skal du tilføje en ny regel, der angiver typen af ​​logfiler, der er tildelt denne stream. I eksemplet skal du vælgeMatch input-> vælg dinLinux input.

Start derefter streamen.

Sådan sender du logfiler fra Linux til Graylog

Konfigurer nu dine klientenheder til at sende hændelser og logfiler til Graylog. Graylog kan modtage data fra forskellige kilder: Filebeat, Winlogbeat, Nxlog, Syslog, Rsyslog osv.

For at indsamle logfiler og sende dem til Graylog, kan du brugersyslogpå Linux-servere

$ sudo apt install rsyslog

$ sudo systemctl status rsyslog

Når rsyslog-tjenesten kører, skal du konfigurere hvilke logfiler, der skal sendes til Graylog.

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

Tilføj følgende linje til filen:

 *.*@192.168.14.146:20514;RSYSLOG_SyslogProtocol23Format

I dette eksempel vil vi sende alle logfiler i syslog-format til Graylog-serveren (192.168.14.146) på den port, du indstiller til input (20514).

Genstart rsyslog:

$ sudo systemctl restart rsyslog

Søgning og analyse af logfiler i Graylog

Gå nu tilSøg i Graylogfanen, vælg 'Linux'-strømmen, og du vil se alle de begivenheder, der er modtaget fra dine værter i de sidste 5 minutter (tidsintervallet kan ændres).

Brug simple filtre til at finde specifikke begivenheder. Graylog-søgelinjen er interaktiv. I søgefeltet vælger du forskellige begivenhedsegenskaber og vælger fra de foreslåede muligheder.

For at finde alle hændelser relateret til mislykkede SSH-forbindelsesforsøg til en vært, skal du f.eks. bruge følgende søgefilter:

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

Denne forespørgsel returnerer alle logfiler, der opfylder alle tre betingelser (denANDparameter). Hvis AND ikke er angivet, antager Graylog, at du søger efter begivenheder iORmode.

Tabellen viser begivenheder, der matcher dine søgekriterier. Du kan udvide og udforske logdetaljer. Søgefiltrene i Graylog er ret enkle og intuitive at bruge og udforske. Du kan altid udvide enhver hændelse, se de tilgængelige felter (hændelsesattributter) og bruge deres værdier til at filtrere og søge efter specifikke hændelser.

Graylog gør det muligt at oprette og tilpasse forskellige dashboards, der viser oplysninger om begivenheder, der interesserer dig (kan omfatte hændelsestællinger, værter, gruppeelementer, grafer eller kort). Widgets bruges til at tilpasse dashboards.

Konfigurer Graylog-advarsler ved hændelse

Når visse hændelser opstår, kan Graylog sende automatiske meddelelser (alarmer). For eksempel vil jeg have, at Graylog sender mig en e-mail, når nogen logger på en af ​​mine servere via SSH.

Gå tilAdvarsler->Alarmer og begivenheder. Tilføj e-mail-adresser til at sende e-mail til under fanen Meddelelse.

Graylog har indbyggede skabeloner til at sende advarsler til MS Teams og Slack. Afsendelse af beskeder fra Graylog til WhatsApp eller Telegram messengers kan konfigureres ved hjælp af yderligere plugins.

Opret en forespørgsel for at søge efter begivenheder, du vil have besked om i begivenhedsdefinitionen. For at spore SSH-login til Linux-værter skal du vælge den relevante strøm og angive en søgeforespørgsel:

application_name:sshd AND message:Accepted password*

En liste over begivenheder, der matcher dine kriterier, vises i den højre forhåndsvisningsrude. Tjek, at alle de begivenheder, du leder efter, er fundet. Hvis ikke, rediger din søgeforespørgsel.

Tilbage er blot at vælge typen af ​​meddelelse ->e-mail. Når en bestemt hændelse opstår i logfilerne, sender Graylog en e-mail-meddelelse.

I denne artikel har vi dækket det grundlæggende i implementering og brug af Graylog til centraliseret logindsamling og -analyse. I den næste artikel vil vi se på, hvordan du bruger Graylog til centralt at indsamle og søge i logfiler fra Windows-servere.

Related Posts