Aveti intrebari? Sunteti in locul potrivit!
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:
user@numeserver:~$ 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:
user@numeserver:~$ 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:
[user@numeserver ~]$ 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:
[user@numeserver ~]$ 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.