Port 9600 is the Logstash monitoring API port providing pipeline statistics, JVM metrics, and hot threads. Logstash exposes this HTTP API for health monitoring by tools like Metricbeat and Prometheus exporters. No authentication by default – restrict to monitoring infrastructure IPs.
Port Number
9600
Protocol
TCP
Service
Logstash Monitoring API
Range
IANA Registered (1024–49151)
Check pipeline throughput – events in/out/filtered per second
curl -s http://localhost:9600/_node/stats?pretty | jq '.pipelines'Identify blocked or CPU-intensive threads in the Logstash JVM
curl -s http://localhost:9600/_node/hot_threadsGet Logstash version and basic node info
curl -s http://localhost:9600/?pretty | jq '.version'Verify which process owns port 9600 and confirm bind address
ss -tlnp sport = :9600curl http://localhost:9600/_node/stats?pretty
curl http://localhost:9600/_node/pipelines?pretty
logstash.yml: api.http.host: 127.0.0.1Logstash added the monitoring API in version 5.0 (2016) as part of the Elastic Stack's unified monitoring initiative. Port 9600 was chosen to sit near Elasticsearch's 9200/9300 range. Before this API, monitoring Logstash required parsing log files or JMX – both unreliable for real-time dashboards.
Can I add authentication to the Logstash monitoring API?
Not natively in open-source Logstash. The API has no auth plugin system. Your options are: bind to localhost and scrape locally (recommended), or place a reverse proxy with basic auth in front. X-Pack (commercial) adds monitoring through Elasticsearch instead.
What is the performance impact of the monitoring API?
Minimal – stats collection is passive (reads JVM/OS counters). However, aggressive external polling (sub-second intervals) adds GC pressure. Poll at 10-30s intervals maximum. The /_node/hot_threads endpoint is more expensive as it captures thread dumps.