Serverul Graylog este o suită de software de gestionare a jurnalului de jurnal open source. Colectează jurnalele din diverse surse și le analizează pentru a descoperi și a rezolva problemele. Serverul Graylog este practic combinația de Elasticsearch, MongoDB și Graylog. Elasticsearch este o aplicație open source foarte populară pentru a stoca text și a oferi funcții de căutare foarte puternice. MongoDB este o aplicație open source pentru stocarea datelor în format NoSQL. Graylog colectează jurnalele din diverse surse și furnizează un tablou de bord bazat pe web pentru a gestiona și căuta prin jurnale. Graylog oferă, de asemenea, o API REST atât pentru configurare, cât și pentru date. Oferă un tablou de bord configurabil, care poate fi utilizat pentru a vizualiza valorile și pentru a observa tendințele folosind statistici de câmp, valori rapide și diagrame dintr-o locație centrală.
În acest tutorial, veți învăța să instalați Graylog Server pe CentOS 7. Acest ghid a fost scris pentru Graylog Server 2.3, dar poate funcționa și pe versiuni mai noi. Veți învăța, de asemenea, să instalați Java, Elasticsearch și MongoDB. De asemenea, vom securiza instanța MongoDB și vom configura un proxy invers Nginx pentru tabloul de bord și API-ul web.
Cerințe preliminare
- O instanță a serverului Vultr CentOS 7 cu cel puțin 4 GB RAM.
- Un utilizator sudo .
În acest tutorial, vom folosi 192.0.2.1ca adresă IP publică a serverului și graylog.example.comca nume de domeniu indicat către server. Înlocuiți toate aparițiile 192.0.2.1cu adresa dvs. publică Vultr și graylog.example.comcu numele dvs. de domeniu real.
Actualizați-vă sistemul de bază utilizând ghidul Cum actualizați CentOS 7 . După ce sistemul dvs. a fost actualizat, continuați să instalați Java.
Instalați Java
Elasticsearch necesită executarea Java 8. Acceptă atât Oracle Java cât și OpenJDK, dar este întotdeauna recomandat să utilizați Oracle Java când este posibil. Oracle oferă pachete RPM gata de instalare. Descărcați RPM Oracle JDK:
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm"
Instalați pachetul RPM.
sudo yum -y install jdk-8u144-linux-x64.rpm
Dacă Java s-a instalat cu succes, atunci ar trebui să poți verifica versiunea sa.
java -version
Veți vedea următoarea ieșire.
[user@vultr ~]$ 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)
Setarea JAVA_HOMEși JRE_HOMEvariabila de mediu rulând:
echo "export JAVA_HOME=/usr/java/jdk1.8.0_144/" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_144/jre" >> ~/.bash_profile
Acum, sursa fișierul folosind următoarea comandă.
source ~/.bash_profile
Rulați echo $JAVA_HOMEcomanda pentru a verifica dacă variabila de mediu este setată sau nu.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_144/
Instalați Elasticsearch
Elasticsearch este o aplicație distribuită, în timp real, scalabilă și extrem de disponibilă, utilizată pentru a stoca jurnalele și a căuta prin ele. Stochează datele în indexuri și căutarea prin date este foarte rapidă. Acesta oferă diverse seturi de API-uri, cum ar fi API-ul HTTP RESTful și API-ul Java nativ. Elasticsearch poate fi instalat direct prin intermediul depozitului Elasticsearch. Creați un nou fișier de depozitare pentru Elasticsearch.
sudo nano /etc/yum.repos.d/elasticsearch.repo
Populați fișierul cu următorul conținut.
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Importați cheia PGP folosită pentru semnarea pachetelor. Acest lucru va asigura integritatea pachetelor.
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Instalați pachetul Elasticsearch:
sudo yum -y install elasticsearch
După instalarea pachetului, deschideți fișierul de configurare implicit Elasticsearch.
sudo nano /etc/elasticsearch/elasticsearch.yml
Găsiți următoarea linie, decomandați-o și schimbați valoarea de la my-applicationla graylog.
cluster.name: graylog
Puteți porni Elasticsearch și puteți să îl porniți automat la momentul de pornire:
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Elasticsearch rulează acum pe portul 9200. Verificați că funcționează corect rulând:
curl -XGET 'localhost:9200/?pretty'
Ar trebui să vedeți o ieșire similară cu cea următoare.
[user@vultr ~]$ 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"
}
Dacă întâmpinați erori, așteptați câteva secunde și încercați din nou, deoarece Elasticsearch necesită timp pentru a finaliza procesul de pornire. Elasticsearch este acum instalat și funcționează corect.
Instalați MongoDB
MongoDB este un server de baze de date NoSQL gratuit și open source. Spre deosebire de baza de date tradițională care folosește tabele pentru organizarea datelor lor, MongoDB este orientat pe documente și folosește documente asemănătoare JSON fără scheme. Graylog utilizează MongoDB pentru a stoca configurația și meta informațiile sale. Poate fi instalat direct prin intermediul depozitului MongoDB. Creați un nou fișier de depozitare pentru MongoDB.
sudo nano /etc/yum.repos.d/mongodb.repo
Populați fișierul cu următorul conținut.
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
Instalați MongoDB rulând:
sudo yum -y install mongodb-org
Porniți serverul MongoDB și permiteți-l să pornească automat.
sudo systemctl start mongod
sudo systemctl enable mongod
Instalați serverul Graylog
Descărcați cel mai recent depozit pentru serverul Graylog.
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.rpm
sudo yum -y update
Instalați Graylog rulând:
sudo yum -y install graylog-server
Serverul Graylog este acum instalat pe serverul dvs. Înainte de a putea începe, va trebui să configurați câteva lucruri.
Instalați pwgenutilitarul pentru a genera parole puternice.
sudo yum -y install pwgen
Acum generează un secret de parolă puternic.
pwgen -N 1 -s 96
Vei ieși similar cu:
[user@vultr ~]$ pwgen -N 1 -s 96
pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
De asemenea, generați un hash de 256 biți pentru parola adminutilizatorului root :
echo -n StrongPassword | sha256sum
Înlocuiți StrongPasswordcu parola pe care doriți să o setați pentru adminutilizator. Vei vedea:
[user@vultr ~]$ echo -n StrongPassword | sha256sum
05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223 -
Deschideți fișierul de configurare Graylog:
sudo nano /etc/graylog/server/server.conf
Găsiți password_secret =, copiați și inserați parola generată prin pwgencomandă. Găsiți root_password_sha2 =, copiați și inserați hașa SHA de 256 biți convertită a parolei dvs. de admin Găsiți #root_email =, necomentați și furnizați adresa dvs. de e-mail. Decomandați și setați fusul orar la root_timezone. De exemplu:
password_secret = pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
root_email = [email protected]
root_timezone = Asia/Kolkata
Activați interfața Graylog bazată pe web, deconectând #web_enable = falseși setând valoarea la true. De asemenea, dezacordează și modifică următoarele linii, după cum este specificat.
rest_listen_uri = http://0.0.0.0:9000/api/
rest_transport_uri = http://45.76.214.19:9000/api/
web_enable = true
web_listen_uri = http://0.0.0.0:9000/
Salvați fișierul și ieșiți din editorul de text.
Reporniți serviciul Graylog rulând:
sudo systemctl restart graylog-server
În mod implicit, interfața web Graylog ascultă localhostportul 9000, iar API-ul ascultă portul 9000 cu URL /api. În acest tutorial, vom folosi Nginx ca proxy invers, astfel încât aplicația să poată fi accesată prin port HTTP standard. Instalați serverul web Nginx rulând:
sudo yum -y install nginx
Deschideți gazda virtuală implicită tastând.
sudo nano /etc/nginx/nginx.conf
Găsiți serverblocul de sub httpși înlocuiți întregul serverbloc cu următoarele linii.
server
{
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name graylog.example.com 192.0.2.1;
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;
}
}
Porniți Nginx și permiteți-l să pornească automat la momentul de pornire:
sudo systemctl start nginx
sudo systemctl enable nginx
Dacă executați un firewall pe serverul dvs., va trebui să configurați firewallul pentru a seta o excepție pentru anumite porturi. Permiteți serviciului Elasticsearch și proxy-ului Nginx invers să se conecteze din afara rețelei.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-port=9200/tcp
sudo firewall-cmd --reload
Dacă aveți SELinux activat pe sistemul dvs., va trebui să adăugați câteva excepții în politicile SELinux.
sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017
Concluzie
Instalarea și configurația de bază a serverului Graylog este acum finalizată. Acum puteți accesa serverul Graylog pe http://192.0.2.1sau http://graylog.example.comdacă aveți DNS configurat. Autentificați-vă folosind numele de utilizator adminși versiunea text simplu a parolei pe care ați setat-o root_password_sha2anterior.
Felicitări - aveți un server Graylog complet funcțional instalat pe serverul dvs. CentOS 7.