Skip to content

acidvegas/elastop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

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

# Clone the repository
git clone https://github.com/acidvegas/elastop.git
cd elastop
go build

Usage

./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

# 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

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.vegasSuperNETsGitHubGitLabCodeberg