Requisits previs
Instal·leu Java
Instal·leu Elasticsearch
Instal·leu MongoDB
Instal·leu el servidor Graylog
Configura Graylog
Configureu Nginx com a servidor intermediari invers
Configura el tallafoc i SELinux
Conclusió
El servidor Graylog és una suite de programari de gestió de registres de codi obert preparat per a empreses. Recull registres de diverses fonts i els analitza per descobrir i resoldre problemes. El servidor Graylog és bàsicament la combinació d'Elasticsearch, MongoDB i Graylog. Elasticsearch és una aplicació de codi obert molt popular per emmagatzemar text i proporcionar capacitats de cerca molt potents. MongoDB és una aplicació de codi obert per emmagatzemar dades en format NoSQL. Graylog recull registres de diverses fonts i proporciona un tauler de control basat en web per gestionar i cercar els registres. Graylog també proporciona una API REST tant per a la configuració com per a les dades. Proporciona un tauler de control configurable que es pot utilitzar per visualitzar mètriques i observar tendències mitjançant estadístiques de camp, valors ràpids i gràfics des d'una ubicació central.
En aquest tutorial, aprendràs a instal·lar Graylog Server a CentOS 7. Aquesta guia va ser escrita per a Graylog Server 2.3, però també pot funcionar amb versions més noves. També aprendràs a instal·lar Java, Elasticsearch i MongoDB. També protegirem la instància de MongoDB i configurarem un servidor intermediari invers Nginx per al tauler de control i l'API basats en web.
Requisits previs
- Una instància de servidor Vultr CentOS 7 amb almenys 4 GB de RAM.
- Un usuari de sudo .
En aquest tutorial, utilitzarem 192.0.2.1com a adreça IP pública del servidor i graylog.example.comcom a nom de domini apuntat al servidor. Substituïu totes les ocurrències de 192.0.2.1per la vostra adreça IP pública Vultr i graylog.example.compel vostre nom de domini real.
Actualitzeu el vostre sistema base mitjançant la guia Com actualitzar CentOS 7 . Un cop actualitzat el sistema, procediu a instal·lar Java.
Instal·leu Java
Elasticsearch requereix Java 8 per executar-se. És compatible amb Oracle Java i OpenJDK, però sempre es recomana utilitzar Oracle Java quan sigui possible. Oracle ofereix paquets RPM preparats per a la instal·lació. Baixeu Oracle JDK RPM:
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"
Instal·leu el paquet RPM.
sudo yum -y install jdk-8u144-linux-x64.rpm
Si Java s'ha instal·lat correctament, hauríeu de poder verificar la seva versió.
java -version
Veureu la següent sortida.
[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)
Configureu JAVA_HOMEi JRE_HOMEvariable d'entorn executant:
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
Ara, feu servir el fitxer mitjançant l'ordre següent.
source ~/.bash_profile
Executeu l' echo $JAVA_HOMEordre per comprovar si la variable d'entorn està establerta o no.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_144/
Instal·leu Elasticsearch
Elasticsearch és una aplicació distribuïda, en temps real, escalable i d'alta disponibilitat que s'utilitza per emmagatzemar els registres i cercar-hi. Emmagatzema les dades en índexs i la cerca a través de les dades és molt ràpida. Proporciona diversos conjunts d'API, com ara l'API HTTP RESTful i l'API nativa de Java. Elasticsearch es pot instal·lar directament a través del repositori Elasticsearch. Creeu un fitxer de repositori nou per a Elasticsearch.
sudo nano /etc/yum.repos.d/elasticsearch.repo
Omple el fitxer amb el contingut següent.
[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
Importeu la clau PGP utilitzada per signar els paquets. Això garantirà la integritat dels paquets.
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Instal·leu el paquet Elasticsearch:
sudo yum -y install elasticsearch
Un cop instal·lat el paquet, obriu el fitxer de configuració predeterminat d'Elasticsearch.
sudo nano /etc/elasticsearch/elasticsearch.yml
Cerqueu la línia següent, descomenteu-la i canvieu el valor de my-applicationa graylog.
cluster.name: graylog
Podeu iniciar Elasticsearch i habilitar-lo perquè s'iniciï automàticament en el moment de l'arrencada:
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Elasticsearch s'està executant al port 9200. Comproveu que funcioni correctament executant:
curl -XGET 'localhost:9200/?pretty'
Hauríeu de veure una sortida similar a la següent.
[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"
}
Si trobeu errors, espereu uns segons i torneu-ho a provar, ja que Elasticsearch necessita temps per completar el seu procés d'inici. Elasticsearch ara està instal·lat i funciona correctament.
Instal·leu MongoDB
MongoDB és un servidor de bases de dades NoSQL gratuït i de codi obert. A diferència de la base de dades tradicional que utilitza taules per organitzar les seves dades, MongoDB està orientat a documents i utilitza documents semblants a JSON sense esquemes. Graylog utilitza MongoDB per emmagatzemar la seva configuració i meta informació. Es pot instal·lar directament a través del repositori MongoDB. Creeu un fitxer de repositori nou per a MongoDB.
sudo nano /etc/yum.repos.d/mongodb.repo
Omple el fitxer amb el contingut següent.
[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
Instal·leu MongoDB executant:
sudo yum -y install mongodb-org
Inicieu el servidor MongoDB i activeu-lo perquè s'iniciï automàticament.
sudo systemctl start mongod
sudo systemctl enable mongod
Instal·leu el servidor Graylog
Baixeu el darrer repositori per al servidor Graylog.
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.rpm
sudo yum -y update
Instal·leu Graylog executant:
sudo yum -y install graylog-server
El servidor Graylog ara està instal·lat al vostre servidor. Abans de començar-lo, haureu de configurar algunes coses.
Instal·leu la pwgenutilitat per generar contrasenyes fortes.
sudo yum -y install pwgen
Ara genereu un secret de contrasenya segura.
pwgen -N 1 -s 96
Sortiràs semblant a:
[user@vultr ~]$ pwgen -N 1 -s 96
pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
A més, genereu un hash de 256 bits per a la contrasenya de l' adminusuari root :
echo -n StrongPassword | sha256sum
Substituïu StrongPassword-la per la contrasenya que voleu establir per a l' adminusuari. Ja ho veuràs:
[user@vultr ~]$ echo -n StrongPassword | sha256sum
05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223 -
Obriu el fitxer de configuració de Graylog:
sudo nano /etc/graylog/server/server.conf
Cerqueu password_secret =, copieu i enganxeu la contrasenya generada mitjançant l' pwgenordre. Cerqueu root_password_sha2 =, copieu i enganxeu el hash SHA convertit de 256 bits de la vostra contrasenya d'administrador. Cerqueu #root_email =, elimineu els comentaris i proporcioneu la vostra adreça de correu electrònic. Deixeu de comentar i configureu la vostra zona horària a root_timezone. Per exemple:
password_secret = pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
root_email = mail@example.com
root_timezone = Asia/Kolkata
Activeu la interfície de Graylog basada en web eliminant els comentaris #web_enable = falsei establint el valor a true. També descomenta i canvia les línies següents tal com s'especifica.
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/
Deseu el fitxer i sortiu del vostre editor de text.
Reinicieu el servei Graylog executant:
sudo systemctl restart graylog-server
De manera predeterminada, la interfície web de Graylog escolta al localhostport 9000 i l'API escolta al port 9000 amb URL /api. En aquest tutorial, utilitzarem Nginx com a servidor intermediari invers perquè es pugui accedir a l'aplicació mitjançant el port HTTP estàndard. Instal·leu el servidor web Nginx executant:
sudo yum -y install nginx
Obriu l'amfitrió virtual predeterminat escrivint.
sudo nano /etc/nginx/nginx.conf
Cerqueu el serverbloc sota http, i substituïu el serverbloc sencer per les línies següents.
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;
}
}
Inicieu Nginx i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada:
sudo systemctl start nginx
sudo systemctl enable nginx
Si esteu executant un tallafoc al vostre servidor, haureu de configurar el tallafoc per establir una excepció per a determinats ports. Permet que el servei Elasticsearch i el servidor intermediari invers Nginx es connectin des de fora de la xarxa.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-port=9200/tcp
sudo firewall-cmd --reload
Si teniu SELinux habilitat al vostre sistema, haureu d'afegir algunes excepcions a les polítiques de 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
Conclusió
La instal·lació i la configuració bàsica del servidor Graylog ja s'han completat. Ara podeu accedir al servidor Graylog a http://192.0.2.1o http://graylog.example.comsi teniu DNS configurat. Inicieu sessió amb el nom d'usuari admini la versió de text sense format de la contrasenya que heu establert root_password_sha2anteriorment.
Enhorabona: teniu un servidor Graylog que funciona completament instal·lat al vostre servidor CentOS 7.