Passa al contenuto principale
Versione: 1.0.0

Graylog su Aruba Cloud

Esegui il deployment di Graylog — gestione centralizzata dei log con ricerca e alerting — su Aruba Cloud tramite Terraform e cloud-init. Distribuito via Docker Compose con MongoDB e OpenSearch co-locati su un singolo nodo.

Versione provider: arubacloud/arubacloud ~> 1.0 | Terraform: ≥ 1.9


Introduzione​

Graylog fornisce una potente piattaforma di aggregazione log con ricerca strutturata, dashboard, alerting ed elaborazione degli stream. Richiede MongoDB (metadati) e OpenSearch (indice dei log). Questo esempio esegue il provisioning di:

  • Graylog tramite l'immagine Docker ufficiale
  • MongoDB 6 per l'archiviazione della configurazione
  • OpenSearch 2 per l'indicizzazione e la ricerca dei log
  • Interfaccia web sulla porta 9000, input Syslog sulla 1514, input GELF sulla 12201

Panoramica dell'architettura​


Infrastruttura creata​

RisorsaPattern del nomeDescrizione
arubacloud_projectgl-prodContenitore del progetto
arubacloud_vpcgl-prod-vpcVirtual Private Cloud
arubacloud_subnetgl-prod-subnetSubnet base
arubacloud_securitygroupgl-prod-vm-sgSecurity group
arubacloud_securityrulegl-prod-vm-sshRegola ingress SSH
arubacloud_securityrulegl-prod-vm-webuiInterfaccia web Graylog TCP 9000
arubacloud_securityrulegl-prod-vm-syslogSyslog TCP/UDP 1514
arubacloud_securityrulegl-prod-vm-gelfGELF UDP 12201
arubacloud_elasticipgl-prod-vm-eipIP pubblico della VM
arubacloud_blockstoragegl-prod-bootDisco di boot da 100 GB (Performance)
arubacloud_keypairgl-prod-keypairChiave pubblica SSH
arubacloud_cloudservergl-prod-vmVM CloudServer

Costo mensile stimato​

RisorsaSpecificheCosto stimato/mese
VM CloudServerCSO4A8 — 4 vCPU / 8 GB~€35
Disco di boot100 GB Performance~€15
Elastic IP—~€3
Totale~€53/mese

Per volumi di log in produzione, aggiorna a CSO8A16 (8 vCPU / 16 GB, ~€95/mese).


Requisiti​

  • Terraform ≥ 1.9
  • ArubaCloud Terraform Provider ~> 1.0
  • Un account ArubaCloud con credenziali API OAuth2
  • Una coppia di chiavi SSH

Variabili​

Obbligatorie​

VariabileDescrizione
arubacloud_client_idClient ID OAuth2 di ArubaCloud
arubacloud_client_secretClient secret OAuth2 di ArubaCloud
ssh_public_keyContenuto della chiave pubblica SSH
graylog_admin_passwordPassword admin Graylog (min 8 caratteri)
graylog_secretSegreto password Graylog (min 16 caratteri — genera con pwgen -N 1 -s 96)

Opzionali​

VariabileDefaultDescrizione
app_name"gl"Nome breve usato in tutti i nomi delle risorse
environment"prod"Etichetta dell'ambiente
location"ITBG-Bergamo"Regione ArubaCloud
zone"ITBG-1"Zona di disponibilità
billing_period"Hour""Hour" o "Month"
vm_flavor"CSO4A8"Flavor del CloudServer
vm_image"LU22-001"Immagine del disco di boot (Ubuntu 22.04 LTS)
vm_disk_size_gb100Dimensione del disco di boot in GB (min 50 GB)
ssh_cidr"0.0.0.0/0"CIDR per SSH
admin_cidr"0.0.0.0/0"CIDR per l'interfaccia web porta 9000
syslog_cidr"0.0.0.0/0"CIDR per gli input syslog/GELF
graylog_version"6"Tag immagine Docker Graylog

Output​

OutputDescrizione
graylog_urlURL dell'interfaccia web Graylog
vm_public_ipIndirizzo IP pubblico della VM
ssh_commandComando SSH per connettersi alla VM
syslog_endpointEndpoint Syslog TCP/UDP
gelf_endpointEndpoint GELF UDP

Istruzioni di deployment​

1. Clona e naviga​

git clone https://github.com/arubacloud/terraform-arubacloud-examples.git
cd terraform-arubacloud-examples/graylog

2. Configura le variabili​

cp terraform.tfvars.example terraform.tfvars

Genera un segreto robusto:

pwgen -N 1 -s 96

3. Esegui il deployment​

terraform init
terraform plan
terraform apply

Il bootstrap richiede circa 5–10 minuti (l'inizializzazione di OpenSearch è il passo più lento).

4. Accedi all'interfaccia​

Naviga su http://<IP>:9000 e accedi come admin con la tua graylog_admin_password.

5. Configura un input​

Nell'interfaccia web: Sistema → Input → Avvia nuovo input. Seleziona Syslog UDP e associalo alla porta 1514.


Invio dei log​

# rsyslog: aggiungi a /etc/rsyslog.d/90-graylog.conf
*.* @<graylog-ip>:1514;RSYSLOG_SyslogProtocol23Format

# filebeat: in filebeat.yml
output.logstash:
hosts: ["<graylog-ip>:5044"]

Riferimenti​