# 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 git clone https://github.com/acidvegas/elastop.git 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 ``` ## 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)