Installazione e Configurazione di Graylog Server su CentOS 7

In questo articolo andremo a descrivere come installare e configurare la piattaforma di gestione log Graylog su CentOS 7.

Consideriamo di partire da una macchina CentOS 7 preinstallata ( qui l’articolo per l’installazione, considerare di allocare 4GB di RAM almeno) ed aggiorniamola

yum update

per il funzionamento di alcuni componenti è necessario installare la JDK (Java Development Kit)

yum install java-1.8.0-openjdk-headless

il primo componente dell’architettura da installare è il database NoSQL MongoDB trattato in un precedente articolo.

Il componente MongoDB è utilizzato dalla piattaforma Graylog per salvare i dati relativi alle configurazioni, la verifica di una corretta installazione è

mongo

> db.version()

4.0.9

continuiamo l’installazione con il componente Elasticsearch, anche in questo caso negli articoli precedenti era stata trattata l’installazione (qui l’ articolo).

Per verificare il corretto funzionamento eseguiamo la curl

curl -X GET "localhost:9200"

personalizziamo il cluster ( anche se per i nostri scopi avrà solo un nodo) modificando il file di configurazione

vim /etc/elasticsearch/elasticsearch.yml

ed impostiamo  i seguenti paramentri

cluster.name: graylog

network.host: ip_server

systemctl restart elasticsearch

per la verifica dello stato del cluster eseguiamo

curl -XGET 'http://ip_server:9200/_cluster/health?pretty=true'

{
“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
}

la funzione di Elasticsearch è salvare sotto un indice specifico tutti i log dei server da monitorare e quindi renderli facilmente ricercabili.

A questo punto installiamo Graylog, scarichiamo ed installiamo il repository

rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpm

installiamo Graylog server

yum install graylog-server

systemctl enable graylog-server.service

systemctl start graylog-server.service

Modifichiamo il file di configurazione

vim /etc/graylog/server/server.conf

impostiamo obbligatoriamente il parametro password_secretroot_password_sha2 per l’avvio dell’applicativo Graylog, per il primo parametro come descritto nel file .conf è necessario impostare una password a 64 caratteri

yum install epel-release

yum install pwgen

pwgen -N 1 -s 96

q8EPLsHzXDTPre6VA0DxbWzY6Wd8VHiwN6R849pw40z63fkl4X07oBI2oDKzlvdGNBk4vbk50IePk2gV4QT84BWZ3mH5iYI0

ed impostiamo password_secret, mentre per il secondo impostiamo una root password con l’algoritmo di hash a 256 bit

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

viene richiesto di inserire la password e successivamente convertita, quindi la inseriamo nel file di configurazione la password.

In ultimo nel file di configurazione impostiamo il paramentro

http_bind_address = ip_server:9000

elasticsearch_hosts = http://ip_server:9200

e riavviamo

systemctl restart elasticsearch

systemctl restart graylog-server

avremo che il sistema sarà ok quando non avremo errori di collegamento ad Elasticsearch ed avremo il seguente messaggio

2019-05-02T17:47:45.777+02:00 INFO [ServerBootstrap] Graylog server up and running.

Per poter accedere alla piattaforma web avremmo necessità di abilitare la porta di default di Graylog

firewall-cmd --permanent --add-port=9000/tcp

firewall-cmd --reload

Adesso collegandoci al seguente indirizzo http://ip_server:9000

installazione graylog su centos 7

per accedere utilizziamo l’utente admin e la password inserita nel file di configurazione in sha 256 bit ed avremo

installazione graylog su centos 7

Per poter iniziare a ricevere log da altri server abbiamo la necessità di configurare gli input ( sono i punti di ricezione log) del nodo (il server in questione) di riferimento, creiamo un input da interfaccia grafica, in particolare da System–> Inputs

installazione graylog su centos 7

consideriamo il caso esempio di ricezione log dal demone rsyslog di CentOS, quindi dal menu a tendina selezioniamo Syslog UDP e successivamente “Launch new input“, definiamo l’input

installazione graylog su centos 7

impostiamo l’input globale, il titolo e una porta non standard ad esempio la 10514.

Impostiamo a livello firewall lato server Graylog l’apertura della porta

firewall-cmd --permanent --add-port=10514/udp

firewall-cmd --reload

mentre per quanto riguarda il server CentOS da monitorare, impostiamo il demone rsyslog ad inviare i log sulla porta definita sull’input lato server

vim /etc/rsyslog.conf

aggiungendo la seguente riga

*.* @ip_server:10514

a questo punto riavviamo il demone

systemctl restart rsyslog

e per far creare delle nuovi log al syslog riavviamo il demone del crond

systemctl restart crond

Adesso verifichiamo lato piattaforma web se il server Graylog ha ricevuto i log andando dal menu su Search

installazione graylog su centos 7

 

Potrebbero interessarti anche...