-
Graylog – zaawansowany agregator logów
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.ascCzas 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=1Instalujemy
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 pakietyyum 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 autostartusystemctl 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 nginxsystemctl restart nginx
i możemy wpisać w przeglądarce adres http://logi.naszadomena.pl. Powinien przywitać nas Graylog 🙂
Artykuł albo jest niedokończony albo ma zły tytuł. Opisujesz tylko jak zainstalować. Czy przedstawisz bliżej Grayloga?
Super z jednym „ale”. Artykuł albo jest niedokończony albo ma zły tytuł. Opisujesz tylko jak zainstalować Grayloga ale wcale go nie przedstawiasz.
Trzymam kciuki za kontynuację artykułu…
Skoro widzę zainteresowanie, to będzie dalszy ciąg 🙂