Narzędzia użytkownika

Narzędzia witryny


wiki:graylog

Graylog

Traktować jako opis, nie przepis.

Instalacja na RHEL9 i podobnych

Należy zainstalować trzy rzeczy:

  • MongoDB,
  • Datanode,
  • Graylog.

Pamiętaj, że licencja MongoDB nie pozwala na redystrybucję dla klientów, ale na swoje potrzeby można tego używać. Pakiet graylog-server zawiera Javę od Eclipse oraz forka ElasticSearch nazwanego Opensearch.

Polecam taką konfigurację sprzętową, lub wirtualną:

  • 8x CPU
  • 32 gigabajty ramu,
  • dysk co najmniej 250 gigabajtów na dane w katalogu /var/lib/graylog-datanode ; lokalizację danych można zmienić, ale mi się nie chciało.

Nie polegam tutaj na zewnętrznych repozytoriach, ponieważ serwer z Graylogiem nie ma wyjścia na internet. Można zrobić reposync MongoDB oraz Grayloga, ale niektóre pliki RPM zajmują ponad gigabajt.

Instalacja MongoDB
Instalacja Datanode

Link do pakietu RPM: https://packages.graylog2.org/repo/el/stable/6.1/x86_64/graylog-datanode-6.1.3-1.x86_64.rpm . Pobrać i zainstalować.

Zalecenia są takie, żeby dać procesom więcej pamięci. Napisać plik /etc/sysctl.d/90-graylog.conf o treści:

vm.max_map_count=262144

i zaczytać:

# sysctl -p /etc/sysctl.d/90-graylog.conf
# cat /proc/sys/vm/max_map_count
262144

Teraz można wylosować podejrzanie długie hasło:

< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;

które należy wpisać do pliku /etc/graylog/datanode/datanode.conf w linijce

password_secret = 

i uruchomić datanode:

# systemctl enable graylog-datanode
# systemctl start graylog-datanode

Źródło: https://go2docs.graylog.org/current/downloading_and_installing_graylog/red_hat_installation.htm?tocpath=Install%20Graylog%7COperating%20System%20Packages%7C_____2#InstallDataNode .


Instalacja Grayloga

Link do pliku RPM: https://packages.graylog2.org/repo/el/stable/6.1/x86_64/graylog-server-6.1.3-1.x86_64.rpm . Pobrać i zainstalować.

W pliku /etc/graylog/server/server.conf w linijce

password_secret = 

przepisać hasło z pliku /etc/graylog/datanode/datanode.conf .

Teraz wygenerować sumę hasła do Grayloga:

# echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
  [podać hasło]

Zwróconą sumę przepisać do pliku /etc/graylog/server/server.conf w linijce

root_password_sha2 =

Całościowo plik /etc/graylog/server/server.conf może tak wyglądać:

# cat /etc/graylog/server/server.conf | grep -Ev '^#|^$'
is_leader = true
node_id_file = /etc/graylog/server/node-id
password_secret = ........................
root_password_sha2 = .....................
bin_dir = /usr/share/graylog-server/bin
data_dir = /var/lib/graylog-server
plugin_dir = /usr/share/graylog-server/plugin
http_bind_address = 0.0.0.0:9000
http_enable_cors = true
stream_aware_field_types=false
trusted_proxies = 127.0.0.1/32
disabled_retention_strategies = none,close
allow_leading_wildcard_searches = false
allow_highlighting = false
field_value_suggestion_mode = on
output_batch_size = 500
output_flush_interval = 1
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
processor_wait_strategy = blocking
ring_size = 65536
inputbuffer_ring_size = 65536
inputbuffer_wait_strategy = blocking
message_journal_enabled = true
message_journal_dir = /var/lib/graylog-server/journal
lb_recognition_period_seconds = 3
mongodb_uri = mongodb://localhost/graylog
mongodb_max_connections = 1000
integrations_scripts_dir = /usr/share/graylog-server/scripts

Można już uruchomić aplikację:

# systemctl enable graylog-server
# systemctl restart graylog-server

W logu /var/log/graylog-server/server.log czasem można znaleźć linijki

2024-11-30T15:42:43.704+01:00 WARN  [IndexerClusterCheckerThread] Elasticsearch node [192.168.111.45] triggered [ES_NODE_DISK_WATERMARK_HIGH] due to low free disk space

i w takim wypadku trzeba przydzielić więcej miejsca do katalogu /var/lib/graylog-datanode.

Jeżeli Graylog uruchomił się poprawnie, we wspomnianym logu pojawi się zapis:

========================================================================================================

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 '.........'.
Try clicking on http://admin:.........@0.0.0.0.0:9000

========================================================================================================

Trzeba na chwilkę otworzyć port 9000/tcp na firewallu, żeby wejść na stronę konfiguratora i w czterech krokach utworzyć certyfikat oraz indeks w Opensearch. To nie będzie certyfikat dla strony administracyjnej Grayloga, więc nie trzeba się nim za bardzo przejmować i utworzyć jeden na 20 lat. Zamiast 0.0.0.0 trzeba napisać adres IP serwera z aplikacją. Po przejściu konfiguratora można zamknąć port 9000.

Źródło: https://go2docs.graylog.org/current/downloading_and_installing_graylog/red_hat_installation.htm?tocpath=Install%20Graylog%7COperating%20System%20Packages%7C_____2#InstallGraylog .


Proxy na Nginx

Trzeba mieć zainstalowanego Nginxa i wygenerowany / kupiony jakikolwiek certyfikat SSL.

Plik /etc/nginx/proxy_params , zawierający dosyć standardowe ustawienia:

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

client_max_body_size 64M;

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
#add_header X-Frame-Options SAMEORIGIN;
#add_header X-Content-Type-Options nosniff,sameorigin;
#add_header Content-Security-Policy "default-src 'self'";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "origin";

proxy_intercept_errors on;
#proxy_redirect off;

Zwrócić uwagę na komentarze. Uri /api nie chce mi się ładować w przeglądarce, kiedy te ustawienia są włączone. Jeszcze nie wiem, dlaczego.

Plik vhosta, na przykład /etc/nginx/conf.d/graylog.conf :

server {
  listen 80;
  server_name log1.ping.local;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl;
  server_name log1.ping.local;
  location / {
    proxy_pass http://127.0.0.1:9000;
    include proxy_params;
  }
  
  ssl_certificate_key /etc/ssl/nginx/log1.ping.local.key;
  ssl_certificate     /etc/ssl/nginx/log1.ping.local.crt;
}

I można używać Grayloga po normalnym https, który nie jest skonfigurowany w samej aplikacji.


Logi z journala

Graylog nie umie Journald i trzeba mu trochę pomóc.

W aplikacji Graylog trzeba dodać nowy „input” typu „Syslog UDP”

nasłuchujący na 0.0.0.0 na jakimś wysokim porcie typu 10010

W celu ochrony przed spamem, należy otworzyć na firewallu port 10010/udp, ale tylko dla obserwowanej maszyny. Inne maszyny będą miały nowe „inputy” na innych portach.

Na obserwowanej maszynie można zrobić nowy serwis w pliku /etc/systemd/system/journalsyslog.service :

[Unit]
Description=Send Journalctl to Syslog

[Service]
TimeoutStartSec=0
ExecStart=/bin/sh -c '/usr/bin/journalctl -o short-iso -f | ncat -u log1.ping.local 10010'

Restart=always
RestartSec=11s

[Install]
WantedBy=multi-user.target

Po uruchomieniu:

# systemctl daemon-reload
# systemctl enable journalsyslog
# systemctl restart journalsyslog

w panelu administracyjnym Grayloga będzie widać pierwsze zagregowane logi.

wiki/graylog.txt · ostatnio zmienione: 2024/12/05 16:06 przez 127.0.0.1

Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki