• Graylog – zaawansowany agregator logów

    dodany przez Przemysław Sikora

    Wielokrotnie na łamach tego bloga pisałem jak ważną rolę w administracji odgrywa monitoring. Chyba się ze mną zgodzicie, prawda? O wielu przydatnych narzędziach już pisałem. Dzisiaj chciałbym wspomnieć o czymś ściśle związanym z monitorowaniem, mianowicie o logowaniu. Co nam bowiem z informacji, że np. serwer pocztowy działa, jak połowa wiadomości wysłanych z niego trafia do spamu lub nie dochodzi?

    Z pomocą przychodzą nam tu logi, ale ….. jeśli mamy naprawdę dużo serwerów, to przydałoby się narzędzie agregujące i pomagające zaprezentować je w bardziej przystępnej formie z możliwością przeszukiwania. Poniżej pokażę jak zainstalować i wstępnie skonfigurować/uruchomić Grayloga.

    Zaczynamy od instalacji bazy MongoDB. Edytujemy w tym celu plik „/etc/yum.repos.d/mongodb.repo”.

    vim /etc/yum.repos.d/mongodb.repo

    i dodajemy poniższe linie:

    [mongodb]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

    Czas na instalację

     yum install mongodb-org

    i uruchomienie

    service mongod start

    Dodajemy MongoDB do autostartu.

    chkconfig mongod on

    Teraz czas na instalację Javy.

    yum install java-1.8.0-openjdk-headless

    Czas na instalację Elasticsearcha. Dodajemy wpierw odpowiednie repozytorium.

    rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
    vim /etc/yum.repos.d/elasticsearch.repo

    [elasticsearch]
    name=Elasticsearch repository
    baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
    gpgcheck=1
    gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
    enabled=1

    Instalujemy

    yum install elasticsearch

    Podstawową i niezbędną zarazem czynnością jest ustawienie nazwy dla naszego klastra.

    vim /etc/elasticsearch/elasticsearch.yml

    cluster.name: graylog

    Startujemy

    systemctl start elasticsearch

    Dodajemy do autostartu

    systemctl enable elasticsearch

    Teraz sprawdzamy, czy działa. Wydajemy poniższą komendę

    curl -XGET http://localhost:9200/_cluster/health?pretty=true

    Powinniśmy otrzymać „w zamian” coś takiego:

    {
    "cluster_name" : "graylog",
    "status" : "green",
    "timed_out" : false,
    "number_of_nodes" : 1,
    "number_of_data_nodes" : 1,
    "active_primary_shards" : 0,
    "active_shards" : 0,
    "relocating_shards" : 0,
    "initializing_shards" : 0,
    "unassigned_shards" : 0,
    "delayed_unassigned_shards" : 0,
    "number_of_pending_tasks" : 0,
    "number_of_in_flight_fetch" : 0,
    "task_max_waiting_in_queue_millis" : 0,
    "active_shards_percent_as_number" : 100.0
    }

    To czas na instalację „właściwego” pakietu. Wpierw zaczynamy od repozytorium.

    rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm

    Retrieving https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm
    Preparing... ################################# [100%]
    Updating / installing...
    1:graylog-2.2-repository-1-5 ################################# [100%]

    Instalujemy niezbędne pakiety

    yum install graylog-server epel-release pwgen

    Generujemy klucz, który będziemy musieli wpisać jako „password_secret” w pliku /etc/graylog/server/server.conf.

    pwgen -N 1 -s 96
    vim /etc/graylog/server/server.conf

    password_secret = tQHLPyfB31Ymo84SfV3wK0QUmCWV92JlnWj0kvlPXJKPs6t4aJeKGvXI3hNVdj1RMBDRED4EOvSX40zlD0AvATFxV8ScBwRJ
    Następnie „generujemy” nasze hasło root i wpisujemy jako „root_password_sha2” w pliku /etc/graylog/server/server.conf.

    echo -n nasze_tajne_haslo_root | sha256sum

    [root@graylog ~]# echo -n nasze_tajne_haslo | sha256sum
    c50a2ab008c82ddf4f2872a2ea05d3d410e4559b5560ff35ac8d795bfceed8e8 -

    Wpisujemy gdzie trzeba, ale bez „-” na końcu.

    vim /etc/graylog/server/server.conf

    root_password_sha2 = c50a2ab008c82ddf4f2872a2ea05d3d410e4559b5560ff35ac8d795bfceed8e8
    Następnie ustawiamy kilka opcji konfiguracyjnych we wspomnianym pliku. Zakładamy, że nasza maszyna wirtualna ma prywatny IP 192.168.122.208 i jest proxowana na zewnątrz przez nginx.
    root_username = domyślnie_jest_admin_ale_może_być_cokolwiek
    rest_listen_uri = http://192.168.122.208:9000/api/
    rest_transport_uri = http://192.168.122.208:9000/api/
    web_enable = true
    web_listen_uri = http://192.168.122.208:9000/
    web_endpoint_uri = http://logi.naszadomena.pl/
    elasticsearch_network_host = 192.168.122.208

    Dodajemy grayloga do autostartu

    systemctl enable graylog-server.service

    Created symlink from /etc/systemd/system/multi-user.target.wants/graylog-server.service to /usr/lib/systemd/system/graylog-server.service.
    Odpalamy serwer grayloga.

    systemctl start graylog-server.service

    Czas na konfigurację nginx. W naszym przypadku dodajemy osobny plik „/etc/nginx/sites-enabled/logi.naszadomena.pl”

    vim /etc/nginx/sites-enabled/logi.naszadomena.pl

    z następującą treścią:
    server {
    server_name logi.naszadomena.pl;

    location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Graylog-Server-URL http://logi.naszadomena.pl/api;
    proxy_pass http://192.168.122.208:9000;
    }
    }

    Restartujemy nginx

    systemctl restart nginx

    i możemy wpisać w przeglądarce adres http://logi.naszadomena.pl. Powinien przywitać nas Graylog 🙂

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony