A centralized log aggregation stack using Elasticsearch, Logstash, Kibana, and Syslog-NG, designed to collect and analyze logs from virtual machines (VMs).
✅ Tested on Docker Desktop (Windows) — for other OSes, additional IP configuration may be needed.
This project enables centralized log monitoring and processing by:
- Collecting logs from client machines via Syslog-NG.
- Sending logs to Logstash and indexing them in Elasticsearch.
- Visualizing data with Kibana dashboards.
- Docker & Docker Compose
- VMWare (Client VM in NAT mode)
- Basic familiarity with networking and log systems
Inside your client VM:
sudo nano /etc/syslog-ng/syslog-ng.confUpdate the destination IP:
- Locate the IP
192.168.64.1 - Replace it with your VMware NAT gateway IP (find via
ipconfigon host)
- Import the provided VM image into VMware
- Set the VM network mode to NAT
- Default credentials:
Username: client1
Password: client1
From the project folder on the host:
docker-compose up setup
docker-compose build
docker-compose up -dOnce containers are running, access Kibana:
🔗 http://localhost:5601
👤 Login: elastic
🔑 Password: elastic1111
To observe logs in Kibana, use the following index patterns:
syslog-*auth-*ssh-*kernel-*daemon-*auditd-*local-*
⏱ Logs may take some time to appear depending on system activity.
centralized_log_servercontainer may become overloaded after prolonged use.- Kibana visualizations are not yet predefined.
- Alerting features are not configured.
- AppArmor is not yet enabled for protecting log data.
Refer to .env for all stack user credentials.
This project is licensed under the MIT License.