<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Install Grafana Loki with Helm on Grafana Labs</title><link>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/</link><description>Recent content in Install Grafana Loki with Helm on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/loki/v3.7.x/setup/install/helm/index.xml" rel="self" type="application/rss+xml"/><item><title>Helm chart components</title><link>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/concepts/</link><pubDate>Thu, 09 Apr 2026 02:28:18 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/concepts/</guid><content><![CDATA[&lt;h1 id=&#34;helm-chart-components&#34;&gt;Helm chart components&lt;/h1&gt;
&lt;p&gt;This section describes the components installed by the Helm Chart.&lt;/p&gt;
&lt;h2 id=&#34;3-methods-of-deployment&#34;&gt;3 methods of deployment&lt;/h2&gt;
&lt;p&gt;The Loki chart supports three methods of deployment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../install-monolithic/&#34;&gt;Monolithic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../install-scalable/&#34;&gt;Simple Scalable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../install-microservices/&#34;&gt;Microservice&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By default, the chart installs in &lt;a href=&#34;../install-scalable/&#34;&gt;Simple Scalable&lt;/a&gt; mode. For the best possible experience in production, we now recommend deploying Loki in &lt;em&gt;microservices&lt;/em&gt; mode. To understand the differences between deployment methods, see the &lt;a href=&#34;../../../../get-started/deployment-modes/&#34;&gt;Loki deployment modes&lt;/a&gt; documentation.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Simple Scalable Deployment (SSD) mode is being deprecated. The timeline for the deprecation is to be determined (TBD), but will happen before Loki 4.0 is released.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;zone-aware-replication&#34;&gt;Zone-aware replication&lt;/h2&gt;
&lt;p&gt;When deploying in &lt;a href=&#34;../install-microservices/&#34;&gt;microservices&lt;/a&gt; mode, the chart enables &lt;strong&gt;zone-aware replication&lt;/strong&gt; for ingesters by default (&lt;code&gt;ingester.zoneAwareReplication.enabled: true&lt;/code&gt;). This creates three ingester StatefulSets (zone-a, zone-b, zone-c) and requires the &lt;code&gt;rollout-operator&lt;/code&gt; subchart. Zone-aware replication allows multiple ingesters within a single zone to be shut down and restarted simultaneously during rollouts, while the remaining two zones guarantee at least one copy of the data.&lt;/p&gt;
&lt;p&gt;To disable zone-aware replication (for example, in a development or test environment):&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;ingester:
  zoneAwareReplication:
    enabled: false&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;pattern-ingester&#34;&gt;Pattern ingester&lt;/h2&gt;
&lt;p&gt;The chart includes an optional &lt;strong&gt;pattern ingester&lt;/strong&gt; component (&lt;code&gt;patternIngester&lt;/code&gt;) for detecting and extracting log patterns. It is disabled by default (&lt;code&gt;patternIngester.replicas: 0&lt;/code&gt;). To enable it as a standalone component in microservices mode, set &lt;code&gt;patternIngester.replicas&lt;/code&gt; to a non-zero value. In other modes, enable it in the Loki configuration:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;loki:
  pattern_ingester:
    enabled: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;overrides-exporter&#34;&gt;Overrides exporter&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;overrides exporter&lt;/strong&gt; (&lt;code&gt;overridesExporter&lt;/code&gt;) is an optional component that exposes per-tenant configuration overrides as Prometheus metrics. It is disabled by default (&lt;code&gt;overridesExporter.enabled: false&lt;/code&gt;). Enable it when you need visibility into tenancy-level limit settings.&lt;/p&gt;
&lt;h2 id=&#34;bloom-filters-experimental&#34;&gt;Bloom filters (experimental)&lt;/h2&gt;
&lt;p&gt;The chart includes experimental support for &lt;strong&gt;bloom filters&lt;/strong&gt; through three components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bloomGateway&lt;/code&gt;: Serves bloom filter queries&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bloomPlanner&lt;/code&gt;: Plans bloom filter build jobs&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bloomBuilder&lt;/code&gt;: Builds bloom filters&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All three are disabled by default (replicas set to 0). Enable bloom filters in the Loki configuration (&lt;code&gt;loki.bloom_build.enabled: true&lt;/code&gt;, &lt;code&gt;loki.bloom_gateway.enabled: true&lt;/code&gt;) and set non-zero replica counts for the corresponding components.&lt;/p&gt;
&lt;h2 id=&#34;monitoring-loki&#34;&gt;Monitoring Loki&lt;/h2&gt;
&lt;p&gt;The Loki Helm chart includes built-in monitoring resources that can be enabled:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ServiceMonitor&lt;/strong&gt; (&lt;code&gt;monitoring.serviceMonitor.enabled&lt;/code&gt;): Creates Prometheus Operator ServiceMonitor resources for scraping Loki metrics.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recording rules and alerts&lt;/strong&gt; (&lt;code&gt;monitoring.rules.enabled&lt;/code&gt;): Creates PrometheusRule resources with pre-configured recording rules and alerts (for example, &lt;code&gt;LokiRequestErrors&lt;/code&gt;, &lt;code&gt;LokiRequestPanics&lt;/code&gt;, &lt;code&gt;LokiRequestLatency&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dashboards&lt;/strong&gt; (&lt;code&gt;monitoring.dashboards.enabled&lt;/code&gt;): Creates ConfigMaps containing Grafana dashboards for monitoring Loki.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These built-in monitoring resources are disabled by default. For a more comprehensive monitoring setup, Loki clusters can also be monitored using the meta-monitoring stack, which monitors the logs, metrics, and traces of the Loki cluster. There are two deployment options for this stack, see the installation instructions within &lt;a href=&#34;../monitor-and-alert/&#34;&gt;Monitoring&lt;/a&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The Kubernetes Monitoring Helm chart replaces the monitoring section of the Loki Helm chart which is now &lt;strong&gt;DEPRECATED&lt;/strong&gt;. Refer to the 
    &lt;a href=&#34;/docs/loki/v3.7.x/operations/meta-monitoring/&#34;&gt;Monitoring&lt;/a&gt; section for more information.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;canary&#34;&gt;Canary&lt;/h2&gt;
&lt;p&gt;This chart installs the &lt;a href=&#34;../../../../operations/loki-canary/&#34;&gt;Loki Canary app&lt;/a&gt; by default. This is another tool to verify the Loki deployment is in a healthy state. It can be disabled by setting &lt;code&gt;lokiCanary.enabled=false&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;gateway&#34;&gt;Gateway&lt;/h2&gt;
&lt;p&gt;By default and inspired by Grafana&amp;rsquo;s &lt;a href=&#34;https://github.com/grafana/loki/blob/main/production/ksonnet/loki&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Tanka setup&lt;/a&gt;, the chart
installs the gateway component which is an NGINX that exposes the Loki API and automatically proxies requests to the correct
Loki components (read or write, or single instance in the case of filesystem storage).
The gateway must be enabled if an Ingress is required, since the Ingress exposes the gateway only.
If the gateway is enabled, Grafana and log shipping agents, such as Grafana Alloy, should be configured to use the gateway.
If NetworkPolicies are enabled, they are more restrictive if the gateway is enabled.&lt;/p&gt;
&lt;h2 id=&#34;caching&#34;&gt;Caching&lt;/h2&gt;
&lt;p&gt;By default, this chart configures in-memory caching. If that caching does not work for your deployment, you should setup &lt;a href=&#34;../../../../operations/caching/&#34;&gt;memcache&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="helm-chart-components">Helm chart components&lt;/h1>
&lt;p>This section describes the components installed by the Helm Chart.&lt;/p>
&lt;h2 id="3-methods-of-deployment">3 methods of deployment&lt;/h2>
&lt;p>The Loki chart supports three methods of deployment:&lt;/p></description></item><item><title>Install the monolithic Helm chart</title><link>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/install-monolithic/</link><pubDate>Thu, 09 Apr 2026 02:28:18 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/install-monolithic/</guid><content><![CDATA[&lt;h1 id=&#34;install-the-monolithic-helm-chart&#34;&gt;Install the monolithic Helm chart&lt;/h1&gt;
&lt;p&gt;This Helm Chart installation deploys Grafana Loki in 
    &lt;a href=&#34;/docs/loki/v3.7.x/get-started/deployment-modes/#monolithic-mode&#34;&gt;monolithic mode&lt;/a&gt; within a Kubernetes cluster.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;As of March 16, 2026, the Loki Helm Chart is being maintained by Grafana Champions and the Grafana Community in the &lt;a href=&#34;https://github.com/grafana-community/helm-charts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana-community/helm-charts repository&lt;/a&gt;. Please open issues and pull requests for the chart against the Grafana-community repo.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-tip&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Tip&lt;/p&gt;&lt;p&gt;With the move to the Grafana-community repository, the chart numbering has changed. Major version updates signal breaking changes in the chart. For more information, refer to the &lt;a href=&#34;https://github.com/grafana-community/helm-charts/blob/main/charts/loki/README.md#upgrading&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;README&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Helm 3 or above. See &lt;a href=&#34;https://helm.sh/docs/intro/install/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Installing Helm&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A running Kubernetes cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;single-replica-or-multiple-replicas&#34;&gt;Single Replica or Multiple Replicas&lt;/h2&gt;
&lt;p&gt;There are two ways to deploy Loki in monolithic mode:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Single Replica&lt;/strong&gt;: Run Loki with a single replica. This mode is useful for testing and development or if you are planning to run Loki as a meta-monitoring system.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple Replicas&lt;/strong&gt;: Run Loki with multiple replicas. This mode is useful for high availability. This mode is less economical than microservice mode, but it is simpler to operate. We recommend running at least three replicas for high availability.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once you have selected how many replicas you would like to deploy, choose the appropriate &lt;code&gt;values.yaml&lt;/code&gt; configuration file below and then continue with the deployment steps.&lt;/p&gt;
&lt;h3 id=&#34;single-replica&#34;&gt;Single Replica&lt;/h3&gt;
&lt;p&gt;Deploying the Helm chart with a single replica deploys the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Loki (1 replica)&lt;/li&gt;
&lt;li&gt;Loki Canary (1 DaemonSet)&lt;/li&gt;
&lt;li&gt;Loki Gateway (1 NGINX replica)&lt;/li&gt;
&lt;li&gt;Chunks cache (1 StatefulSet)&lt;/li&gt;
&lt;li&gt;Results cache (1 StatefulSet)&lt;/li&gt;
&lt;li&gt;Minio (optional, if &lt;code&gt;minio.enabled=true&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Create the configuration file &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;You must specify &lt;code&gt;commonConfig.replication_factor: 1&lt;/code&gt; if you are only using 1 replica, otherwise requests will fail.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;


&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;loki:
  commonConfig:
    replication_factor: 1
  schemaConfig:
    configs:
      - from: &amp;#34;2024-04-01&amp;#34;
        store: tsdb
        object_store: s3
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  pattern_ingester:
    enabled: true
  limits_config:
    allow_structured_metadata: true
    volume_enabled: true
  ruler:
    enable_api: true

minio:
  enabled: true
      
deploymentMode: SingleBinary

singleBinary:
  replicas: 1

# Zero out replica counts of other deployment modes
backend:
  replicas: 0
read:
  replicas: 0
write:
  replicas: 0

ingester:
  replicas: 0
querier:
  replicas: 0
queryFrontend:
  replicas: 0
queryScheduler:
  replicas: 0
distributor:
  replicas: 0
compactor:
  replicas: 0
indexGateway:
  replicas: 0
bloomPlanner:
  replicas: 0
bloomBuilder:
  replicas: 0
bloomGateway:
  replicas: 0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In this configuration, we are deploying Loki with MinIO as the object storage. We recommend configuring object storage via cloud provider or pointing Loki at a MinIO cluster for production deployments.&lt;/p&gt;
&lt;h3 id=&#34;multiple-replicas&#34;&gt;Multiple Replicas&lt;/h3&gt;
&lt;p&gt;Deploying the Helm chart with multiple replicas deploys the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Loki (3 replicas)&lt;/li&gt;
&lt;li&gt;Loki Canary (1 DaemonSet)&lt;/li&gt;
&lt;li&gt;Loki Gateway (1 NGINX replica)&lt;/li&gt;
&lt;li&gt;Chunks cache (1 StatefulSet)&lt;/li&gt;
&lt;li&gt;Results cache (1 StatefulSet)&lt;/li&gt;
&lt;li&gt;Minio (optional, if &lt;code&gt;minio.enabled=true&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Create the configuration file &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If you set the &lt;code&gt;singleBinary.replicas&lt;/code&gt; value to 2 or more, this chart configures Loki to run a &lt;em&gt;single binary&lt;/em&gt; in a replicated, highly available mode. When running replicas of a single binary, you must configure object storage.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;


&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;loki:
  commonConfig:
    replication_factor: 3
  schemaConfig:
    configs:
      - from: &amp;#34;2024-04-01&amp;#34;
        store: tsdb
        object_store: s3
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  pattern_ingester:
    enabled: true
  limits_config:
    allow_structured_metadata: true
    volume_enabled: true
  ruler:
    enable_api: true

minio:
  enabled: true
      
deploymentMode: SingleBinary

singleBinary:
  replicas: 3

# Zero out replica counts of other deployment modes
backend:
  replicas: 0
read:
  replicas: 0
write:
  replicas: 0

ingester:
  replicas: 0
querier:
  replicas: 0
queryFrontend:
  replicas: 0
queryScheduler:
  replicas: 0
distributor:
  replicas: 0
compactor:
  replicas: 0
indexGateway:
  replicas: 0
bloomPlanner:
  replicas: 0
bloomBuilder:
  replicas: 0
bloomGateway:
  replicas: 0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In this configuration, we need to make sure to update the &lt;code&gt;commonConfig.replication_factor&lt;/code&gt; and &lt;code&gt;singleBinary.replicas&lt;/code&gt; to the desired number of replicas. We are deploying Loki with MinIO as the object storage. We recommend configuring object storage via cloud provider or pointing Loki at a MinIO cluster for production deployments.&lt;/p&gt;
&lt;h2 id=&#34;deploying-the-helm-chart-for-development-and-testing&#34;&gt;Deploying the Helm chart for development and testing&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Add the &lt;a href=&#34;https://github.com/grafana-community/helm-charts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Community chart repository&lt;/a&gt; to Helm:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm repo add grafana-community https://grafana-community.github.io/helm-charts&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the chart repository:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm repo update&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy Loki using the configuration file &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt; helm install loki grafana-community/loki -f values.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install or upgrade the Loki deployment.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To install:

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm install --values values.yaml loki grafana-community/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;To upgrade:

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm upgrade --values values.yaml loki grafana-community/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify that Loki is running:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;kubectl get pods -n loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;object-storage-configuration&#34;&gt;Object Storage Configuration&lt;/h2&gt;
&lt;p&gt;After testing Loki with MinIO, we recommend configuring Loki with an object storage provider. The following examples shows how to configure Loki with different object storage providers:&lt;/p&gt;


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;When deploying Loki using S3 Storage &lt;strong&gt;DO NOT&lt;/strong&gt; use the default bucket names;  &lt;code&gt;chunk&lt;/code&gt;, &lt;code&gt;ruler&lt;/code&gt; and &lt;code&gt;admin&lt;/code&gt;. Choose a unique name for each bucket. For more information see the following &lt;a href=&#34;/blog/2024/06/27/grafana-security-update-grafana-loki-and-unintended-data-write-attempts-to-amazon-s3-buckets/&#34;&gt;security update&lt;/a&gt;. This caution does not apply when you are using MinIO. When using MinIO we recommend using the default bucket names.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;S3&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&gt;
&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;loki:
  commonConfig:
    replication_factor: 3
  schemaConfig:
    configs:
      - from: &amp;#34;2024-04-01&amp;#34;
        store: tsdb
        object_store: s3
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  storage_config:
    aws:
      region: &amp;lt;AWS region your bucket is in, for example, `eu-west-2`&amp;gt;
      bucketnames: &amp;lt;Your AWS bucket for chunk, for exaxmple,  `aws-loki-dev-chunk`&amp;gt;
      s3forcepathstyle: false
  pattern_ingester:
    enabled: true
  limits_config:
    allow_structured_metadata: true
    volume_enabled: true
    retention_period: 672h # 28 days retention

  storage:
    type: s3
    bucketNames:
      chunks: &amp;lt;Your AWS bucket for chunk, for example, `aws-loki-dev-chunk`&amp;gt;
      ruler: &amp;lt;Your AWS bucket for ruler, for example, `aws-loki-dev-ruler`&amp;gt;
      admin: &amp;lt;Your AWS bucket for admin, for example, `aws-loki-dev-admin`&amp;gt;
    s3:
      # s3 URL can be used to specify the endpoint, access key, secret key, and bucket name this works well for S3 compatible storages or are hosting Loki on-premises and want to use S3 as the storage backend. Either use the s3 URL or the individual fields below (AWS endpoint, region, secret).
      s3: s3://access_key:secret_access_key@custom_endpoint/bucket_name
      # AWS endpoint URL
      endpoint: &amp;lt;your-endpoint&amp;gt;
      # AWS region where the S3 bucket is located
      region: &amp;lt;your-region&amp;gt;
      # AWS secret access key
      secretAccessKey: &amp;lt;your-secret-access-key&amp;gt;
      # AWS access key ID
      accessKeyId: &amp;lt;your-access-key-id&amp;gt;
      # AWS signature version (e.g., v2 or v4)
      signatureVersion: &amp;lt;your-signature-version&amp;gt;
      # Forces the path style for S3 (true/false)
      s3ForcePathStyle: false
      # Allows insecure (HTTP) connections (true/false)
      insecure: false
      # HTTP configuration settings
      http_config: {}

# Disable minio storage
minio:
  enabled: false

deploymentMode: SingleBinary

singleBinary:
  replicas: 3
  persistence:
    storageClass: gp2
    accessModes:
      - ReadWriteOnce
    size: 30Gi

# Zero out replica counts of other deployment modes
backend:
  replicas: 0
read:
  replicas: 0
write:
  replicas: 0

ingester:
  replicas: 0
querier:
  replicas: 0
queryFrontend:
  replicas: 0
queryScheduler:
  replicas: 0
distributor:
  replicas: 0
compactor:
  replicas: 0
indexGateway:
  replicas: 0
bloomPlanner:
  replicas: 0
bloomBuilder:
  replicas: 0
bloomGateway:
  replicas: 0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Azure&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&gt;
&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;loki:
  schemaConfig:
    configs:
      - from: &amp;#34;2024-04-01&amp;#34;
        store: tsdb
        object_store: azure
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  ingester:
    chunk_encoding: snappy

  storage:
    type: azure
    azure:
      # Name of the Azure Blob Storage account
      accountName: &amp;lt;your-account-name&amp;gt;
      # Key associated with the Azure Blob Storage account
      accountKey: &amp;lt;your-account-key&amp;gt;
      # Comprehensive connection string for Azure Blob Storage account (Can be used to replace endpoint, accountName, and accountKey)
      connectionString: &amp;lt;your-connection-string&amp;gt;
      # Flag indicating whether to use Azure Managed Identity for authentication
      useManagedIdentity: false
      # Flag indicating whether to use a federated token for authentication
      useFederatedToken: false
      # Client ID of the user-assigned managed identity (if applicable)
      userAssignedId: &amp;lt;your-user-assigned-id&amp;gt;
      # Timeout duration for requests made to the Azure Blob Storage account (in seconds)
      requestTimeout: &amp;lt;your-request-timeout&amp;gt;
      # Domain suffix of the Azure Blob Storage service endpoint (e.g., core.windows.net)
      endpointSuffix: &amp;lt;your-endpoint-suffix&amp;gt;
    bucketNames:
      chunks: &amp;#34;chunks&amp;#34;
      ruler: &amp;#34;ruler&amp;#34;
      admin: &amp;#34;admin&amp;#34;

# Disable minio storage
minio:
  enabled: false

deploymentMode: SingleBinary

singleBinary:
  replicas: 3
  persistence:
    storageClass: gp2
    accessModes:
      - ReadWriteOnce
    size: 30Gi

# Zero out replica counts of other deployment modes
backend:
  replicas: 0
read:
  replicas: 0
write:
  replicas: 0

ingester:
  replicas: 0
querier:
  replicas: 0
queryFrontend:
  replicas: 0
queryScheduler:
  replicas: 0
distributor:
  replicas: 0
compactor:
  replicas: 0
indexGateway:
  replicas: 0
bloomPlanner:
  replicas: 0
bloomBuilder:
  replicas: 0
bloomGateway:
  replicas: 0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To configure other storage providers, refer to the 
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/reference/&#34;&gt;Helm Chart Reference&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;deploying-the-loki-helm-chart-to-a-production-environment&#34;&gt;Deploying the Loki Helm chart to a Production Environment&lt;/h2&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;We are actively working on providing more guides for deploying Loki in production.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;We recommend running Loki at scale within a cloud environment like AWS, Azure, or GCP. The below guides will show you how to deploy a minimally viable production environment.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/deployment-guides/aws/&#34;&gt;Deploy Loki on AWS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next Steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Configure an agent to 
    &lt;a href=&#34;/docs/loki/v3.7.x/send-data/&#34;&gt;send log data to Loki&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Monitor the Loki deployment using the 
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/monitor-and-alert/&#34;&gt;Meta Monitoring Helm chart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="install-the-monolithic-helm-chart">Install the monolithic Helm chart&lt;/h1>
&lt;p>This Helm Chart installation deploys Grafana Loki in
&lt;a href="/docs/loki/v3.7.x/get-started/deployment-modes/#monolithic-mode">monolithic mode&lt;/a> within a Kubernetes cluster.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>As of March 16, 2026, the Loki Helm Chart is being maintained by Grafana Champions and the Grafana Community in the &lt;a href="https://github.com/grafana-community/helm-charts" target="_blank" rel="noopener noreferrer">Grafana-community/helm-charts repository&lt;/a>. Please open issues and pull requests for the chart against the Grafana-community repo.&lt;/p></description></item><item><title>Install the microservice Helm chart</title><link>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/install-microservices/</link><pubDate>Thu, 09 Apr 2026 02:28:18 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/install-microservices/</guid><content><![CDATA[&lt;h1 id=&#34;install-the-microservice-helm-chart&#34;&gt;Install the microservice Helm chart&lt;/h1&gt;
&lt;p&gt;This Helm Chart deploys Grafana Loki on Kubernetes.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;As of March 16, 2026, the Loki Helm Chart is being maintained by Grafana Champions and the Grafana Community in the &lt;a href=&#34;https://github.com/grafana-community/helm-charts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana-community/helm-charts repository&lt;/a&gt;. Please open issues and pull requests for the chart against the Grafana-community repo.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-tip&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Tip&lt;/p&gt;&lt;p&gt;With the move to the Grafana-community repository, the chart numbering has changed. Major version updates signal breaking changes in the chart. For more information, refer to the &lt;a href=&#34;https://github.com/grafana-community/helm-charts/blob/main/charts/loki/README.md#upgrading&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;README&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;This Helm chart deploys Loki to run Loki in 
    &lt;a href=&#34;/docs/loki/v3.7.x/get-started/deployment-modes/#microservices-mode&#34;&gt;microservice mode&lt;/a&gt; within a Kubernetes cluster. The microservices deployment is also referred to as a Distributed deployment. The microservices deployment mode runs components of Loki as distinct processes.&lt;/p&gt;
&lt;p&gt;The default Helm chart deploys the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Compactor component&lt;/strong&gt; (1 replica): Compacts and processes stored data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distributor component&lt;/strong&gt; (3 replicas, maxUnavailable: 2): Distributes incoming requests. Up to 2 replicas can be unavailable during updates.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IndexGateway component&lt;/strong&gt; (2 replicas, maxUnavailable: 1): Handles indexing. Up to 1 replica can be unavailable during updates.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ingester component&lt;/strong&gt; (3 replicas per zone): Handles ingestion of data. By default, zone-aware replication is enabled, creating three StatefulSets (zone-a, zone-b, zone-c) with one replica each.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Querier component&lt;/strong&gt; (3 replicas, maxUnavailable: 2): Processes queries. Up to 2 replicas can be unavailable during updates.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QueryFrontend component&lt;/strong&gt; (2 replicas, maxUnavailable: 1): Manages frontend queries. Up to 1 replica can be unavailable during updates.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QueryScheduler component&lt;/strong&gt; (2 replicas): Schedules queries.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gateway&lt;/strong&gt; (1 NGINX replica): Exposes the Loki API and proxies requests to the correct Loki components.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loki Canary&lt;/strong&gt; (1 DaemonSet): Verifies the Loki deployment is in a healthy state.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chunks cache&lt;/strong&gt; (1 replica): Caches chunks data using memcached.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Results cache&lt;/strong&gt; (1 replica): Caches query results using memcached.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Zone-aware replication is enabled by default for ingesters. This creates three ingester StatefulSets (one per zone) and requires the &lt;code&gt;rollout-operator&lt;/code&gt; subchart. To disable zone-aware replication (for example, in development), set &lt;code&gt;ingester.zoneAwareReplication.enabled: false&lt;/code&gt; in your &lt;code&gt;values.yaml&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;We do not recommend running in microservices mode with &lt;code&gt;filesystem&lt;/code&gt; storage. For the purpose of this guide, we will use MinIO as the object storage to provide a complete example.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Helm 3 or above. See &lt;a href=&#34;https://helm.sh/docs/intro/install/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Installing Helm&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A running Kubernetes cluster (must have at least 3 nodes).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;deploying-the-helm-chart-for-development-and-testing&#34;&gt;Deploying the Helm chart for development and testing&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Add the &lt;a href=&#34;https://github.com/grafana-community/helm-charts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Community chart repository&lt;/a&gt; to Helm:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm repo add grafana-community https://grafana-community.github.io/helm-charts&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the chart repository:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm repo update&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the configuration file &lt;code&gt;values.yaml&lt;/code&gt;. The example below illustrates how to deploy Loki in test mode using MinIO as storage:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;loki:
  schemaConfig:
    configs:
      - from: &amp;#34;2024-04-01&amp;#34;
        store: tsdb
        object_store: s3
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  ingester:
    chunk_encoding: snappy
  querier:
    # Default is 4, if you have enough memory and CPU you can increase, reduce if OOMing
    max_concurrent: 4
  pattern_ingester:
    enabled: true
  limits_config:
    allow_structured_metadata: true
    volume_enabled: true


deploymentMode: Distributed

ingester:
  replicas: 3 # To ensure data durability with replication
  zoneAwareReplication:
    enabled: false
querier:
  replicas: 3 # Improve query performance via parallelism
  maxUnavailable: 2
queryFrontend:
  replicas: 2
  maxUnavailable: 1
queryScheduler:
  replicas: 2
distributor:
  replicas: 3 
  maxUnavailable: 2
compactor:
  replicas: 1
indexGateway:
  replicas: 2
  maxUnavailable: 1

bloomPlanner:
  replicas: 0
bloomBuilder:
  replicas: 0
bloomGateway:
  replicas: 0

backend:
  replicas: 0
read:
  replicas: 0
write:
  replicas: 0

singleBinary:
  replicas: 0

# This exposes the Loki gateway so it can be written to and queried externaly
gateway:
  service:
    type: LoadBalancer


# Enable minio for storage
minio:
  enabled: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install or upgrade the Loki deployment.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To install:

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm install --values values.yaml loki grafana-community/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;To upgrade:

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm upgrade --values values.yaml loki grafana-community/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify that Loki is running:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;kubectl get pods -n loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The output should an output similar to the following:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;  loki-canary-8thrx                      1/1     Running   0          167m
  loki-canary-h965l                      1/1     Running   0          167m
  loki-canary-th8kb                      1/1     Running   0          167m
  loki-chunks-cache-0                    2/2     Running   0          167m
  loki-compactor-0                       1/1     Running   0          167m
  loki-compactor-1                       1/1     Running   0          167m
  loki-distributor-7c9bb8f4dd-bcwc5      1/1     Running   0          167m
  loki-distributor-7c9bb8f4dd-jh9h8      1/1     Running   0          167m
  loki-distributor-7c9bb8f4dd-np5dw      1/1     Running   0          167m
  loki-gateway-77bc447887-qgc56          1/1     Running   0          167m
  loki-index-gateway-0                   1/1     Running   0          167m
  loki-index-gateway-1                   1/1     Running   0          166m
  loki-ingester-zone-a-0                 1/1     Running   0          167m
  loki-ingester-zone-b-0                 1/1     Running   0          167m
  loki-ingester-zone-c-0                 1/1     Running   0          167m
  loki-minio-0                           1/1     Running   0          167m
  loki-querier-bb8695c6d-bv9x2           1/1     Running   0          167m
  loki-querier-bb8695c6d-bz2rw           1/1     Running   0          167m
  loki-querier-bb8695c6d-z9qf8           1/1     Running   0          167m
  loki-query-frontend-6659566b49-528j5   1/1     Running   0          167m
  loki-query-frontend-6659566b49-84jtx   1/1     Running   0          167m
  loki-query-frontend-6659566b49-9wfr7   1/1     Running   0          167m
  loki-query-scheduler-f6dc4b949-fknfk   1/1     Running   0          167m
  loki-query-scheduler-f6dc4b949-h4nwh   1/1     Running   0          167m
  loki-query-scheduler-f6dc4b949-scfwp   1/1     Running   0          167m
  loki-results-cache-0                   2/2     Running   0          167m&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;object-storage-configuration&#34;&gt;Object Storage Configuration&lt;/h2&gt;
&lt;p&gt;After testing Loki with &lt;a href=&#34;https://min.io/docs/minio/kubernetes/upstream/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;MinIO&lt;/a&gt;, we recommend configuring Loki with an object storage provider. The following examples shows how to configure Loki with different object storage providers:&lt;/p&gt;


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;When deploying Loki using S3 Storage &lt;strong&gt;DO NOT&lt;/strong&gt; use the default bucket names;  &lt;code&gt;chunk&lt;/code&gt;, &lt;code&gt;ruler&lt;/code&gt; and &lt;code&gt;admin&lt;/code&gt;. Choose a unique name for each bucket. For more information see the following &lt;a href=&#34;/blog/2024/06/27/grafana-security-update-grafana-loki-and-unintended-data-write-attempts-to-amazon-s3-buckets/&#34;&gt;security update&lt;/a&gt;. This caution does not apply when you are using MinIO. When using MinIO we recommend using the default bucket names.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;S3&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&gt;
&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# Example configuration for Loki with S3 storage

loki:
  schemaConfig:
    configs:
      - from: 2024-04-01
        store: tsdb
        object_store: s3
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  storage_config:
    aws:
      region: &amp;lt;AWS region your bucket is in, for example, `eu-west-2`&amp;gt;
      bucketnames: &amp;lt;Your AWS bucket for chunk, for example, `aws-loki-dev-chunk`&amp;gt;
      s3forcepathstyle: false
  ingester:
    chunk_encoding: snappy
  pattern_ingester:
    enabled: true
  limits_config:
    allow_structured_metadata: true
    volume_enabled: true
    retention_period: 672h # 28 days retention
  querier:
    max_concurrent: 4

  storage:
    type: s3
    bucketNames:
      chunks: &amp;lt;Your AWS bucket for chunk, for example, `aws-loki-dev-chunk`&amp;gt;
      ruler: &amp;lt;Your AWS bucket for ruler, for example,  `aws-loki-dev-ruler`&amp;gt;
      admin: &amp;lt;Your AWS bucket for admin, for example,  `aws-loki-dev-admin`&amp;gt;
    s3:
      # s3 URL can be used to specify the endpoint, access key, secret key, and bucket name this works well for S3 compatible storage or if you are hosting Loki on-premises and want to use S3 as the storage backend. Either use the s3 URL or the individual fields below (AWS endpoint, region, secret).
      s3: s3://access_key:secret_access_key@custom_endpoint/bucket_name
      # AWS endpoint URL
      endpoint: &amp;lt;your-endpoint&amp;gt;
      # AWS region where the S3 bucket is located
      region: &amp;lt;your-region&amp;gt;
      # AWS secret access key
      secretAccessKey: &amp;lt;your-secret-access-key&amp;gt;
      # AWS access key ID
      accessKeyId: &amp;lt;your-access-key-id&amp;gt;
      # AWS signature version (e.g., v2 or v4)
      signatureVersion: &amp;lt;your-signature-version&amp;gt;
      # Forces the path style for S3 (true/false)
      s3ForcePathStyle: false
      # Allows insecure (HTTP) connections (true/false)
      insecure: false
      # HTTP configuration settings
      http_config: {}

deploymentMode: Distributed

# Disable minio storage
minio:
  enabled: false

ingester:
  replicas: 3
  zoneAwareReplication:
    enabled: false
querier:
  replicas: 3
  maxUnavailable: 2
queryFrontend:
  replicas: 2
  maxUnavailable: 1
queryScheduler:
  replicas: 2
distributor:
  replicas: 3
  maxUnavailable: 2
compactor:
  replicas: 1
indexGateway:
  replicas: 2
  maxUnavailable: 1

bloomPlanner:
  replicas: 0
bloomBuilder:
  replicas: 0
bloomGateway:
  replicas: 0

backend:
  replicas: 0
read:
  replicas: 0
write:
  replicas: 0

singleBinary:
  replicas: 0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Azure&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&gt;
&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# Example configuration for Loki with Azure Blob Storage

loki:
  schemaConfig:
    configs:
      - from: &amp;#34;2024-04-01&amp;#34;
        store: tsdb
        object_store: azure
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  ingester:
    chunk_encoding: snappy
  tracing:
    enabled: true
  querier:
    max_concurrent: 4

  storage:
    type: azure
    azure:
      # Name of the Azure Blob Storage account
      accountName: &amp;lt;your-account-name&amp;gt;
      # Key associated with the Azure Blob Storage account
      accountKey: &amp;lt;your-account-key&amp;gt;
      # Comprehensive connection string for Azure Blob Storage account (Can be used to replace endpoint, accountName, and accountKey)
      connectionString: &amp;lt;your-connection-string&amp;gt;
      # Flag indicating whether to use Azure Managed Identity for authentication
      useManagedIdentity: false
      # Flag indicating whether to use a federated token for authentication
      useFederatedToken: false
      # Client ID of the user-assigned managed identity (if applicable)
      userAssignedId: &amp;lt;your-user-assigned-id&amp;gt;
      # Timeout duration for requests made to the Azure Blob Storage account (in seconds)
      requestTimeout: &amp;lt;your-request-timeout&amp;gt;
      # Domain suffix of the Azure Blob Storage service endpoint (e.g., core.windows.net)
      endpointSuffix: &amp;lt;your-endpoint-suffix&amp;gt;
    bucketNames:
      chunks: &amp;#34;chunks&amp;#34;
      ruler: &amp;#34;ruler&amp;#34;
      admin: &amp;#34;admin&amp;#34;
deploymentMode: Distributed

ingester:
  replicas: 3
  zoneAwareReplication:
    enabled: false
querier:
  replicas: 3
  maxUnavailable: 2
queryFrontend:
  replicas: 2
  maxUnavailable: 1
queryScheduler:
  replicas: 2
distributor:
  replicas: 3
  maxUnavailable: 2
compactor:
  replicas: 1
indexGateway:
  replicas: 2
  maxUnavailable: 1

bloomPlanner:
  replicas: 0
bloomBuilder:
  replicas: 0
bloomGateway:
  replicas: 0

backend:
  replicas: 0
read:
  replicas: 0
write:
  replicas: 0

singleBinary:
  replicas: 0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To configure other storage providers, refer to the &lt;a href=&#34;../reference/&#34;&gt;Helm Chart Reference&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;deploying-the-loki-helm-chart-to-a-production-environment&#34;&gt;Deploying the Loki Helm chart to a Production Environment&lt;/h2&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;We are actively working on providing more guides for deploying Loki in production.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;We recommend running Loki at scale within a cloud environment like AWS, Azure, or GCP. The below guides will show you how to deploy a minimally viable production environment.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/deployment-guides/aws/&#34;&gt;Deploy Loki on AWS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/deployment-guides/azure/&#34;&gt;Deploy Loki on Azure&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next Steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Configure an agent to 
    &lt;a href=&#34;/docs/loki/v3.7.x/send-data/&#34;&gt;send log data to Loki&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Monitor the Loki deployment using the 
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/monitor-and-alert/&#34;&gt;Meta Monitoring Helm chart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="install-the-microservice-helm-chart">Install the microservice Helm chart&lt;/h1>
&lt;p>This Helm Chart deploys Grafana Loki on Kubernetes.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>As of March 16, 2026, the Loki Helm Chart is being maintained by Grafana Champions and the Grafana Community in the &lt;a href="https://github.com/grafana-community/helm-charts" target="_blank" rel="noopener noreferrer">Grafana-community/helm-charts repository&lt;/a>. Please open issues and pull requests for the chart against the Grafana-community repo.&lt;/p></description></item><item><title>Install the simple scalable Helm chart</title><link>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/install-scalable/</link><pubDate>Thu, 09 Apr 2026 02:28:18 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/install-scalable/</guid><content><![CDATA[&lt;h1 id=&#34;install-the-simple-scalable-helm-chart&#34;&gt;Install the simple scalable Helm chart&lt;/h1&gt;
&lt;p&gt;This Helm Chart deploys Grafana Loki in 
    &lt;a href=&#34;/docs/loki/v3.7.x/get-started/deployment-modes/#simple-scalable&#34;&gt;simple scalable mode&lt;/a&gt; within a Kubernetes cluster.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;As of March 16, 2026, the Loki Helm Chart is being maintained by Grafana Champions and the Grafana Community in the &lt;a href=&#34;https://github.com/grafana-community/helm-charts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana-community/helm-charts repository&lt;/a&gt;. Please open issues and pull requests for the chart against the Grafana-community repo. Simple Scalable Deployment (SSD) mode is being deprecated. The timeline for the deprecation is to be determined (TBD), but will happen before Loki 4.0 is released.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-tip&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Tip&lt;/p&gt;&lt;p&gt;With the move to the Grafana-community repository, the chart numbering has changed. Major version updates signal breaking changes in the chart. For more information, refer to the &lt;a href=&#34;https://github.com/grafana-community/helm-charts/blob/main/charts/loki/README.md#upgrading&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;README&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;This chart configures Loki to run &lt;code&gt;read&lt;/code&gt;, &lt;code&gt;write&lt;/code&gt;, and &lt;code&gt;backend&lt;/code&gt; targets in a 
    &lt;a href=&#34;/docs/loki/v3.7.x/get-started/deployment-modes/#simple-scalable&#34;&gt;scalable mode&lt;/a&gt;. Loki’s simple scalable deployment mode separates execution paths into read, write, and backend targets.&lt;/p&gt;
&lt;p&gt;The default Helm chart deploys the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read component (3 replicas)&lt;/li&gt;
&lt;li&gt;Write component (3 replicas)&lt;/li&gt;
&lt;li&gt;Backend component (3 replicas)&lt;/li&gt;
&lt;li&gt;Loki Canary (1 DaemonSet)&lt;/li&gt;
&lt;li&gt;Gateway (1 NGINX replica)&lt;/li&gt;
&lt;li&gt;Minio (optional, if &lt;code&gt;minio.enabled=true&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Chunks cache (1 replica)&lt;/li&gt;
&lt;li&gt;Results cache (1 replica)&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;We do not recommended running scalable mode with &lt;code&gt;filesystem&lt;/code&gt; storage. For the purpose of this guide, we will use MinIO as the object storage to provide a complete example.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Helm 3 or above. See &lt;a href=&#34;https://helm.sh/docs/intro/install/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Installing Helm&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A running Kubernetes cluster (must have at least 3 nodes).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;deploying-the-helm-chart-for-development-and-testing&#34;&gt;Deploying the Helm chart for development and testing&lt;/h2&gt;
&lt;p&gt;The following steps show how to deploy the Loki Helm chart in simple scalable mode using the included MinIO as the storage backend. Our recommendation is to start here for development and testing purposes. Then configure Loki with an object storage provider when moving to production.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Add the &lt;a href=&#34;https://github.com/grafana-community/helm-charts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Community chart repository&lt;/a&gt; to Helm:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm repo add grafana-community https://grafana-community.github.io/helm-charts&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the chart repository:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm repo update&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the configuration file &lt;code&gt;values.yaml&lt;/code&gt;. The example below illustrates how to deploy Loki in test mode using MinIO as storage:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  loki:
    schemaConfig:
      configs:
        - from: &amp;#34;2024-04-01&amp;#34;
          store: tsdb
          object_store: s3
          schema: v13
          index:
            prefix: loki_index_
            period: 24h
    ingester:
      chunk_encoding: snappy
    querier:
      # Default is 4, if you have enough memory and CPU you can increase, reduce if OOMing
      max_concurrent: 4
    pattern_ingester:
      enabled: true
    limits_config:
      allow_structured_metadata: true
      volume_enabled: true

  deploymentMode: SimpleScalable

  backend:
    replicas: 2
  read:
    replicas: 2
  write:
    replicas: 3 # To ensure data durability with replication

  # Enable minio for storage
  minio:
    enabled: true

  gateway:
    service:
      type: LoadBalancer&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install or upgrade the Loki deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;To install:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm install --values values.yaml loki grafana-community/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To upgrade:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm upgrade --values values.yaml loki grafana-community/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;object-storage-configuration&#34;&gt;Object Storage Configuration&lt;/h2&gt;
&lt;p&gt;After testing Loki with MinIO, we recommend configuring Loki with an object storage provider. The following examples shows how to configure Loki with different object storage providers:&lt;/p&gt;


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;When deploying Loki using S3 Storage &lt;strong&gt;DO NOT&lt;/strong&gt; use the default bucket names;  &lt;code&gt;chunk&lt;/code&gt;, &lt;code&gt;ruler&lt;/code&gt; and &lt;code&gt;admin&lt;/code&gt;. Choose a unique name for each bucket. For more information see the following &lt;a href=&#34;/blog/2024/06/27/grafana-security-update-grafana-loki-and-unintended-data-write-attempts-to-amazon-s3-buckets/&#34;&gt;security update&lt;/a&gt;. This caution does not apply when you are using MinIO. When using MinIO we recommend using the default bucket names.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;S3&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&gt;
&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;loki:
  schemaConfig:
    configs:
      - from: &amp;#34;2024-04-01&amp;#34;
        store: tsdb
        object_store: s3
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  storage_config:
    aws:
      region: &amp;lt;AWS region your bucket is in, for example, `eu-west-2`&amp;gt;
      bucketnames: &amp;lt;Your AWS bucket for chunk, for example, `aws-loki-dev-chunk`&amp;gt;
      s3forcepathstyle: false
  pattern_ingester:
    enabled: true
  limits_config:
    allow_structured_metadata: true
    volume_enabled: true
    retention_period: 672h # 28 days retention
  querier:
    max_concurrent: 4

  storage:
    type: s3
    bucketNames:
      chunks: &amp;lt;Your AWS bucket for chunk, for example, `aws-loki-dev-chunk`&amp;gt;
      ruler: &amp;lt;Your AWS bucket for ruler, for example,  `aws-loki-dev-ruler`&amp;gt;
      admin: &amp;lt;Your AWS bucket for admin, for example,  `aws-loki-dev-admin`&amp;gt;
    s3:
      # s3 URL can be used to specify the endpoint, access key, secret key, and bucket name this works well for S3 compatible storages or if you are hosting Loki on-premises and want to use S3 as the storage backend. Either use the s3 URL or the individual fields below (AWS endpoint, region, secret).
      s3: s3://access_key:secret_access_key@custom_endpoint/bucket_name
      # AWS endpoint URL
      endpoint: &amp;lt;YOUR_ENDPOINT&amp;gt;
      # AWS region where the S3 bucket is located
      region: &amp;lt;YOUR_REGION&amp;gt;
      # AWS secret access key
      secretAccessKey: &amp;lt;YOUR_SECRET_ACCESS_KEY&amp;gt;
      # AWS access key ID
      accessKeyId: &amp;lt;YOUR_ACCESS_KEY_ID&amp;gt;
      # AWS signature version (e.g., v2 or v4)
      signatureVersion: &amp;lt;YOUR_SIGNATURE_VERSION&amp;gt;
      # Forces the path style for S3 (true/false)
      s3ForcePathStyle: false
      # Allows insecure (HTTP) connections (true/false)
      insecure: false
      # HTTP configuration settings
      http_config: {}

deploymentMode: SimpleScalable

backend:
  replicas: 3
read:
  replicas: 3
write:
  replicas: 3

# Disable minio storage
minio:
  enabled: false&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Azure&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&gt;
&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;
loki:
  schemaConfig:
    configs:
      - from: &amp;#34;2024-04-01&amp;#34;
        store: tsdb
        object_store: azure
        schema: v13
        index:
          prefix: loki_index_
          period: 24h
  ingester:
    chunk_encoding: snappy
  tracing:
    enabled: true
  querier:
    max_concurrent: 4

  storage:
    type: azure
    azure:
      # Name of the Azure Blob Storage account
      accountName: &amp;lt;YOUR_ACCOUNT_NAME&amp;gt;
      # Key associated with the Azure Blob Storage account
      accountKey: &amp;lt;YOUR_ACCOUNT_KEY&amp;gt;
      # Comprehensive connection string for Azure Blob Storage account (Can be used to replace endpoint, accountName, and accountKey)
      connectionString: &amp;lt;YOUR_CONNECTION_STRING&amp;gt;
      # Flag indicating whether to use Azure Managed Identity for authentication
      useManagedIdentity: false
      # Flag indicating whether to use a federated token for authentication
      useFederatedToken: false
      # Client ID of the user-assigned managed identity (if applicable)
      userAssignedId: &amp;lt;YOUR_USER_ASSIGNED_ID&amp;gt;
      # Timeout duration for requests made to the Azure Blob Storage account (in seconds)
      requestTimeout: &amp;lt;YOUR_REQUEST_TIMEOUT&amp;gt;
      # Domain suffix of the Azure Blob Storage service endpoint (e.g., core.windows.net)
      endpointSuffix: &amp;lt;YOUR_ENDPOINT_SUFFIX&amp;gt;
    bucketNames:
      chunks: &amp;#34;chunks&amp;#34;
      ruler: &amp;#34;ruler&amp;#34;
      admin: &amp;#34;admin&amp;#34;

deploymentMode: SimpleScalable

backend:
  replicas: 3
read:
  replicas: 3
write:
  replicas: 3

# Disable minio storage
minio:
  enabled: false&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To configure other storage providers, refer to the 
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/reference/&#34;&gt;Helm Chart Reference&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next Steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Configure an agent to 
    &lt;a href=&#34;/docs/loki/v3.7.x/send-data/&#34;&gt;send log data to Loki&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Monitor the Loki deployment using the 
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/monitor-and-alert/&#34;&gt;Meta Monitoring Helm chart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="install-the-simple-scalable-helm-chart">Install the simple scalable Helm chart&lt;/h1>
&lt;p>This Helm Chart deploys Grafana Loki in
&lt;a href="/docs/loki/v3.7.x/get-started/deployment-modes/#simple-scalable">simple scalable mode&lt;/a> within a Kubernetes cluster.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>As of March 16, 2026, the Loki Helm Chart is being maintained by Grafana Champions and the Grafana Community in the &lt;a href="https://github.com/grafana-community/helm-charts" target="_blank" rel="noopener noreferrer">Grafana-community/helm-charts repository&lt;/a>. Please open issues and pull requests for the chart against the Grafana-community repo. Simple Scalable Deployment (SSD) mode is being deprecated. The timeline for the deprecation is to be determined (TBD), but will happen before Loki 4.0 is released.&lt;/p></description></item><item><title>Cloud Deployment Guides</title><link>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/deployment-guides/</link><pubDate>Thu, 09 Apr 2026 02:28:18 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/deployment-guides/</guid><content><![CDATA[&lt;h1 id=&#34;cloud-deployment-guides&#34;&gt;Cloud Deployment Guides&lt;/h1&gt;
&lt;p&gt;The following guides provide step-by-step instructions for deploying Loki on cloud providers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/deployment-guides/aws/&#34;&gt;Deploy Loki on AWS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/deployment-guides/azure/&#34;&gt;Deploy Loki on Azure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/loki/v3.7.x/setup/install/helm/deployment-guides/gcp/&#34;&gt;Deploy Loki on GCP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="cloud-deployment-guides">Cloud Deployment Guides&lt;/h1>
&lt;p>The following guides provide step-by-step instructions for deploying Loki on cloud providers:&lt;/p>
&lt;ul>
&lt;li>
&lt;a href="/docs/loki/v3.7.x/setup/install/helm/deployment-guides/aws/">Deploy Loki on AWS&lt;/a>&lt;/li>
&lt;li>
&lt;a href="/docs/loki/v3.7.x/setup/install/helm/deployment-guides/azure/">Deploy Loki on Azure&lt;/a>&lt;/li>
&lt;li>
&lt;a href="/docs/loki/v3.7.x/setup/install/helm/deployment-guides/gcp/">Deploy Loki on GCP&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Configure storage</title><link>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/configure-storage/</link><pubDate>Thu, 09 Apr 2026 02:28:18 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/configure-storage/</guid><content><![CDATA[&lt;h1 id=&#34;configure-storage&#34;&gt;Configure storage&lt;/h1&gt;
&lt;p&gt;The &lt;a href=&#34;../install-scalable/&#34;&gt;scalable&lt;/a&gt; installation requires a managed object store such as AWS S3 or Google Cloud Storage or a self-hosted store such as Minio. The &lt;a href=&#34;../install-monolithic/&#34;&gt;single binary&lt;/a&gt; installation can use the filesystem for storage, but we recommend configuring object storage via cloud provider or pointing Loki at a MinIO cluster for production deployments.&lt;/p&gt;
&lt;p&gt;This guide assumes Loki will be installed in one of the modes above and that a &lt;code&gt;values.yaml &lt;/code&gt; has been created.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To use a managed object store:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;code&gt;values.yaml&lt;/code&gt; file, set the value for &lt;code&gt;storage.type&lt;/code&gt; to &lt;code&gt;azure&lt;/code&gt;, &lt;code&gt;gcs&lt;/code&gt;, or &lt;code&gt;s3&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the storage client under &lt;code&gt;loki.storage.azure&lt;/code&gt;, &lt;code&gt;loki.storage.gcs&lt;/code&gt;, or &lt;code&gt;loki.storage.s3&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;To install Minio alongside Loki:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Change the configuration in &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable Minio&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;minio:
  enabled: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;To use Thanos object store clients (experimental):&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Loki supports using Thanos-compatible storage clients as an alternative to the built-in storage clients. This is configured via &lt;code&gt;loki.storage.use_thanos_objstore&lt;/code&gt; and will become the default in a future release.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Enable Thanos object store in &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;loki:
  storage:
    use_thanos_objstore: true
    object_store:
      type: s3  # Valid options: s3, gcs, azure
      s3:
        endpoint: &amp;lt;YOUR_ENDPOINT&amp;gt;
        region: &amp;lt;YOUR_REGION&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the storage client under &lt;code&gt;loki.storage.object_store.s3&lt;/code&gt;, &lt;code&gt;loki.storage.object_store.gcs&lt;/code&gt;, or &lt;code&gt;loki.storage.object_store.azure&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;To grant access to S3 via an IAM role without providing credentials:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Provision an IAM role, policy and S3 bucket as described in 
    &lt;a href=&#34;/docs/loki/v3.7.x/configure/storage/#aws-deployment-s3-single-store&#34;&gt;Storage&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the Terraform module was used note the annotation emitted by &lt;code&gt;terraform output -raw annotation&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add the IAM role annotation to the service account in &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;serviceAccount:
  annotations:
    &amp;#34;eks.amazonaws.com/role-arn&amp;#34;: &amp;#34;arn:aws:iam::&amp;lt;account id&amp;gt;:role/&amp;lt;role name&amp;gt;&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the storage:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;loki:
  storage:
    type: &amp;#34;s3&amp;#34;
    s3:
      region: eu-central-1
    bucketNames:
      chunks: &amp;lt;bucket name&amp;gt;
      ruler: &amp;lt;bucket name&amp;gt;
      admin: &amp;lt;bucket name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Note that &lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;secretAccessKey&lt;/code&gt; and &lt;code&gt;accessKeyId&lt;/code&gt; have been omitted.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="configure-storage">Configure storage&lt;/h1>
&lt;p>The &lt;a href="../install-scalable/">scalable&lt;/a> installation requires a managed object store such as AWS S3 or Google Cloud Storage or a self-hosted store such as Minio. The &lt;a href="../install-monolithic/">single binary&lt;/a> installation can use the filesystem for storage, but we recommend configuring object storage via cloud provider or pointing Loki at a MinIO cluster for production deployments.&lt;/p></description></item><item><title>Monitoring</title><link>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/monitor-and-alert/</link><pubDate>Thu, 09 Apr 2026 02:28:18 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.7.x/setup/install/helm/monitor-and-alert/</guid><content><![CDATA[&lt;h1 id=&#34;monitoring&#34;&gt;Monitoring&lt;/h1&gt;
&lt;!-- vale Grafana.We = NO --&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;We no longer recommend using the meta-monitoring Helm chart to monitor Loki. To consolidate monitoring efforts into one Helm chart, Grafana Labs recommends using the &lt;a href=&#34;https://github.com/grafana/k8s-monitoring-helm&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Kubernetes monitoring Helm chart&lt;/a&gt;. Instructions for setting up the Kubernetes monitoring Helm chart can be found under 
    &lt;a href=&#34;/docs/loki/v3.7.x/operations/meta-monitoring/&#34;&gt;Manage&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- vale Grafana.We = YES --&gt;
]]></content><description>&lt;h1 id="monitoring">Monitoring&lt;/h1>
&lt;!-- vale Grafana.We = NO -->
&lt;div class="admonition admonition-warning">&lt;blockquote>&lt;p class="title text-uppercase">Warning&lt;/p>&lt;p>We no longer recommend using the meta-monitoring Helm chart to monitor Loki. To consolidate monitoring efforts into one Helm chart, Grafana Labs recommends using the &lt;a href="https://github.com/grafana/k8s-monitoring-helm" target="_blank" rel="noopener noreferrer">Kubernetes monitoring Helm chart&lt;/a>. Instructions for setting up the Kubernetes monitoring Helm chart can be found under
&lt;a href="/docs/loki/v3.7.x/operations/meta-monitoring/">Manage&lt;/a>.&lt;/p></description></item></channel></rss>