|||

Centralny serwer logów w sieci lokalnej [instalacja Graylog]

Ekran początkowy Graylog

Gdy wzrasta ilość systemów w sieci, wzrasta jednocześnie ilość miejsc, do których musimy zaglądać, aby przeanalizować incydent, który w każdej chwili może wystąpić. Ktoś kiedyś zauważył ten problem i tak powstały serwery logów, czyli usługi przechowujące logi z innych systemów. Takie usługi często przy wystąpieniu konkretnego logu wykonują zdefiniowaną akcję, ale głównym zadaniem jest łatwa analiza przechowywanych logów, szczególnie gdy różne systemy są często od siebie zależne i problem z działaniem konkretnej usługi może nie być spowodowany usługą, od której zależy jej działanie, ale nawet gdzieś głębiej, gdzie te usługi nie mają ze sobą bezpośredniej styczności. W tym artykule pokażę, jak zainstalować taki serwer, a za serwer logów posłuży Graylog.

Instalację w formie video obejrzysz TUTAJ 🙂

Instalacja Graylog jako kontener

W sieci mam zainstalowany serwer z usługami kontenerowymi Docker i aplikacją do zarządzania kontenerami Portainer.io. Poniższą instrukcję należy wykonać po zalogowaniu się do Portainer.io.

  1. Przejdź do konfiguracji Stacks i naciśnij przycisk Add stack.
  2. Wpisz nazwę stacku, np. graylog i w polu z definicją pliku docker-compose wklej poniższą zawartość:
version: '3'
services:
    # MongoDB: https://hub.docker.com/_/mongo/
    mongo:
      image: mongo:4.2
      volumes:
        - mongo_data:/data/db
      networks:
        - graylog
    # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/7.10/docker.html
    elasticsearch:
      image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
      volumes:
        - es_data:/usr/share/elasticsearch/data
      environment:
        - http.host=0.0.0.0
        - transport.host=localhost
        - network.host=0.0.0.0
        - "ES_JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true -Xms512m -Xmx512m"
      ulimits:
        memlock:
          soft: -1
          hard: -1
      deploy:
        resources:
          limits:
            memory: 1g
      networks:
        - graylog
    # Graylog: https://hub.docker.com/r/graylog/graylog/
    graylog:
      image: graylog/graylog:4.3.5
      volumes:
        - graylog_data:/usr/share/graylog/data
      environment:
        # CHANGE ME (must be at least 16 characters)!
        - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
        # Password: admin
        - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
        - GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
      entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 --  /docker-entrypoint.sh
      networks:
        - graylog
      restart: always
      depends_on:
        - mongo
        - elasticsearch
      ports:
        # Graylog web interface and REST API
        - 9000:9000
        # Syslog TCP
        - 1514:1514
        # Syslog UDP
        - 1514:1514/udp
        # GELF TCP
        - 12201:12201
        # GELF UDP
        - 12201:12201/udp
networks:
    graylog:
      driver: bridge
volumes:
  mongo_data:
    driver: local
  es_data:
    driver: local
  graylog_data:
    driver: local

Powyższy kod ma już skonfigurowany tryb stały i aktualnie najwyższą stabilną wersję Graylog dostępną w Docker Hubie.

  1. Otwórz terminal linuxa i wykonaj polecenie pwgen -N 1 -s 96. Wyświetlony ciąg znaków skopiuj i wklej w miejsce pogrubionej wyżej wartości somepasswordpepper.
  2. W terminalu wykonaj polecenie echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1. Wpisz hasło jakie chcesz ustawić na roota i naciśnij Enter. Podczas wprowadzania hasło jest widoczne jawnie. Skopiuj wyliczoną sumę sha256 i wklej ją zamiast pogrubionej sumy 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918.
  3. Pogrubioną wartość 127.0.0.1 zamień adresem IP serwera, na którym zainstalowany jest Docker.
  4. Przewiń stronę na sam dół i naciśnij przycisk Deploy the stack.

Po kilku minutach całe środowisko będzie gotowe. Najdłużej trwa uruchamianie kontenera z usługą Graylog i niestety pozostaje cierpliwie czekać.

Uzyskiwanie dostępu do interfejsu Graylog

  1. W przeglądarce internetowej wejdź na stronę http://adres_ip_dockera:9000.
  2. Gdy usługa będzie uruchomiona zobaczysz ekran logowania.

    Nazwa użytkownika: admin
    Hasło: zostało zdefiniowane w punkcie 4 powyższej instrukcji (domyślnie: admin)
  3. Po zalogowaniu usługa będzie przygotowywana.
  4. Jeśli wyświetli się instrukcja szybkiego startu to oznacza, że wszystko poszło dobrze. Polecam ją sobie przejrzeć.

Podobne wpisy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *