elastop/README.md

135 lines
4.1 KiB
Markdown
Raw Normal View History

2024-11-29 05:33:22 +00:00
# Elastop - Elasticsearch Terminal Dashboard
Elastop is a terminal-based dashboard for monitoring Elasticsearch clusters in real-time. It provides a comprehensive view of cluster health, node status, indices, and various performance metrics in an easy-to-read terminal interface. This tool was designed to look visually similar HTOP.
![](./.screens/preview.png)
## Features
- Real-time cluster monitoring
- Node status and resource usage
- Index statistics and write rates
- Search and indexing performance metrics
- Memory usage and garbage collection stats
- Network and disk I/O monitoring
- Color-coded health status indicators
- Role-based node classification
- Version compatibility checking
## Installation
```bash
# Clone the repository
2024-11-29 07:46:22 +00:00
git clone https://github.com/acidvegas/elastop.git
2024-11-29 05:33:22 +00:00
cd elastop
go build
```
## Usage
```bash
./elastop [flags]
```
### Command Line Flags
| Flag | Description | Default |
| ----------- | ------------------------------------- | ------------- |
| `-host` | Elasticsearch host | `localhost` |
| `-port` | Elasticsearch port | `9200` |
| `-user` | Elasticsearch username | `elastic` |
| `-password` | Elasticsearch password | `ES_PASSWORD` |
| `-apikey` | Elasticsearch API key | `ES_API_KEY` |
| `-cert` | Path to client certificate file | |
| `-key` | Path to client private key file | |
| `-ca` | Path to CA certificate file | |
| `-insecure` | Skip TLS certificate verification | `false` |
Note: Only one authentication method (username/password, API key, or certificates) can be used at a time.
### Authentication Examples
```bash
# Using username/password
./elastop -host https://elasticsearch.example.com -user elastic -password secret
# Using API key
./elastop -host https://elasticsearch.example.com -apikey your_api_key
# Using certificate authentication
./elastop -host https://elasticsearch.example.com -cert /path/to/client.crt -key /path/to/client.key -ca /path/to/ca.crt
# Using certificate authentication with insecure SSL (not recommended for production)
./elastop -host https://elasticsearch.example.com -cert /path/to/client.crt -key /path/to/client.key -insecure
```
2024-11-29 05:33:22 +00:00
## Dashboard Layout
### Header Section
- Displays cluster name and health status
- Shows total number of nodes (successful/failed)
- Indicates version compatibility with latest Elasticsearch release
### Nodes Panel
- Lists all nodes with their roles and status
- Shows real-time resource usage:
- CPU utilization
- Memory usage
- Heap usage
- Disk space
- Load average
- Displays node version and OS information
### Indices Panel
- Lists all indices with health status
- Shows document counts and storage size
- Displays primary shards and replica configuration
- Real-time ingestion monitoring with:
- Document count changes
- Ingestion rates (docs/second)
- Active write indicators
### Metrics Panel
- Search performance:
- Query counts and rates
- Average query latency
- Indexing metrics:
- Operation counts
- Indexing rates
- Average indexing latency
- Memory statistics:
- System memory usage
- JVM heap utilization
- GC metrics:
- Collection counts
- GC timing statistics
- I/O metrics:
- Network traffic (TX/RX)
- Disk operations
- Open file descriptors
### Role Legend
Shows all possible node roles with their corresponding colors:
- M: Master
- D: Data
- C: Content
- H: Hot
- W: Warm
- K: Cold
- F: Frozen
- I: Ingest
- L: Machine Learning
- R: Remote Cluster Client
- T: Transform
- V: Voting Only
- O: Coordinating Only
## Controls
- Press `q` or `ESC` to quit
- Mouse scrolling supported in all panels
- Auto-refreshes every 5 seconds
---
###### Mirrors: [acid.vegas](https://git.acid.vegas/elastop) • [SuperNETs](https://git.supernets.org/acidvegas/elastop) • [GitHub](https://github.com/acidvegas/elastop) • [GitLab](https://gitlab.com/acidvegas/elastop) • [Codeberg](https://codeberg.org/acidvegas/elastop)