:_mod-docs-content-type: ASSEMBLY
:context: cluster-logging-loki
[id="cluster-logging-loki"]
= Configuring the LokiStack log store
include::_attributes/common-attributes.adoc[]

toc::[]

In {logging} documentation, _LokiStack_ refers to the {logging} supported combination of Loki and web proxy with {product-title} authentication integration. LokiStack's proxy uses {product-title} authentication to enforce multi-tenancy. _Loki_ refers to the log store as either the individual component or an external store.

include::modules/logging-creating-new-group-cluster-admin-user-role.adoc[leveloffset=+1]

include::modules/logging-loki-restart-hardening.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources
* link:https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets[Pod disruption budgets Kubernetes documentation]

include::modules/logging-loki-reliability-hardening.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources
* link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#podantiaffinity-v1-core[`PodAntiAffinity` v1 core Kubernetes documentation]
* link:https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity[Assigning Pods to Nodes Kubernetes documentation]
* xref:../../../nodes/scheduling/nodes-scheduler-pod-affinity.adoc#nodes-scheduler-pod-affinity[Placing pods relative to other pods using affinity and anti-affinity rules]

include::modules/logging-loki-zone-aware-rep.adoc[leveloffset=+1]

include::modules/logging-loki-zone-fail-recovery.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources
* link:https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/#spread-constraint-definition[Topology spread constraints Kubernetes documentation]
* link:https://kubernetes.io/docs/setup/best-practices/multiple-zones/#storage-access-for-zones[Kubernetes storage documentation].

ifdef::openshift-enterprise[]
* xref:../../../nodes/scheduling/nodes-scheduler-pod-topology-spread-constraints.adoc#nodes-scheduler-pod-topology-spread-constraints-configuring[Controlling pod placement by using pod topology spread constraints]
endif::[]

include::modules/logging-loki-log-access.adoc[leveloffset=+1,tag=!NetObservMode]

[role="_additional-resources"]
.Additional resources

ifdef::openshift-enterprise[]
* xref:../../../authentication/using-rbac.adoc#using-rbac[Using RBAC to define and apply permissions]
endif::[]

include::modules/logging-loki-retention.adoc[leveloffset=+1]
include::modules/loki-rate-limit-errors.adoc[leveloffset=+1]
include::modules/logging-loki-memberlist-ip.adoc[leveloffset=+1]

[role="_additional-resources"]
[id="additional-resources_cluster-logging-loki"]
== Additional resources
* link:https://grafana.com/docs/loki/latest/get-started/components/[Loki components documentation]
* link:https://grafana.com/docs/loki/latest/logql/[Loki Query Language (LogQL) documentation]
* link:https://loki-operator.dev/docs/howto_connect_grafana.md/[Grafana Dashboard documentation]
* link:https://loki-operator.dev/docs/object_storage.md/[Loki Object Storage documentation]
* link:https://loki-operator.dev/docs/api.md/#loki-grafana-com-v1-IngestionLimitSpec[{loki-op} `IngestionLimitSpec` documentation]
* link:https://grafana.com/docs/loki/latest/operations/storage/schema/#changing-the-schema[Loki Storage Schema documentation]
