Knowledgebase

Aveti intrebari? Sunteti in locul potrivit!

Cum se instaleaza Graylog Server pe Ubuntu 16.04

Graylog Server este un software open source pentru administrarea log-urilor. Acesta colecteaza log-urile din diferite surse le analizeaza si este folosit pentru identificarea si rezolvarea acestora. Este o combinatie intre Elasticsearch, Mongo DB si Graylog. Graylog colecteaza loguri din diferite surse si ofera un dashboard de unde se poate analiza si cauta in log-uri. Graylog ofera un REST API pentru configurare si date iar dashboardul se poate configura astfel incat sa puteti vizualiza datele in statistici.

In acest tutorial va prezentam procesul de instalare pentru Graylog Server pe Ubuntu 16.04. Acest tutorial este efectuat pentru Graylog 2.3 dar poate functiona si pentru versiuni mai noi. Tot aici va prezentam modul de instalare pentru Java, Elasticsearch si MongoDB. Securizam instanta de MongoDB si setam un reverse proxy pentru Nginx pentru dashboard-ul web si API.

Aveti nevoie :

– de o instanta VPS sau un server dedicat

– un utilizator sudo

In acest tutorial utilizam IP 192.0.2.1 ca adresa publica a serverulului si graylog.example.com ca si nume al domeniului care este pointat spre server. Inlocuiti IP-ul si numele de domeniu de mai sus cu IP-ul dvs si numele domeniului pentru care setati Graylog Server.

Primul pas este sa updatati Ubuntu 16.04, dupa ce ati efectuat update-ul trecem la instalara Java.

Instalarea Java

Elasticsearch necesita Java 8 pentru executare. Suporta atat Oracle Java si OpenJDK insa este recomandat sa folositi Oracle Java .

Adaugati Oracle Java PPA la repository:

sudo add-apt-repository ppa:webupd8team/java

Actualti metadata pentru APT repository :

sudo apt update

Instalati ultima versiune stabila pentru Java 8, rulati :
sudo apt -y install oracle-java8-installer

Acceptati termenii licentei in momentul in care este afisata notificare, dupa ce a fost instalat verificati versiunea :
java -version
Ar trebui sa aveti urmatorul output:

[email protected]:~$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Setati JAVA_HOME si alte setari implicite instaland oracle-java8-set-default :
sudo apt -y install oracle-java8-set-default

Executati comanda echo $JAVA_HOME daca variabilele environment sunt setate sau nu:

[email protected]:~$ echo "$JAVA_HOME"
/usr/lib/jvm/java-8-oracle

Instalarea Elasticsearch

Elasticsearch este o aplicatie distribuita, scalabila in timp real utilizata pentru stocarea log-urilor si efectuarea cautarilor. Datele sunt stocate in index-uri si cautarea este foarte rapida. Ofera diferti set-uri de API-uri precum : HTTP RESTful API si JAVA API. Elasticsearch poate fi instalat direct din repository. Pentru a adauga Elasticsearch APT repository :

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Importati cheia PGP pentru semnarea pachetelor. Acest lucru asigura integritatea pachetelor :

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Actualizati metadata pentru APT repository:

sudo apt update

Instalati pachetul Elasticsearch :

sudo apt -y install elasticsearch

Dupa ce pachetul a fost instalat, deschideti fisierul implicit de configurare pentru Elasticsearch
sudo nano /etc/elasticsearch/elasticsearch.yml

Identificati urmatoarea linie, inlaturati comentarea acesteia si modificati valoarea din my-application in graylog
cluster.name: graylog

Puteti porni si activa Elasticsearch si seta pornirea automata la boot

sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Elasticsearch va rula pe portul 9200. Verificati daca functioneaza corect executand comanda :

curl -XGET 'localhost:9200/?pretty'

Ar trebui sa aveti un output similar ca in exemplu de mai jos:

[[email protected] ~]$ curl -XGET 'localhost:9200/?pretty'
{
  "name" : "-kYzFA9",
  "cluster_name" : "graylog",
  "cluster_uuid" : "T3JQKehzSqmLThlVkEKPKg",
  "version" : {
    "number" : "5.5.1",
    "build_hash" : "19c13d0",
    "build_date" : "2017-07-18T20:44:24.823Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

In cazul in care intampinati erori, asteptati cateva secunde si reincercati .

Instalarea MongoDB

MongoDB este o instanta de baza de date open source NoSQL. Fata de o baza de date traditionala care utilizeaza tabele pentru organizarea datelor, MongoDB foloseste fisiere JSON cu schemas. Graylog foloseste repository-ul MongoDB. Importati cheia GPG pentru a semna pachetele. Acest lucru va asigura autenticitatea pachetelor:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Creati fisierul de Repository:

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Actualizati metadata din APT repository:

sudo apt update

Instalati pachetul MongoDB:

sudo apt -y install mongodb-org

Porniti MongoDB si setati pornirea automata :
sudo systemctl start mongod
sudo systemctl enable mongod

Instalarea Graylog server

Descarcati ultima versiune de repository pentru Graylog Server:
wget https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.deb
sudo dpkg -i graylog-2.3-repository_latest.deb
sudo apt update

Instalati pachetul Graylog:

sudo apt install graylog-server

Configurarea Graylog

Instalati utilitatarul pwgen pentru generarea de parole complexe

sudo apt -y install pwgen

Acum generati o parola noua :
pwgen -N 1 -s 96

O sa aveti un output de forma:

[[email protected] ~]$ pwgen -N 1 -s 96
pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v

Deschideti fisierul de configurare Graylog:

sudo nano /etc/graylog/server/server.conf

Identificati password_secret = si copiati parola generata la pasul de mai sus. Gasiti root_password_sha2 = si copiati hash-ul SHA 256-bit pentru parola dvs. de admin. Identificati #root_email = decomentati si adaugati adresa de email. Setati time zone-ul la root_timezone . Ca exmemplu ar trebui sa aveti :

password_secret = pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
root_email = [email protected]
root_timezone = Asia/Kolkata

Salvati fisierul si iesiti din editorul de text.

Restartati serverul si activati serviciul Graylog.
sudo systemctl restart graylog-server
sudo systemctl enable graylog-server

Configurarea reverse proxy Nginx

In mod implicit interfata web Graylog face listen pe localhost pe portul 9000 si API-ul face listen pe portul 9000 cu URL-ul /api. In acest tutorial folosim Nginx ca si un reverse proxy ca aplicatia sa poate fi accesata pe un port standard HTTP. Instalti web serverul Nginx executand urmatoarele comenzi :
sudo apt -y install nginx

Deschideti fisierul de virtual host :

sudo nano /etc/nginx/sites-available/default

Inlocuiti continutul cu urmatoarele linii:

server
{
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name 192.0.2.1 graylog.example.com;

    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://$server_name/api;
      proxy_pass       http://127.0.0.1:9000;
    }
}

Porniti Nginx si setati pornirea automata la boot:
sudo systemctl restart nginx
sudo systemctl enable nginx

Concluzie

Instalarea si configurarea de baza pentru Graylog server este completa. Puteti accesa serverul Graylog la adresa IP a serverului sau domeniului setat. In cazul in care zona DNS a fost configurata, autentificati-va cu numele de utilizator admin si parola setata.