question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Kibana Chart with "kibana_system" user: readinessProbe never succeeds

See original GitHub issue

Chart version: 7.12.0 Kubernetes version: 1.18.2 Kubernetes provider: E.g. GKE (Google Kubernetes Engine) Kubernetes is set up with Rancher

Helm Version: v3

helm get release output The environment is air-gapped but I think the bug is simple enough to reproduce.

Describe the bug: When I set up kibana to use the kibana_system user (as recommended for production) the readinessProbe never succeeds.

This is because kibana settings and the readinessProbe use the same user and password ( ELASTICSEARCH_USERNAMEand ELASTICSEARCH_PASSWORD) to connect to elasticsearch and kibana, but the kibana_system user lacks permission to access kibana. Therefore the call to app/kibana returns a 403 HTTP Status Code, but the readinessProbe expects a 200, as the code snippet shows:

https://github.com/elastic/helm-charts/blob/b3a4b753a564811713f1a5ff04669baa3a4adfd7/kibana/templates/deployment.yaml#L124-L127

Once I manually edit the readinessProbe to accept a 403 code everything works fine

Steps to reproduce:

  1. Set kibana_system user as ELASTICSEARCH_USERNAME in kibana helm template
  2. Deploy kibana helm template
  3. Watch kibana readinessProbe failing with Error: Got HTTP code 403 but expected a 200

Expected behavior:

The readinessProbe should recognise that kibana is fully up and running and succeed if the kibana_system user is used.

One could either accept 403, too or just access / (which then gets redirected to /login?next=%2F ) and evaluate the http status code there (which is 200 for an unauthenticated user as well)

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:1
  • Comments:10 (2 by maintainers)

github_iconTop GitHub Comments

2reactions
stijnbrouwerscommented, Nov 23, 2021

Same issue here and resolved it by setting

healthCheckPath: /api/status

as proposed by @josecu08

1reaction
josecu08commented, Jul 7, 2021

My workaround was to use another endpoint for healthcheck. I’m using /api/status instead of /app/kibana.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Readiness probe | Elastic Cloud on Kubernetes [2.5]
Run Elasticsearch on ECK ... Run Kibana on ECK ... By default, the readiness probe checks that the Pod responds to HTTP requests...
Read more >
Kibana error: Unable to retrieve version information from ...
I am getting this error inside the kibana container, therefore ingress returns 503 error and container is never ready.
Read more >
Kibana: Explore, Visualize, Discover Data - Elastic
Rapidly create dashboards that pull together charts, maps, and filters to display the full picture of your data. Build customized dashboard-to-dashboard ...
Read more >
Advanced Settings | Kibana Guide [8.5] - Elastic
Enables you to use Elasticsearch indices in TSVB visualizations. metrics:max_buckets. Affects the TSVB histogram density. Must be set higher than histogram: ...
Read more >
Configure security in Kibana | Kibana Guide [7.17] - Elastic
The password for the built-in kibana_system user is typically set as part of the security configuration process on Elasticsearch. For more information ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found