ELK Doc
This commit is contained in:
159
Monitoring & Logging/ELK/01-Information.md
Normal file
159
Monitoring & Logging/ELK/01-Information.md
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
# ELK Stack Overview (DevOps Notes)
|
||||||
|
|
||||||
|
## What is ELK?
|
||||||
|
|
||||||
|
**ELK** stands for:
|
||||||
|
|
||||||
|
* **Elasticsearch**
|
||||||
|
* **Logstash**
|
||||||
|
* **Kibana**
|
||||||
|
|
||||||
|
The ELK Stack is a powerful platform used for **log management, monitoring, data analysis, and observability**. It is widely used in DevOps for **centralized logging, troubleshooting, and performance monitoring**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Core Components
|
||||||
|
|
||||||
|
### 1. Elasticsearch
|
||||||
|
|
||||||
|
* Distributed, REST-based **search and analytics engine**
|
||||||
|
* Used for **storing, indexing, and searching logs and metrics**
|
||||||
|
* Built on Apache Lucene
|
||||||
|
* Highly scalable and fast for full-text search
|
||||||
|
|
||||||
|
**Key Responsibilities:**
|
||||||
|
|
||||||
|
* Store logs and events
|
||||||
|
* Index data for fast search
|
||||||
|
* Support aggregations and analytics
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Logstash
|
||||||
|
|
||||||
|
* **Data processing pipeline**
|
||||||
|
* Ingests data from multiple sources
|
||||||
|
* Transforms, parses, enriches, and forwards data
|
||||||
|
|
||||||
|
**Pipeline Stages:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Input → Filter → Output
|
||||||
|
```
|
||||||
|
|
||||||
|
**Examples of filters:**
|
||||||
|
|
||||||
|
* grok (parse logs)
|
||||||
|
* mutate (modify fields)
|
||||||
|
* date (timestamp handling)
|
||||||
|
* geoip (location enrichment)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. Kibana
|
||||||
|
|
||||||
|
* **Visualization and analytics UI**
|
||||||
|
* Connects directly to Elasticsearch
|
||||||
|
* Used for:
|
||||||
|
|
||||||
|
* Dashboards
|
||||||
|
* Log exploration
|
||||||
|
* Metrics visualization
|
||||||
|
* Alerts and reporting
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Beats (Data Shippers)
|
||||||
|
|
||||||
|
**Beats** are lightweight agents installed on servers to collect and send data to Elasticsearch or Logstash.
|
||||||
|
|
||||||
|
Common Beats:
|
||||||
|
|
||||||
|
* **Filebeat** – collects log files
|
||||||
|
* **Metricbeat** – system and service metrics (CPU, memory, disk)
|
||||||
|
* **Heartbeat** – uptime and availability monitoring
|
||||||
|
* **Packetbeat** – network traffic analysis
|
||||||
|
* **Auditbeat** – security and audit data
|
||||||
|
|
||||||
|
**Role:**
|
||||||
|
|
||||||
|
* Data collection
|
||||||
|
* Minimal resource usage
|
||||||
|
* Sends data to Logstash or directly to Elasticsearch
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fluentd
|
||||||
|
|
||||||
|
* **Cloud-native log aggregator and processor**
|
||||||
|
* Alternative to Logstash
|
||||||
|
* Common in Kubernetes environments
|
||||||
|
|
||||||
|
**Responsibilities:**
|
||||||
|
|
||||||
|
* Collect logs from multiple sources
|
||||||
|
* Enrich and transform data
|
||||||
|
* Route logs to multiple destinations (Elasticsearch, S3, Kafka)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Typical ELK Architecture
|
||||||
|
|
||||||
|
```
|
||||||
|
Server / Application
|
||||||
|
↓
|
||||||
|
Filebeat
|
||||||
|
↓
|
||||||
|
Logstash
|
||||||
|
↓
|
||||||
|
Elasticsearch
|
||||||
|
↓
|
||||||
|
Kibana
|
||||||
|
```
|
||||||
|
|
||||||
|
> Note: In some setups, Beats can send data **directly to Elasticsearch** (Logstash optional).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Database Concepts vs Elasticsearch Concepts
|
||||||
|
|
||||||
|
| Traditional Database | Elasticsearch |
|
||||||
|
| -------------------- | -------------------------- |
|
||||||
|
| Database | Index |
|
||||||
|
| Schema | Mapping |
|
||||||
|
| Table | Index (Type is deprecated) |
|
||||||
|
| Column | Field |
|
||||||
|
| Row | Document |
|
||||||
|
| Primary Key | Document ID |
|
||||||
|
|
||||||
|
> ⚠️ **Note:** `Type` is deprecated in modern Elasticsearch versions (7+).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Elasticsearch Data Model
|
||||||
|
|
||||||
|
* **Index**: Logical namespace for documents
|
||||||
|
* **Document**: JSON object containing data
|
||||||
|
* **Field**: Key-value pair in a document
|
||||||
|
* **Mapping**: Defines field types and structure
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Why ELK in DevOps?
|
||||||
|
|
||||||
|
* Centralized logging
|
||||||
|
* Faster incident response
|
||||||
|
* Debugging distributed systems
|
||||||
|
* Monitoring infrastructure and applications
|
||||||
|
* Security analysis (SIEM use cases)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
* **Elasticsearch** → Storage & search engine
|
||||||
|
* **Logstash / Fluentd** → Data processing & enrichment
|
||||||
|
* **Beats** → Lightweight data collectors
|
||||||
|
* **Kibana** → Visualization & dashboards
|
||||||
|
|
||||||
|
The ELK Stack enables DevOps teams to **observe, analyze, and troubleshoot systems at scale**.
|
||||||
Reference in New Issue
Block a user