#0
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack --create-namespace --namespace monitoring
# Takes sometime to complete, you can open another terminal to check pods
Check its status by running:
#1
kubectl --namespace monitoring get pods -l "release=kube-prometheus-stack"
Get Grafana ‘admin’ user password by running:
#2
kubectl --namespace monitoring get secrets kube-prometheus-stack-grafana -o jsonpath="{.data.admin-password}" | base64 -d ; echo
#3
# certificate-monitoring.yaml
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: syncroze-tls
namespace: monitoring
spec:
dnsNames:
- grafana.syncroze.com
- prometheus.syncroze.com
- alertmanager.syncroze.com
privateKey:
rotationPolicy: Always
issuerRef:
kind: ClusterIssuer
name: letsencrypt-prod
secretName: syncroze-tls
#4
kubectl apply -f certificate-monitoring.yaml
#5
# ingress-monitoring.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-monitoring
namespace: monitoring
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.org/ssl-redirect: "true"
spec:
ingressClassName: nginx
tls:
- hosts:
- grafana.syncroze.com
- prometheus.syncroze.com
- alertmanager.syncroze.com
secretName: syncroze-tls
rules:
- host: grafana.syncroze.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kube-prometheus-stack-grafana
port:
number: 80
- host: prometheus.syncroze.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kube-prometheus-stack-prometheus
port:
number: 9090
- host: alertmanager.syncroze.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kube-prometheus-stack-alertmanager
port:
number: 9093
#6
kubectl apply -f ingress-monitoring.yaml