Disabling Kibana telemetry stops anonymous usage statistics from leaving the environment, which helps satisfy privacy policies, egress controls, and production hardening requirements. Setting the opt-out in the server configuration also prevents a later browser session from silently changing the same instance back to telemetry-enabled mode.
Current self-managed Kibana releases control this behavior with telemetry.optIn and telemetry.allowChangingOptInStatus in /etc/kibana/kibana.yml on package installs. Elastic's current configuration reference lists both settings as enabled by default, and setting telemetry.optIn to false stops telemetry regardless of the default telemetry.sendUsageFrom behavior.
Package installs read /etc/kibana/kibana.yml on startup and typically run as the kibana.service systemd unit, so a restart is required after changing the file. YAML syntax still matters, and malformed entries or duplicate keys can prevent Kibana from returning to the running state.
Steps to disable Kibana telemetry:
- Set the telemetry options to false in /etc/kibana/kibana.yml.
telemetry.optIn: false telemetry.allowChangingOptInStatus: false
Current Kibana docs place the matching UI control on Advanced settings → Global Settings under Usage collection when user changes are allowed.
Invalid YAML or duplicate keys can stop Kibana during the next startup.
- Restart the Kibana service.
$ sudo systemctl restart kibana
Restarting Kibana interrupts active sessions and dashboard access until startup finishes.
- Check the Kibana service state after the restart.
$ sudo systemctl status kibana --no-pager --full | head -n 12 ● kibana.service - Kibana Loaded: loaded (/lib/systemd/system/kibana.service; enabled; preset: enabled) Active: active (running) since Thu 2026-04-02 14:18:03 UTC; 7s ago Docs: https://www.elastic.co Main PID: 2411 (node) Tasks: 11 (limit: 9251) Memory: 337.6M (peak: 338.1M) CPU: 22.874s CGroup: /system.slice/kibana.service └─2411 /usr/share/kibana/bin/../node/glibc-217/bin/node /usr/share/kibana/bin/../src/cli/distUse sudo journalctl --unit=kibana.service --no-pager -n 30 when the unit does not return to active (running) cleanly.
- Confirm the saved telemetry values in /etc/kibana/kibana.yml.
$ sudo rg -n 'telemetry\.(optIn|allowChangingOptInStatus)' /etc/kibana/kibana.yml 182:telemetry.optIn: false 183:telemetry.allowChangingOptInStatus: false
Use grep -nE 'telemetry\\.(optIn|allowChangingOptInStatus)' /etc/kibana/kibana.yml when ripgrep is not installed.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
