Collecting logs from Scalar products on a Kubernetes cluster
This document explains how to deploy Grafana Loki and Promtail on Kubernetes with Helm. After following this document, you can collect logs of Scalar products on your Kubernetes environment.
If you use a managed Kubernetes cluster and you want to use the cloud service features for monitoring and logging, please refer to the following document.
Prerequisites
- Create a Kubernetes cluster.
- Create a Bastion server and set
kubeconfig
. - Deploy Prometheus Operator (we use Grafana to explore collected logs)
Add the grafana helm repository
This document uses Helm for the deployment of Prometheus Operator.
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
Prepare a custom values file
Please get the sample file scalar-loki-stack-custom-values.yaml for loki-stack. For the logging of Scalar products, this sample file's configuration is recommended.
Set nodeSelector in the custom values file (Recommended in the production environment)
In the production environment, it is recommended to add labels to the worker node for Scalar products as follows.
- EKS - Add a label to the worker node that is used for nodeAffinity
- AKS - Add a label to the worker node that is used for nodeAffinity
Since the promtail pods deployed in this document collect only Scalar product logs, it is sufficient to deploy promtail pods only on the worker node where Scalar products are running. So, you should set nodeSelector in the custom values file (scalar-loki-stack-custom-values.yaml) as follows if you add labels to your Kubernetes worker node.
- ScalarDB Cluster Example
promtail:
nodeSelector:
scalar-labs.com/dedicated-node: scalardb-cluster - (Deprecated) ScalarDB Server Example
promtail:
nodeSelector:
scalar-labs.com/dedicated-node: scalardb - ScalarDL Ledger Example
promtail:
nodeSelector:
scalar-labs.com/dedicated-node: scalardl-ledger