after csi
This commit is contained in:
parent
f4de947371
commit
73e1bca2b8
|
|
@ -0,0 +1,40 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIG8TCCBdmgAwIBAgIQOeJ9xOx5YP7AUV8ZEo0nzTANBgkqhkiG9w0BAQsFADCB
|
||||||
|
lTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
||||||
|
A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQD
|
||||||
|
EzRTZWN0aWdvIFJTQSBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2Vy
|
||||||
|
dmVyIENBMB4XDTI1MDYyMzAwMDAwMFoXDTI2MDcyNDIzNTk1OVowXjELMAkGA1UE
|
||||||
|
BhMCS1IxFDASBgNVBAgTC0d5ZW9uZ2dpLWRvMRgwFgYDVQQKEw9OSE4gQ29ycG9y
|
||||||
|
YXRpb24xHzAdBgNVBAMMFiouZ3B1bGl2ZS5uaG5jbG91ZC5jb20wggEiMA0GCSqG
|
||||||
|
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSVEmunUiLR4PYyxlfYXbhN7vWFalhqAh7
|
||||||
|
DDlTiChKrV6vap4gSiYc1mXI/BO1McrkX9zYKmUpCxDGwMGFzkkUx35BQlJgqVej
|
||||||
|
7gnWT+gOSzx2+fL5dUOVvNVUp+jgyorxiA0XpV37IW3DHnagR9G+i7RUQ5iyi8Kt
|
||||||
|
DtyoPBs6gDV4n2vOX+5jRotAZSdjKJzFtaV4EhFzASK5C1qeYb57A+DBriryFwKp
|
||||||
|
M/kcrYBdOqM13yAEBYQJKEoGxHjommYUFvqs1asq6ty5wIYoatQ32WohJRDG5LfT
|
||||||
|
KWxiLU7Payu9VOK6Z9UpoFVoyMe10w0i1JDj6ORzxQrnq+eVgx4fAgMBAAGjggNx
|
||||||
|
MIIDbTAfBgNVHSMEGDAWgBQX2dYlJ2f5McJJQ9kwNkSMbKlP6zAdBgNVHQ4EFgQU
|
||||||
|
pALe+uJj65++VT325zXelHyShsYwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQC
|
||||||
|
MAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEoGA1UdIARDMEEwNQYM
|
||||||
|
KwYBBAGyMQECAQMEMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20v
|
||||||
|
Q1BTMAgGBmeBDAECAjBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLnNlY3Rp
|
||||||
|
Z28uY29tL1NlY3RpZ29SU0FPcmdhbml6YXRpb25WYWxpZGF0aW9uU2VjdXJlU2Vy
|
||||||
|
dmVyQ0EuY3JsMIGKBggrBgEFBQcBAQR+MHwwVQYIKwYBBQUHMAKGSWh0dHA6Ly9j
|
||||||
|
cnQuc2VjdGlnby5jb20vU2VjdGlnb1JTQU9yZ2FuaXphdGlvblZhbGlkYXRpb25T
|
||||||
|
ZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3Rp
|
||||||
|
Z28uY29tMDcGA1UdEQQwMC6CFiouZ3B1bGl2ZS5uaG5jbG91ZC5jb22CFGdwdWxp
|
||||||
|
dmUubmhuY2xvdWQuY29tMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDYCVU7
|
||||||
|
lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZee8tuiAAAEAwBHMEUCIQDe
|
||||||
|
krCnoAhwJvOh5bEn635rGE7XuS7+Ow8YGI+bkCp/AgIgZ8SZ11QtG7HKnRaKnblx
|
||||||
|
ojJT4kRhBjmpDEieOs5auXEAdgCsqzBwbOvshDH0E9L0kV8RHkIkQ7HypoxPPCs7
|
||||||
|
px4CwwAAAZee8tt/AAAEAwBHMEUCIA1ILtdgGC3jf3fueN4QssdbRKwlYthKATyc
|
||||||
|
CAQvMZGLAiEA42joeMgiU2Z+Zkwbeh4RLCuB3O3TMdFqoGfh6o83p0gAdgDXbX0Q
|
||||||
|
0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZee8tuOAAAEAwBHMEUCIQDn
|
||||||
|
7eeh1WNxEzAwsgskG93x3Twb6IstvOLCeRhzPR5q4QIgUh6yZ6+wtkstBVR1OQqB
|
||||||
|
AicPDVJccO3X+FRqU2pRBa0wDQYJKoZIhvcNAQELBQADggEBACfbJO1O5LbBRSAU
|
||||||
|
t7qz4Y15d/K2vgW8xiltL6F73mhpw96zpw+k5NqArCEXCyJ6YptzVByQN7f+kjKr
|
||||||
|
KEkez4cyURzza8dMFtnMOaNL5F7a4N3xbCa28erBKqcC4NQJnaYfj2Xwm+PV+aUa
|
||||||
|
EA0xEVJcxRlIWSrs4AXwOclmKxFK3Vq/NzG6+6BG49uh60uGB/GKZvOt/nyBRRaq
|
||||||
|
uNXhuZ4t0XcIVv/HQ2WBdHK3PFPzY+4aMrMxdyvL5uHaJeoFswmPVFA8HHOlHBHw
|
||||||
|
ry54Z2opysHXqdh++JLZOUe9KiB2ds4Hu88u31vGbVJO3ivPjjGU2815e3dh4FTv
|
||||||
|
hXEWRXI=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDSVEmunUiLR4PY
|
||||||
|
yxlfYXbhN7vWFalhqAh7DDlTiChKrV6vap4gSiYc1mXI/BO1McrkX9zYKmUpCxDG
|
||||||
|
wMGFzkkUx35BQlJgqVej7gnWT+gOSzx2+fL5dUOVvNVUp+jgyorxiA0XpV37IW3D
|
||||||
|
HnagR9G+i7RUQ5iyi8KtDtyoPBs6gDV4n2vOX+5jRotAZSdjKJzFtaV4EhFzASK5
|
||||||
|
C1qeYb57A+DBriryFwKpM/kcrYBdOqM13yAEBYQJKEoGxHjommYUFvqs1asq6ty5
|
||||||
|
wIYoatQ32WohJRDG5LfTKWxiLU7Payu9VOK6Z9UpoFVoyMe10w0i1JDj6ORzxQrn
|
||||||
|
q+eVgx4fAgMBAAECggEAYgEvciNMvcV9jKOad4S5OZlYN5nRWrVK+lcIUUF1ENL2
|
||||||
|
90L1WnNijfZi6EN5RWllsoNuqvUaPQUwdIQ1yI0GJZ4NWQg3zV2q/jI5ODj0ltB8
|
||||||
|
5K10B8QZ0WhzeSZiT3hhRMlR3G5MO+voMs57lRTSCXkcdlUnDi8sb6oorGWRhHCH
|
||||||
|
GgteQt5vxXWR5ClA+PwVa0JiwciwvjBckbNydz+LL4rOcGstsl2O231zjVmge0Uv
|
||||||
|
CJDTh4xUdSxe0Yr+GRFH8tAgeZIoHpCC0v4k31j+JqODnHrL4SvblhD19OEIUOMs
|
||||||
|
Z7iSvdx4wM3WzzpehuCo19PtJ0+J2S7o58JnFCqDoQKBgQDUFCHoW6geniHtkmJQ
|
||||||
|
90zaHXAtbNuunRY4Jw/ugv5fdfBnhE0SU9/Buri5Okz+nJLjgydbfU9JNXNrSMQg
|
||||||
|
QqCzbwqUZGnNzGKalDh7hPT9TkIdOtLRTYTPMP2EHEgmoUJ76jOKN+AbRAYsPQ0c
|
||||||
|
18KunO8jFxzcJyFcLetVlwGyIQKBgQD942gyYIQ9126i1m3dLAQlngqYEfUFxXCR
|
||||||
|
Az8cSzBQce1NF5/12CumRl8w2uBzoLoJzHr7E4qTFrsrinNqjM5YJM+ca2Ycv4QC
|
||||||
|
UlKhKXdCrTOju3WGffu+r1Y6uPZPuFRxv51Pyav/wFFCl5W17l0G5xErBr1YBWjv
|
||||||
|
3HOeYB9IPwKBgQCMO4+8PDcrn7ahh+T40r1/kG2nq86LZJXXpYS0WuvmpW7ElEf+
|
||||||
|
MXXIfTY+TJ2y0keSpxu0NGTj7LMYIrKE/mmSnH8rZkZL7bTZr961VlJE2KWA/G+A
|
||||||
|
NLj349YOsEDJQmJa258e6xmGDfHi+K+d/dFecqjx1AuiS0GU2Uw+eS6G4QKBgQD1
|
||||||
|
jTDksFaWXTsjARMm+4BTRaRnac66Mzho+GPcoJfs5hMmIbhTFS06VwuP+9Fj48qq
|
||||||
|
2XsEROUc17pVJUX1gpO7ynaFiZYsLcqmWCqUtr8i3NN6Az9qwYRu67QRfXy0o8oA
|
||||||
|
bdvfJGVXKREuv99LI2wT1f3TyGPusuTIQEYOolb/DwKBgGD+VrIx83I4MjpV1FGr
|
||||||
|
AGAw/1lAnQ/aHM7lSZxbBY2ZFX0JS8x6frCFW4M2BHXHXMtlX76itMlGXHjWLiC2
|
||||||
|
rJHwd2s8i9YSWVZ8Wr7luhw+Yjwe90L2y4avZoeADD8cbeQt6YvSzLXQwMa29cK1
|
||||||
|
NK6a+9bW9jSGbAW7DGXl54ck
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
# Gateway.yaml
|
||||||
|
apiVersion: networking.istio.io/v1alpha3
|
||||||
|
kind: Gateway
|
||||||
|
metadata:
|
||||||
|
name: grafana-gateway
|
||||||
|
namespace: grafana
|
||||||
|
spec:
|
||||||
|
# The selector matches the ingress gateway pod labels.
|
||||||
|
# If you installed Istio using Helm following the standard documentation, this would be "istio=ingress"
|
||||||
|
selector:
|
||||||
|
istio: ingressgateway
|
||||||
|
servers:
|
||||||
|
- port:
|
||||||
|
number: 80
|
||||||
|
name: http
|
||||||
|
protocol: HTTP
|
||||||
|
hosts:
|
||||||
|
- monitoring.gpulive.nhncloud.com
|
||||||
|
tls:
|
||||||
|
httpsRedirect: true # sends 301 redirect for http requests
|
||||||
|
- port:
|
||||||
|
number: 443
|
||||||
|
name: https
|
||||||
|
protocol: HTTPS
|
||||||
|
hosts:
|
||||||
|
- monitoring.gpulive.nhncloud.com
|
||||||
|
tls:
|
||||||
|
mode: SIMPLE # enables HTTPS on this port
|
||||||
|
credentialName: gpulive-new-ssl
|
||||||
|
---
|
||||||
|
# virtual-service.yaml
|
||||||
|
apiVersion: networking.istio.io/v1alpha3
|
||||||
|
kind: VirtualService
|
||||||
|
metadata:
|
||||||
|
name: grafana-vs
|
||||||
|
namespace: grafana
|
||||||
|
spec:
|
||||||
|
hosts:
|
||||||
|
- "monitoring.gpulive.nhncloud.com"
|
||||||
|
gateways:
|
||||||
|
- grafana-gateway
|
||||||
|
http:
|
||||||
|
- route:
|
||||||
|
- destination:
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
host: grafana
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
- host: grafana.nhngpuaas.com
|
- host: grafana.sample.com
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- backend:
|
- backend:
|
||||||
|
|
@ -18,7 +18,5 @@ spec:
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- grafana.nhngpuaas.com
|
- grafana.sample.com
|
||||||
secretName: nhngpuaas-ssl
|
secretName: ssl-cc
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -12,6 +12,7 @@ resources:
|
||||||
- sa.yaml
|
- sa.yaml
|
||||||
- secret.yaml
|
- secret.yaml
|
||||||
- service.yaml
|
- service.yaml
|
||||||
- ingress.yaml
|
- pv.yaml
|
||||||
|
- gateway.yaml
|
||||||
- pvc.yaml
|
- pvc.yaml
|
||||||
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: grafana-pvc-pv
|
||||||
|
labels:
|
||||||
|
name: grafana-pvc-pv
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
capacity:
|
||||||
|
storage: 10Gi
|
||||||
|
csi:
|
||||||
|
driver: exa.csi.ddn.com
|
||||||
|
volumeHandle: exa1:/grafana
|
||||||
|
volumeAttributes: # volumeAttributes are the alternative of storageClass params for static (precreated) volumes.
|
||||||
|
# mountOptions: ro, noflock # list of options for `mount` command
|
||||||
|
bindMount: "false" # Determines, whether volume will bind mounted or as a separate lustre mount.
|
||||||
|
|
||||||
|
|
@ -10,4 +10,9 @@ spec:
|
||||||
- "ReadWriteOnce"
|
- "ReadWriteOnce"
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: "10Gi"
|
storage: "10Gi"
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
# to create 1-1 relationship for pod - persistent volume use unique labels
|
||||||
|
name: grafana-pvc-pv
|
||||||
|
|
||||||
|
|
@ -4,7 +4,7 @@ kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- ../../../base/grafana
|
- ../../../base/grafana
|
||||||
|
|
||||||
namespace: monitoring
|
namespace: grafana
|
||||||
|
|
||||||
patches:
|
patches:
|
||||||
- target:
|
- target:
|
||||||
|
|
@ -22,8 +22,3 @@ patches:
|
||||||
name: grafana
|
name: grafana
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
path: patch-deploy.yaml
|
path: patch-deploy.yaml
|
||||||
- target:
|
|
||||||
kind: Ingress
|
|
||||||
name: grafana-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-ingress_grafana.yaml
|
|
||||||
|
|
@ -2,16 +2,10 @@
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
|
|
||||||
namespace: monitoring
|
namespace: grafana
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- prometheus
|
|
||||||
- grafana
|
- grafana
|
||||||
|
|
||||||
generatorOptions:
|
generatorOptions:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
secretGenerator:
|
|
||||||
- name: basic-auth
|
|
||||||
files:
|
|
||||||
- auth
|
|
||||||
type: Opaque
|
|
||||||
|
|
@ -0,0 +1,336 @@
|
||||||
|
apiVersion: v1
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
rules: []
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana-clusterrole
|
||||||
|
rules: []
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: grafana
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana-clusterrolebinding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: grafana-clusterrole
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
grafana.ini: |
|
||||||
|
[analytics]
|
||||||
|
check_for_updates = true
|
||||||
|
[grafana_net]
|
||||||
|
url = https://grafana.net
|
||||||
|
[log]
|
||||||
|
mode = console
|
||||||
|
[paths]
|
||||||
|
data = /var/lib/grafana/
|
||||||
|
logs = /var/log/grafana
|
||||||
|
plugins = /var/lib/grafana/plugins
|
||||||
|
provisioning = /etc/grafana/provisioning
|
||||||
|
[server]
|
||||||
|
domain = 'monitoring.gpulive.nhncloud.com'
|
||||||
|
root_url = 'https://monitoring.gpulive.nhncloud.com'
|
||||||
|
[auth.anonymous]
|
||||||
|
enabled = true
|
||||||
|
org_name = Main Org.
|
||||||
|
org_role = Viewer
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
admin-password: bmhuIUAjMTIz
|
||||||
|
admin-user: YWRtaW4=
|
||||||
|
ldap-toml: ""
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 80
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 3000
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: grafana-pvc-pv
|
||||||
|
name: grafana-pvc-pv
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
capacity:
|
||||||
|
storage: 10Gi
|
||||||
|
csi:
|
||||||
|
driver: exa.csi.ddn.com
|
||||||
|
volumeAttributes:
|
||||||
|
bindMount: "false"
|
||||||
|
volumeHandle: exa1:/grafana
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
name: grafana-pvc
|
||||||
|
namespace: grafana
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: grafana-pvc-pv
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
name: grafana
|
||||||
|
namespace: grafana
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
revisionHistoryLimit: 10
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kubectl.kubernetes.io/default-container: grafana
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: grafana
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/version: 11.5.1
|
||||||
|
helm.sh/chart: grafana-8.10.0
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: POD_IP
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: status.podIP
|
||||||
|
- name: GF_SECURITY_ADMIN_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: admin-user
|
||||||
|
name: grafana
|
||||||
|
- name: GF_SECURITY_ADMIN_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: admin-password
|
||||||
|
name: grafana
|
||||||
|
- name: GF_PATHS_DATA
|
||||||
|
value: /var/lib/grafana/
|
||||||
|
- name: GF_PATHS_LOGS
|
||||||
|
value: /var/log/grafana
|
||||||
|
- name: GF_PATHS_PLUGINS
|
||||||
|
value: /var/lib/grafana/plugins
|
||||||
|
- name: GF_PATHS_PROVISIONING
|
||||||
|
value: /etc/grafana/provisioning
|
||||||
|
image: docker.io/grafana/grafana:11.5.1
|
||||||
|
imagePullPolicy: Always
|
||||||
|
livenessProbe:
|
||||||
|
failureThreshold: 10
|
||||||
|
httpGet:
|
||||||
|
path: /api/health
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
timeoutSeconds: 30
|
||||||
|
name: grafana
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
name: grafana
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 9094
|
||||||
|
name: gossip-tcp
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 9094
|
||||||
|
name: gossip-udp
|
||||||
|
protocol: UDP
|
||||||
|
- containerPort: 6060
|
||||||
|
name: profiling
|
||||||
|
protocol: TCP
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/health
|
||||||
|
port: 3000
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 512Mi
|
||||||
|
requests:
|
||||||
|
cpu: 250m
|
||||||
|
memory: 256Mi
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/grafana
|
||||||
|
name: storage
|
||||||
|
- mountPath: /etc/grafana/grafana.ini
|
||||||
|
name: config
|
||||||
|
subPath: grafana.ini
|
||||||
|
enableServiceLinks: true
|
||||||
|
nodeSelector:
|
||||||
|
nodegroup: nd
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 472
|
||||||
|
runAsGroup: 472
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 472
|
||||||
|
serviceAccountName: grafana
|
||||||
|
shareProcessNamespace: false
|
||||||
|
volumes:
|
||||||
|
- name: storage
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: grafana-pvc
|
||||||
|
- configMap:
|
||||||
|
name: grafana
|
||||||
|
name: config
|
||||||
|
---
|
||||||
|
apiVersion: networking.istio.io/v1alpha3
|
||||||
|
kind: Gateway
|
||||||
|
metadata:
|
||||||
|
name: grafana-gateway
|
||||||
|
namespace: grafana
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
istio: ingressgateway
|
||||||
|
servers:
|
||||||
|
- hosts:
|
||||||
|
- monitoring.gpulive.nhncloud.com
|
||||||
|
port:
|
||||||
|
name: http
|
||||||
|
number: 80
|
||||||
|
protocol: HTTP
|
||||||
|
tls:
|
||||||
|
httpsRedirect: true
|
||||||
|
- hosts:
|
||||||
|
- monitoring.gpulive.nhncloud.com
|
||||||
|
port:
|
||||||
|
name: https
|
||||||
|
number: 443
|
||||||
|
protocol: HTTPS
|
||||||
|
tls:
|
||||||
|
credentialName: nhngpuaas-ssl
|
||||||
|
mode: SIMPLE
|
||||||
|
---
|
||||||
|
apiVersion: networking.istio.io/v1alpha3
|
||||||
|
kind: VirtualService
|
||||||
|
metadata:
|
||||||
|
name: grafana-vs
|
||||||
|
namespace: grafana
|
||||||
|
spec:
|
||||||
|
gateways:
|
||||||
|
- grafana-gateway
|
||||||
|
hosts:
|
||||||
|
- monitoring.gpulive.nhncloud.com
|
||||||
|
http:
|
||||||
|
- route:
|
||||||
|
- destination:
|
||||||
|
host: grafana
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
|
@ -19,7 +19,7 @@ spec:
|
||||||
protocol: HTTPS
|
protocol: HTTPS
|
||||||
tls:
|
tls:
|
||||||
mode: SIMPLE
|
mode: SIMPLE
|
||||||
credentialName: gpulive-ssl # 반드시 istio-system namespace에 존재해야 함
|
credentialName: gpulive-new-ssl # 반드시 istio-system namespace에 존재해야 함
|
||||||
hosts:
|
hosts:
|
||||||
- registry.gpulive.nhncloud.com
|
- registry.gpulive.nhncloud.com
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,6 @@ kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: prometheus-alertmanager-ingress
|
name: prometheus-alertmanager-ingress
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
annotations:
|
|
||||||
# 인증 방법 설정: basic auth
|
|
||||||
nginx.ingress.kubernetes.io/auth-type: basic
|
|
||||||
# basic auth 사용자가 들어있는 secret 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
|
||||||
# 인증 요청시 나오는 메세지 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
|
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
|
|
@ -26,4 +19,4 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- prometheus.cone-chain.com
|
- prometheus.cone-chain.com
|
||||||
secretName: ssl-cc
|
secretName: ssl-cc
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,6 @@ kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: prometheus-ingress
|
name: prometheus-ingress
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
annotations:
|
|
||||||
# 인증 방법 설정: basic auth
|
|
||||||
nginx.ingress.kubernetes.io/auth-type: basic
|
|
||||||
# basic auth 사용자가 들어있는 secret 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
|
||||||
# 인증 요청시 나오는 메세지 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
|
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
|
|
@ -26,4 +19,4 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- prometheus.cone-chain.com
|
- prometheus.cone-chain.com
|
||||||
secretName: ssl-cc
|
secretName: ssl-cc
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ namespace: monitoring
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
|
- pv.yaml
|
||||||
- sa.yaml
|
- sa.yaml
|
||||||
- cluster_role.yaml
|
- cluster_role.yaml
|
||||||
- cm.yaml
|
- cm.yaml
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: prometheus-server-pv
|
||||||
|
labels:
|
||||||
|
name: prometheus-server-pv
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
capacity:
|
||||||
|
storage: 2000Gi
|
||||||
|
csi:
|
||||||
|
driver: exa.csi.ddn.com
|
||||||
|
volumeHandle: exa1:/prometheus-server
|
||||||
|
volumeAttributes: # volumeAttributes are the alternative of storageClass params for static (precreated) volumes.
|
||||||
|
# mountOptions: ro, noflock # list of options for `mount` command
|
||||||
|
bindMount: "false" # Determines, whether volume will bind mounted or as a separate lustre mount.
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: storage-prometheus-alertmanager-0
|
||||||
|
labels:
|
||||||
|
name: storage-prometheus-alertmanager-0
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
capacity:
|
||||||
|
storage: 8Gi
|
||||||
|
csi:
|
||||||
|
driver: exa.csi.ddn.com
|
||||||
|
volumeHandle: exa1:/prometheus-alert
|
||||||
|
volumeAttributes: # volumeAttributes are the alternative of storageClass params for static (precreated) volumes.
|
||||||
|
# mountOptions: ro, noflock # list of options for `mount` command
|
||||||
|
bindMount: "false" # Determines, whether volume will bind mounted or as a separate lustre mount.
|
||||||
|
|
||||||
|
|
@ -16,4 +16,8 @@ spec:
|
||||||
- ReadWriteOnce
|
- ReadWriteOnce
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: "8Gi"
|
storage: "2000Gi"
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
# to create 1-1 relationship for pod - persistent volume use unique labels
|
||||||
|
name: prometheus-server-pv
|
||||||
|
|
|
||||||
|
|
@ -87,4 +87,4 @@ spec:
|
||||||
- ReadWriteOnce
|
- ReadWriteOnce
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: 2Gi
|
storage: 8Gi
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,3 @@ resources:
|
||||||
|
|
||||||
generatorOptions:
|
generatorOptions:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
secretGenerator:
|
|
||||||
- name: basic-auth
|
|
||||||
files:
|
|
||||||
- auth
|
|
||||||
type: Opaque
|
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,6 @@ kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: prometheus-alertmanager-ingress
|
name: prometheus-alertmanager-ingress
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
annotations:
|
|
||||||
# 인증 방법 설정: basic auth
|
|
||||||
nginx.ingress.kubernetes.io/auth-type: basic
|
|
||||||
# basic auth 사용자가 들어있는 secret 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
|
||||||
# 인증 요청시 나오는 메세지 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
|
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
|
|
@ -26,4 +19,4 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- alert.nhngpuaas.com
|
- alert.nhngpuaas.com
|
||||||
secretName: nhngpuaas-ssl
|
secretName: nhngpuaas-ssl
|
||||||
|
|
|
||||||
|
|
@ -1,248 +0,0 @@
|
||||||
# Source: prometheus/charts/kube-state-metrics/templates/role.yaml
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: kube-state-metrics-5.28.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: kube-state-metrics
|
|
||||||
app.kubernetes.io/name: kube-state-metrics
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "2.14.0"
|
|
||||||
name: prometheus-kube-state-metrics
|
|
||||||
rules:
|
|
||||||
|
|
||||||
- apiGroups: ["certificates.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- certificatesigningrequests
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["batch"]
|
|
||||||
resources:
|
|
||||||
- cronjobs
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["extensions", "apps"]
|
|
||||||
resources:
|
|
||||||
- daemonsets
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["extensions", "apps"]
|
|
||||||
resources:
|
|
||||||
- deployments
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- endpoints
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["autoscaling"]
|
|
||||||
resources:
|
|
||||||
- horizontalpodautoscalers
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["extensions", "networking.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- ingresses
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["batch"]
|
|
||||||
resources:
|
|
||||||
- jobs
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["coordination.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- leases
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- limitranges
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["admissionregistration.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- mutatingwebhookconfigurations
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- namespaces
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["networking.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- networkpolicies
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- nodes
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- persistentvolumeclaims
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- persistentvolumes
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["policy"]
|
|
||||||
resources:
|
|
||||||
- poddisruptionbudgets
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["extensions", "apps"]
|
|
||||||
resources:
|
|
||||||
- replicasets
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- replicationcontrollers
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- resourcequotas
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- secrets
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- services
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["apps"]
|
|
||||||
resources:
|
|
||||||
- statefulsets
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["storage.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- storageclasses
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["admissionregistration.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- validatingwebhookconfigurations
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
|
|
||||||
- apiGroups: ["storage.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- volumeattachments
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
---
|
|
||||||
# Source: prometheus/templates/clusterrole.yaml
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: v3.1.0
|
|
||||||
helm.sh/chart: prometheus-27.3.1
|
|
||||||
app.kubernetes.io/part-of: prometheus
|
|
||||||
name: prometheus-server
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- nodes
|
|
||||||
- nodes/proxy
|
|
||||||
- nodes/metrics
|
|
||||||
- services
|
|
||||||
- endpoints
|
|
||||||
- pods
|
|
||||||
- ingresses
|
|
||||||
- configmaps
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- "extensions"
|
|
||||||
- "networking.k8s.io"
|
|
||||||
resources:
|
|
||||||
- ingresses/status
|
|
||||||
- ingresses
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- "discovery.k8s.io"
|
|
||||||
resources:
|
|
||||||
- endpointslices
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- nonResourceURLs:
|
|
||||||
- "/metrics"
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/kube-state-metrics/templates/clusterrolebinding.yaml
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: kube-state-metrics-5.28.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: kube-state-metrics
|
|
||||||
app.kubernetes.io/name: kube-state-metrics
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "2.14.0"
|
|
||||||
name: prometheus-kube-state-metrics
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: ClusterRole
|
|
||||||
name: prometheus-kube-state-metrics
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: prometheus-kube-state-metrics
|
|
||||||
namespace: monitoring
|
|
||||||
---
|
|
||||||
# Source: prometheus/templates/clusterrolebinding.yaml
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: v3.1.0
|
|
||||||
helm.sh/chart: prometheus-27.3.1
|
|
||||||
app.kubernetes.io/part-of: prometheus
|
|
||||||
name: prometheus-server
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: ClusterRole
|
|
||||||
name: prometheus-server
|
|
||||||
|
|
@ -1,375 +0,0 @@
|
||||||
# Source: prometheus/charts/alertmanager/templates/configmap.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: prometheus-alertmanager
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: alertmanager-1.14.0
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v0.28.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
namespace: monitoring
|
|
||||||
data:
|
|
||||||
alertmanager.yml: |
|
|
||||||
global: {}
|
|
||||||
receivers:
|
|
||||||
- name: default-receiver
|
|
||||||
route:
|
|
||||||
group_interval: 5m
|
|
||||||
group_wait: 10s
|
|
||||||
receiver: default-receiver
|
|
||||||
repeat_interval: 3h
|
|
||||||
templates:
|
|
||||||
- /etc/alertmanager/*.tmpl
|
|
||||||
---
|
|
||||||
# Source: prometheus/templates/cm.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: v3.1.0
|
|
||||||
helm.sh/chart: prometheus-27.3.1
|
|
||||||
app.kubernetes.io/part-of: prometheus
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
data:
|
|
||||||
allow-snippet-annotations: "false"
|
|
||||||
alerting_rules.yml: |
|
|
||||||
{}
|
|
||||||
alerts: |
|
|
||||||
{}
|
|
||||||
prometheus.yml: |
|
|
||||||
global:
|
|
||||||
evaluation_interval: 1m
|
|
||||||
scrape_interval: 1m
|
|
||||||
scrape_timeout: 10s
|
|
||||||
rule_files:
|
|
||||||
- /etc/config/recording_rules.yml
|
|
||||||
- /etc/config/alerting_rules.yml
|
|
||||||
- /etc/config/rules
|
|
||||||
- /etc/config/alerts
|
|
||||||
scrape_configs:
|
|
||||||
- job_name: prometheus
|
|
||||||
static_configs:
|
|
||||||
- targets:
|
|
||||||
- localhost:9090
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-apiservers
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: default;kubernetes;https
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
- __meta_kubernetes_endpoint_port_name
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-nodes
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: node
|
|
||||||
relabel_configs:
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_node_label_(.+)
|
|
||||||
- replacement: kubernetes.default.svc:443
|
|
||||||
target_label: __address__
|
|
||||||
- regex: (.+)
|
|
||||||
replacement: /api/v1/nodes/$1/proxy/metrics
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_node_name
|
|
||||||
target_label: __metrics_path__
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-nodes-cadvisor
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: node
|
|
||||||
relabel_configs:
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_node_label_(.+)
|
|
||||||
- replacement: kubernetes.default.svc:443
|
|
||||||
target_label: __address__
|
|
||||||
- regex: (.+)
|
|
||||||
replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_node_name
|
|
||||||
target_label: __metrics_path__
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-service-endpoints
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape
|
|
||||||
- action: drop
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+?)(?::\d+)?;(\d+)
|
|
||||||
replacement: $1:$2
|
|
||||||
source_labels:
|
|
||||||
- __address__
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_port
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-service-endpoints-slow
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+?)(?::\d+)?;(\d+)
|
|
||||||
replacement: $1:$2
|
|
||||||
source_labels:
|
|
||||||
- __address__
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_port
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
scrape_interval: 5m
|
|
||||||
scrape_timeout: 30s
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: prometheus-pushgateway
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: service
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: pushgateway
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_probe
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-services
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: service
|
|
||||||
metrics_path: /probe
|
|
||||||
params:
|
|
||||||
module:
|
|
||||||
- http_2xx
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_probe
|
|
||||||
- source_labels:
|
|
||||||
- __address__
|
|
||||||
target_label: __param_target
|
|
||||||
- replacement: blackbox
|
|
||||||
target_label: __address__
|
|
||||||
- source_labels:
|
|
||||||
- __param_target
|
|
||||||
target_label: instance
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-pods
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape
|
|
||||||
- action: drop
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
|
|
||||||
replacement: '[$2]:$1'
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);((([0-9]+?)(\.|$)){4})
|
|
||||||
replacement: $2:$1
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_name
|
|
||||||
target_label: pod
|
|
||||||
- action: drop
|
|
||||||
regex: Pending|Succeeded|Failed|Completed
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_phase
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-pods-slow
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
|
|
||||||
replacement: '[$2]:$1'
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);((([0-9]+?)(\.|$)){4})
|
|
||||||
replacement: $2:$1
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_name
|
|
||||||
target_label: pod
|
|
||||||
- action: drop
|
|
||||||
regex: Pending|Succeeded|Failed|Completed
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_phase
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
scrape_interval: 5m
|
|
||||||
scrape_timeout: 30s
|
|
||||||
alerting:
|
|
||||||
alertmanagers:
|
|
||||||
- kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
relabel_configs:
|
|
||||||
- source_labels: [__meta_kubernetes_namespace]
|
|
||||||
regex: monitoring
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
|
|
||||||
regex: prometheus
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
|
|
||||||
regex: alertmanager
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_container_port_number]
|
|
||||||
regex: "9093"
|
|
||||||
action: keep
|
|
||||||
recording_rules.yml: |
|
|
||||||
{}
|
|
||||||
rules: |
|
|
||||||
{}
|
|
||||||
|
|
@ -1,194 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: prometheus-rulefiles
|
|
||||||
namespace: monitoring
|
|
||||||
data:
|
|
||||||
# Awesome Prometheus alerts
|
|
||||||
################################################################################
|
|
||||||
# Basic resource monitoring prometheus self-monitoring
|
|
||||||
################################################################################
|
|
||||||
prometheus-self-monitoring.yaml: |
|
|
||||||
groups:
|
|
||||||
- name: prometheus-self-monitoring
|
|
||||||
rules:
|
|
||||||
- alert: Watchdog
|
|
||||||
annotations:
|
|
||||||
description: |
|
|
||||||
This is an alert meant to ensure that the entire alerting pipeline is functional.
|
|
||||||
This alert is always firing, therefore it should always be firing in Alertmanager
|
|
||||||
and always fire against a receiver. There are integrations with various notification
|
|
||||||
mechanisms that send a notification when this alert is not firing. For example the
|
|
||||||
"DeadMansSnitch" integration in PagerDuty.
|
|
||||||
runbook_url: https://runbooks.prometheus-operator.dev/runbooks/general/watchdog
|
|
||||||
summary: An alert that should always be firing to certify that Alertmanager
|
|
||||||
is working properly.
|
|
||||||
expr: vector(1)
|
|
||||||
labels:
|
|
||||||
severity: none
|
|
||||||
# Awesome Prometheus alerts
|
|
||||||
################################################################################
|
|
||||||
# Basic resource monitoring host and hardware (node-export)
|
|
||||||
################################################################################
|
|
||||||
prometheus-host-hardware.yaml: |
|
|
||||||
groups:
|
|
||||||
- name: prometheus-host-hardware
|
|
||||||
rules:
|
|
||||||
- alert: HostOutOfMemory (1.2.01)
|
|
||||||
expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Host out of memory (instance {{ $labels.instance }})
|
|
||||||
description: "Node memory is filling up (< 10% left)\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: HostOutOfDiskSpace (1.2.07)
|
|
||||||
expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) node_filesystem_readonly == 0
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Host out of disk space (instance {{ $labels.instance }})
|
|
||||||
description: "Disk is almost full (< 10% left)\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
# Please add ignored mountpoints in node_exporter parameters like
|
|
||||||
# "--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|run)($|/)".
|
|
||||||
# Same rule using "node_filesystem_free_bytes" will fire when disk fills for non-root users.
|
|
||||||
- alert: HostHighCpuLoad (1.2.13)
|
|
||||||
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 80
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Host high CPU load (instance {{ $labels.instance }})
|
|
||||||
description: "CPU load is > 80%\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: HostOomKillDetected (1.2.24)
|
|
||||||
expr: increase(node_vmstat_oom_kill[1m]) > 0
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Host OOM kill detected (instance {{ $labels.instance }})
|
|
||||||
description: "OOM kill detected\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
# Awesome Prometheus alerts
|
|
||||||
################################################################################
|
|
||||||
# Basic resource monitoring docker container (google/cAdvisor)
|
|
||||||
################################################################################
|
|
||||||
Prometheus-docker-containers.yaml: |
|
|
||||||
groups:
|
|
||||||
- name: prometheus-docker-containers
|
|
||||||
rules:
|
|
||||||
# This rule can be very noisy in dynamic infra with legitimate container start/stop/deployment.
|
|
||||||
- alert: ContainerKilled (1.3.1)
|
|
||||||
expr: time() - container_last_seen > 60
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Container killed (instance {{ $labels.instance }})
|
|
||||||
description: "A container has disappeared\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
# This rule can be very noisy in dynamic infra with legitimate container start/stop/deployment.
|
|
||||||
- alert: ContainerCpuUsage (1.3.3)
|
|
||||||
expr: (sum(rate(container_cpu_usage_seconds_total{name!=""}[3m])) BY (instance, name) * 100) > 80
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Container CPU usage (instance {{ $labels.instance }})
|
|
||||||
description: "Container CPU usage is above 80%\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
# See https://medium.com/faun/how-much-is-too-much-the-linux-oomkiller-and-used-memory-d32186f29c9d
|
|
||||||
- alert: ContainerMemoryUsage (1.3.4)
|
|
||||||
expr: (sum(container_memory_working_set_bytes{name!=""}) BY (instance, name) / sum(container_spec_memory_limit_bytes > 0) BY (instance, name) * 100) > 80
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Container Memory usage (instance {{ $labels.instance }})
|
|
||||||
description: "Container Memory usage is above 80%\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
# Awesome Prometheus alerts
|
|
||||||
################################################################################
|
|
||||||
# Orchestrators kubernetes (kube-state-metrics)
|
|
||||||
################################################################################
|
|
||||||
prometheus-kubernetes.yaml: |
|
|
||||||
groups:
|
|
||||||
- name: prometheus-kubernetes
|
|
||||||
rules:
|
|
||||||
- alert: KubernetesNodeReady (5.1.01)
|
|
||||||
expr: kube_node_status_condition{condition="Ready",status="true"} == 0
|
|
||||||
for: 10m
|
|
||||||
labels:
|
|
||||||
severity: critical
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes Node ready (instance {{ $labels.instance }})
|
|
||||||
description: "Node {{ $labels.node }} has been unready for a long time\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesOutOfDisk (5.1.04)
|
|
||||||
expr: kube_node_status_condition{condition="OutOfDisk",status="true"} == 1
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: critical
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes out of disk (instance {{ $labels.instance }})
|
|
||||||
description: "{{ $labels.node }} has OutOfDisk condition\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesContainerOomKiller (5.1.06)
|
|
||||||
expr: (kube_pod_container_status_restarts_total - kube_pod_container_status_restarts_total offset 10m >= 1) and ignoring (reason) min_over_time(kube_pod_container_status_last_terminated_reason{reason="OOMKilled"}[10m]) == 1
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes container oom killer (instance {{ $labels.instance }})
|
|
||||||
description: "Container {{ $labels.container }} in pod {{ $labels.namespace }}/{{ $labels.pod }} has been OOMKilled {{ $value }} times in the last 10 minutes.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesVolumeOutOfDiskSpace (5.1.10)
|
|
||||||
expr: kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes * 100 < 10
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes Volume out of disk space (instance {{ $labels.instance }})
|
|
||||||
description: "Volume is almost full (< 10% left)\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesPersistentvolumeError (5.1.12)
|
|
||||||
expr: kube_persistentvolume_status_phase{phase=~"Failed|Pending", job="kube-state-metrics"} > 0
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: critical
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes PersistentVolume error (instance {{ $labels.instance }})
|
|
||||||
description: "Persistent volume is in bad state\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesHpaScaleCapability (5.1.16)
|
|
||||||
expr: kube_horizontalpodautoscaler_status_desired_replicas >= kube_horizontalpodautoscaler_spec_max_replicas
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: info
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes HPA scale capability (instance {{ $labels.instance }})
|
|
||||||
description: "The maximum number of desired Pods has been hit\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesPodNotHealthy (5.1.17)
|
|
||||||
expr: min_over_time(sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"})[15m:1m]) > 0
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: critical
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes Pod not healthy (instance {{ $labels.instance }})
|
|
||||||
description: "Pod has been in a non-ready state for longer than 15 minutes.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesPodCrashLooping (5.1.18)
|
|
||||||
expr: increase(kube_pod_container_status_restarts_total[1m]) > 3
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes pod crash looping (instance {{ $labels.instance }})
|
|
||||||
description: "Pod {{ $labels.pod }} is crash looping\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesApiServerErrors (5.1.29)
|
|
||||||
expr: sum(rate(apiserver_request_total{job="apiserver",code=~"^(?:5..)$"}[1m])) / sum(rate(apiserver_request_total{job="apiserver"}[1m])) * 100 > 3
|
|
||||||
for: 2m
|
|
||||||
labels:
|
|
||||||
severity: critical
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes API server errors (instance {{ $labels.instance }})
|
|
||||||
description: "Kubernetes API server is experiencing high error rate\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
- alert: KubernetesClientCertificateExpiresSoon (5.1.32)
|
|
||||||
expr: apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 24*60*60
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: critical
|
|
||||||
annotations:
|
|
||||||
summary: Kubernetes client certificate expires soon (instance {{ $labels.instance }})
|
|
||||||
description: "A client certificate used to authenticate to the apiserver is expiring in less than 24.0 hours.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
|
|
@ -1,135 +0,0 @@
|
||||||
# Source: prometheus/charts/prometheus-node-exporter/templates/daemonset.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: DaemonSet
|
|
||||||
metadata:
|
|
||||||
name: prometheus-prometheus-node-exporter
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: prometheus-node-exporter-4.43.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/name: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "1.8.2"
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
revisionHistoryLimit: 10
|
|
||||||
updateStrategy:
|
|
||||||
rollingUpdate:
|
|
||||||
maxUnavailable: 1
|
|
||||||
type: RollingUpdate
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: prometheus-node-exporter-4.43.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/name: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "1.8.2"
|
|
||||||
spec:
|
|
||||||
automountServiceAccountToken: false
|
|
||||||
securityContext:
|
|
||||||
fsGroup: 65534
|
|
||||||
runAsGroup: 65534
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65534
|
|
||||||
serviceAccountName: prometheus-prometheus-node-exporter
|
|
||||||
containers:
|
|
||||||
- name: node-exporter
|
|
||||||
image: quay.io/prometheus/node-exporter:v1.8.2
|
|
||||||
imagePullPolicy: Always
|
|
||||||
args:
|
|
||||||
- --path.procfs=/host/proc
|
|
||||||
- --path.sysfs=/host/sys
|
|
||||||
- --path.rootfs=/host/root
|
|
||||||
- --path.udev.data=/host/root/run/udev/data
|
|
||||||
- --web.listen-address=[$(HOST_IP)]:9100
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
env:
|
|
||||||
- name: HOST_IP
|
|
||||||
value: 0.0.0.0
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
containerPort: 9100
|
|
||||||
protocol: TCP
|
|
||||||
livenessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
httpGet:
|
|
||||||
httpHeaders:
|
|
||||||
path: /
|
|
||||||
port: 9100
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 0
|
|
||||||
periodSeconds: 10
|
|
||||||
successThreshold: 1
|
|
||||||
timeoutSeconds: 1
|
|
||||||
readinessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
httpGet:
|
|
||||||
httpHeaders:
|
|
||||||
path: /
|
|
||||||
port: 9100
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 0
|
|
||||||
periodSeconds: 10
|
|
||||||
successThreshold: 1
|
|
||||||
timeoutSeconds: 1
|
|
||||||
volumeMounts:
|
|
||||||
- name: proc
|
|
||||||
mountPath: /host/proc
|
|
||||||
readOnly: true
|
|
||||||
- name: sys
|
|
||||||
mountPath: /host/sys
|
|
||||||
readOnly: true
|
|
||||||
- name: root
|
|
||||||
mountPath: /host/root
|
|
||||||
mountPropagation: HostToContainer
|
|
||||||
readOnly: true
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 50Mi
|
|
||||||
limits:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 100Mi
|
|
||||||
hostNetwork: true
|
|
||||||
hostPID: true
|
|
||||||
hostIPC: false
|
|
||||||
affinity:
|
|
||||||
nodeAffinity:
|
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: eks.amazonaws.com/compute-type
|
|
||||||
operator: NotIn
|
|
||||||
values:
|
|
||||||
- fargate
|
|
||||||
- key: type
|
|
||||||
operator: NotIn
|
|
||||||
values:
|
|
||||||
- virtual-kubelet
|
|
||||||
nodeSelector:
|
|
||||||
kubernetes.io/os: linux
|
|
||||||
tolerations:
|
|
||||||
- effect: NoSchedule
|
|
||||||
operator: Exists
|
|
||||||
volumes:
|
|
||||||
- name: proc
|
|
||||||
hostPath:
|
|
||||||
path: /proc
|
|
||||||
- name: sys
|
|
||||||
hostPath:
|
|
||||||
path: /sys
|
|
||||||
- name: root
|
|
||||||
hostPath:
|
|
||||||
path: /
|
|
||||||
|
|
@ -1,290 +0,0 @@
|
||||||
# Source: prometheus/charts/kube-state-metrics/templates/deployment.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: prometheus-kube-state-metrics
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: kube-state-metrics-5.28.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: kube-state-metrics
|
|
||||||
app.kubernetes.io/name: kube-state-metrics
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "2.14.0"
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: kube-state-metrics
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
replicas: 1
|
|
||||||
strategy:
|
|
||||||
type: RollingUpdate
|
|
||||||
revisionHistoryLimit: 10
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: kube-state-metrics-5.28.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: kube-state-metrics
|
|
||||||
app.kubernetes.io/name: kube-state-metrics
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "2.14.0"
|
|
||||||
spec:
|
|
||||||
nodeSelector:
|
|
||||||
nodegroup: nd
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
hostNetwork: false
|
|
||||||
serviceAccountName: prometheus-kube-state-metrics
|
|
||||||
securityContext:
|
|
||||||
fsGroup: 65534
|
|
||||||
runAsGroup: 65534
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65534
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
containers:
|
|
||||||
- name: kube-state-metrics
|
|
||||||
args:
|
|
||||||
- --port=8080
|
|
||||||
- --resources=certificatesigningrequests,configmaps,cronjobs,daemonsets,deployments,endpoints,horizontalpodautoscalers,ingresses,jobs,leases,limitranges,mutatingwebhookconfigurations,namespaces,networkpolicies,nodes,persistentvolumeclaims,persistentvolumes,poddisruptionbudgets,pods,replicasets,replicationcontrollers,resourcequotas,secrets,services,statefulsets,storageclasses,validatingwebhookconfigurations,volumeattachments
|
|
||||||
imagePullPolicy: Always
|
|
||||||
image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.14.0
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
name: "http"
|
|
||||||
livenessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
httpGet:
|
|
||||||
httpHeaders:
|
|
||||||
path: /livez
|
|
||||||
port: 8080
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
periodSeconds: 10
|
|
||||||
successThreshold: 1
|
|
||||||
timeoutSeconds: 5
|
|
||||||
readinessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
httpGet:
|
|
||||||
httpHeaders:
|
|
||||||
path: /readyz
|
|
||||||
port: 8081
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
periodSeconds: 10
|
|
||||||
successThreshold: 1
|
|
||||||
timeoutSeconds: 5
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 125Mi
|
|
||||||
limits:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 250Mi
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/prometheus-pushgateway/templates/deployment.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: prometheus-pushgateway-2.17.0
|
|
||||||
app.kubernetes.io/name: prometheus-pushgateway
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v1.11.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
name: prometheus-prometheus-pushgateway
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: prometheus-pushgateway
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: prometheus-pushgateway-2.17.0
|
|
||||||
app.kubernetes.io/name: prometheus-pushgateway
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v1.11.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
spec:
|
|
||||||
nodeSelector:
|
|
||||||
nodegroup: nd
|
|
||||||
serviceAccountName: prometheus-prometheus-pushgateway
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
containers:
|
|
||||||
- name: pushgateway
|
|
||||||
image: "quay.io/prometheus/pushgateway:v1.11.0"
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
containerPort: 9091
|
|
||||||
protocol: TCP
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /-/healthy
|
|
||||||
port: 9091
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
timeoutSeconds: 10
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /-/ready
|
|
||||||
port: 9091
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
timeoutSeconds: 10
|
|
||||||
volumeMounts:
|
|
||||||
- name: storage-volume
|
|
||||||
mountPath: "/data"
|
|
||||||
subPath: ""
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 256Mi
|
|
||||||
limits:
|
|
||||||
cpu: 200m
|
|
||||||
memory: 512Mi
|
|
||||||
securityContext:
|
|
||||||
fsGroup: 65534
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65534
|
|
||||||
volumes:
|
|
||||||
- name: storage-volume
|
|
||||||
emptyDir: {}
|
|
||||||
---
|
|
||||||
# Source: prometheus/templates/deploy.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: v3.1.0
|
|
||||||
helm.sh/chart: prometheus-27.3.1
|
|
||||||
app.kubernetes.io/part-of: prometheus
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
replicas: 1
|
|
||||||
revisionHistoryLimit: 10
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
rollingUpdate: null
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: v3.1.0
|
|
||||||
helm.sh/chart: prometheus-27.3.1
|
|
||||||
app.kubernetes.io/part-of: prometheus
|
|
||||||
spec:
|
|
||||||
nodeSelector:
|
|
||||||
nodegroup: nd
|
|
||||||
enableServiceLinks: true
|
|
||||||
serviceAccountName: prometheus-server
|
|
||||||
containers:
|
|
||||||
- name: prometheus-server-configmap-reload
|
|
||||||
image: "quay.io/prometheus-operator/prometheus-config-reloader:v0.79.2"
|
|
||||||
imagePullPolicy: "Always"
|
|
||||||
args:
|
|
||||||
- --watched-dir=/etc/config
|
|
||||||
- --listen-address=0.0.0.0:8080
|
|
||||||
- --reload-url=http://127.0.0.1:9090/-/reload
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
name: metrics
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /healthz
|
|
||||||
port: metrics
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 2
|
|
||||||
periodSeconds: 10
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /healthz
|
|
||||||
port: metrics
|
|
||||||
scheme: HTTP
|
|
||||||
periodSeconds: 10
|
|
||||||
volumeMounts:
|
|
||||||
- name: config-volume
|
|
||||||
mountPath: /etc/config
|
|
||||||
readOnly: true
|
|
||||||
|
|
||||||
- name: prometheus-server
|
|
||||||
image: "quay.io/prometheus/prometheus:v3.1.0"
|
|
||||||
imagePullPolicy: "Always"
|
|
||||||
args:
|
|
||||||
- --storage.tsdb.retention.time=15d
|
|
||||||
- --config.file=/etc/config/prometheus.yml
|
|
||||||
- --storage.tsdb.path=/data
|
|
||||||
- --web.console.libraries=/etc/prometheus/console_libraries
|
|
||||||
- --web.console.templates=/etc/prometheus/consoles
|
|
||||||
- --web.enable-lifecycle
|
|
||||||
ports:
|
|
||||||
- containerPort: 9090
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /-/ready
|
|
||||||
port: 9090
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 5
|
|
||||||
timeoutSeconds: 4
|
|
||||||
failureThreshold: 3
|
|
||||||
successThreshold: 1
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /-/healthy
|
|
||||||
port: 9090
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 15
|
|
||||||
timeoutSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
successThreshold: 1
|
|
||||||
volumeMounts:
|
|
||||||
- name: config-volume
|
|
||||||
mountPath: /etc/config
|
|
||||||
- name: storage-volume
|
|
||||||
mountPath: /data
|
|
||||||
subPath: ""
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 500m
|
|
||||||
memory: 2Gi
|
|
||||||
limits:
|
|
||||||
cpu: 1050m
|
|
||||||
memory: 4Gi
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
securityContext:
|
|
||||||
fsGroup: 65534
|
|
||||||
runAsGroup: 65534
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65534
|
|
||||||
terminationGracePeriodSeconds: 300
|
|
||||||
volumes:
|
|
||||||
- name: config-volume
|
|
||||||
configMap:
|
|
||||||
name: prometheus-server
|
|
||||||
- name: storage-volume
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: prometheus-server
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: prometheus-alertmanager-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
annotations:
|
|
||||||
# 인증 방법 설정: basic auth
|
|
||||||
nginx.ingress.kubernetes.io/auth-type: basic
|
|
||||||
# basic auth 사용자가 들어있는 secret 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
|
||||||
# 인증 요청시 나오는 메세지 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: alert.cone-chain.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: prometheus-alertmanager
|
|
||||||
port:
|
|
||||||
number: 9093
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- prometheus.cone-chain.com
|
|
||||||
secretName: ssl-cc
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: prometheus-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
annotations:
|
|
||||||
# 인증 방법 설정: basic auth
|
|
||||||
nginx.ingress.kubernetes.io/auth-type: basic
|
|
||||||
# basic auth 사용자가 들어있는 secret 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
|
||||||
# 인증 요청시 나오는 메세지 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: prometheus.cone-chain.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: prometheus-server
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- prometheus.cone-chain.com
|
|
||||||
secretName: ssl-cc
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
namespace: monitoring
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- namespace.yaml
|
|
||||||
- sa.yaml
|
|
||||||
- cluster_role.yaml
|
|
||||||
- cm.yaml
|
|
||||||
- deploy.yaml
|
|
||||||
- daemonset.yaml
|
|
||||||
- pvc.yaml
|
|
||||||
- service.yaml
|
|
||||||
- state_full_set.yaml
|
|
||||||
# - secret.yaml
|
|
||||||
- ingress_alertmanager.yaml
|
|
||||||
- ingress_prometheus.yaml
|
|
||||||
- cm_custom_alert_rules.yaml
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: monitoring
|
|
||||||
labels:
|
|
||||||
kubernetes.io/metadata.name: monitoring
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# Source: prometheus/templates/pvc.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: v3.1.0
|
|
||||||
helm.sh/chart: prometheus-27.3.1
|
|
||||||
app.kubernetes.io/part-of: prometheus
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "8Gi"
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
||||||
---
|
|
||||||
# Source: prometheus/charts/alertmanager/templates/serviceaccount.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: prometheus-alertmanager
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: alertmanager-1.14.0
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v0.28.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
namespace: monitoring
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/kube-state-metrics/templates/serviceaccount.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: kube-state-metrics-5.28.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: kube-state-metrics
|
|
||||||
app.kubernetes.io/name: kube-state-metrics
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "2.14.0"
|
|
||||||
name: prometheus-kube-state-metrics
|
|
||||||
namespace: monitoring
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/prometheus-node-exporter/templates/serviceaccount.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: prometheus-prometheus-node-exporter
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: prometheus-node-exporter-4.43.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/name: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "1.8.2"
|
|
||||||
automountServiceAccountToken: false
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/prometheus-pushgateway/templates/serviceaccount.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: prometheus-pushgateway-2.17.0
|
|
||||||
app.kubernetes.io/name: prometheus-pushgateway
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v1.11.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
name: prometheus-prometheus-pushgateway
|
|
||||||
namespace: monitoring
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
---
|
|
||||||
# Source: prometheus/templates/serviceaccount.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: v3.1.0
|
|
||||||
helm.sh/chart: prometheus-27.3.1
|
|
||||||
app.kubernetes.io/part-of: prometheus
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
annotations:
|
|
||||||
{}
|
|
||||||
|
|
@ -1,151 +0,0 @@
|
||||||
# Source: prometheus/charts/alertmanager/templates/services.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: prometheus-alertmanager
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: alertmanager-1.14.0
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v0.28.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 9093
|
|
||||||
targetPort: http
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/alertmanager/templates/services.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: prometheus-alertmanager-headless
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: alertmanager-1.14.0
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v0.28.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
clusterIP: None
|
|
||||||
ports:
|
|
||||||
- port: 9093
|
|
||||||
targetPort: http
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/kube-state-metrics/templates/service.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: prometheus-kube-state-metrics
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: kube-state-metrics-5.28.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: kube-state-metrics
|
|
||||||
app.kubernetes.io/name: kube-state-metrics
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "2.14.0"
|
|
||||||
annotations:
|
|
||||||
prometheus.io/scrape: 'true'
|
|
||||||
spec:
|
|
||||||
type: "ClusterIP"
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
protocol: TCP
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: kube-state-metrics
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/prometheus-node-exporter/templates/service.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: prometheus-prometheus-node-exporter
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: prometheus-node-exporter-4.43.1
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
app.kubernetes.io/component: metrics
|
|
||||||
app.kubernetes.io/part-of: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/name: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "1.8.2"
|
|
||||||
annotations:
|
|
||||||
prometheus.io/scrape: "true"
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 9100
|
|
||||||
targetPort: 9100
|
|
||||||
protocol: TCP
|
|
||||||
name: metrics
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: prometheus-node-exporter
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
---
|
|
||||||
# Source: prometheus/charts/prometheus-pushgateway/templates/service.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
prometheus.io/probe: pushgateway
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: prometheus-pushgateway-2.17.0
|
|
||||||
app.kubernetes.io/name: prometheus-pushgateway
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v1.11.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
name: prometheus-prometheus-pushgateway
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 9091
|
|
||||||
targetPort: 9091
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: prometheus-pushgateway
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
---
|
|
||||||
# Source: prometheus/templates/service.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: v3.1.0
|
|
||||||
helm.sh/chart: prometheus-27.3.1
|
|
||||||
app.kubernetes.io/part-of: prometheus
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 80
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 9090
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/component: server
|
|
||||||
app.kubernetes.io/name: prometheus
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
sessionAffinity: None
|
|
||||||
type: "ClusterIP"
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
# Source: prometheus/charts/alertmanager/templates/statefulset.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: prometheus-alertmanager
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: alertmanager-1.14.0
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
app.kubernetes.io/version: "v0.28.0"
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
minReadySeconds: 0
|
|
||||||
revisionHistoryLimit: 10
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
serviceName: prometheus-alertmanager-headless
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: alertmanager
|
|
||||||
app.kubernetes.io/instance: prometheus
|
|
||||||
spec:
|
|
||||||
nodeSelector:
|
|
||||||
nodegroup: nd
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
serviceAccountName: prometheus-alertmanager
|
|
||||||
securityContext:
|
|
||||||
fsGroup: 65534
|
|
||||||
runAsGroup: 65534
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65534
|
|
||||||
containers:
|
|
||||||
- name: alertmanager
|
|
||||||
securityContext:
|
|
||||||
runAsGroup: 65534
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65534
|
|
||||||
image: "quay.io/prometheus/alertmanager:v0.28.0"
|
|
||||||
imagePullPolicy: Always
|
|
||||||
env:
|
|
||||||
- name: POD_IP
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
apiVersion: v1
|
|
||||||
fieldPath: status.podIP
|
|
||||||
args:
|
|
||||||
- --storage.path=/alertmanager
|
|
||||||
- --config.file=/etc/alertmanager/alertmanager.yml
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 9093
|
|
||||||
protocol: TCP
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /
|
|
||||||
port: http
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /
|
|
||||||
port: http
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 200m
|
|
||||||
memory: 512Mi
|
|
||||||
limits:
|
|
||||||
cpu: 200m
|
|
||||||
memory: 512Mi
|
|
||||||
volumeMounts:
|
|
||||||
- name: config
|
|
||||||
mountPath: /etc/alertmanager
|
|
||||||
- name: storage
|
|
||||||
mountPath: /alertmanager
|
|
||||||
volumes:
|
|
||||||
- name: config
|
|
||||||
configMap:
|
|
||||||
name: prometheus-alertmanager
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- metadata:
|
|
||||||
name: storage
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 2Gi
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
admin:$apr1$JIoWDh3p$Mo4E8nEh3beHp9n1IRjmc/
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- ../../../base/grafana
|
|
||||||
|
|
||||||
namespace: monitoring
|
|
||||||
|
|
||||||
patches:
|
|
||||||
- target:
|
|
||||||
kind: ConfigMap
|
|
||||||
name: grafana
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-cm.yaml
|
|
||||||
- target:
|
|
||||||
kind: Secret
|
|
||||||
name: grafana
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-secret.yaml
|
|
||||||
- target:
|
|
||||||
kind: Deployment
|
|
||||||
name: grafana
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-deploy.yaml
|
|
||||||
- target:
|
|
||||||
kind: Ingress
|
|
||||||
name: grafana-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-ingress_grafana.yaml
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
# 도메인 정보 변경 필요.
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: grafana
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: grafana-8.10.0
|
|
||||||
app.kubernetes.io/name: grafana
|
|
||||||
app.kubernetes.io/instance: grafana
|
|
||||||
app.kubernetes.io/version: "11.5.1"
|
|
||||||
data:
|
|
||||||
|
|
||||||
grafana.ini: |
|
|
||||||
[analytics]
|
|
||||||
check_for_updates = true
|
|
||||||
[grafana_net]
|
|
||||||
url = https://grafana.net
|
|
||||||
[log]
|
|
||||||
mode = console
|
|
||||||
[paths]
|
|
||||||
data = /var/lib/grafana/
|
|
||||||
logs = /var/log/grafana
|
|
||||||
plugins = /var/lib/grafana/plugins
|
|
||||||
provisioning = /etc/grafana/provisioning
|
|
||||||
[server]
|
|
||||||
domain = 'grafana.nhngpuaas.com'
|
|
||||||
root_url = 'https://grafana.nhngpuaas.com'
|
|
||||||
[auth.anonymous]
|
|
||||||
enabled = true
|
|
||||||
org_name = Main Org.
|
|
||||||
org_role = Viewer
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: grafana-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: grafana.nhngpuaas.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: grafana
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- grafana.nhngpuaas.com
|
|
||||||
secretName: nhngpuaas-ssl
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
# Prometheus에 종속적으로 설치
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
namespace: monitoring
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- prometheus
|
|
||||||
- grafana
|
|
||||||
|
|
||||||
generatorOptions:
|
|
||||||
disableNameSuffixHash: true
|
|
||||||
secretGenerator:
|
|
||||||
- name: basic-auth
|
|
||||||
files:
|
|
||||||
- auth
|
|
||||||
type: Opaque
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- ../../../base/prometheus
|
|
||||||
|
|
||||||
namespace: monitoring
|
|
||||||
|
|
||||||
patches:
|
|
||||||
- target:
|
|
||||||
kind: ConfigMap
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-cm-prometheus-server.yaml
|
|
||||||
- target:
|
|
||||||
kind: Deployment
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-deploy.yaml
|
|
||||||
- target:
|
|
||||||
kind: Ingress
|
|
||||||
name: prometheus-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-ingress_prometheus.yaml
|
|
||||||
- target:
|
|
||||||
kind: Ingress
|
|
||||||
name: prometheus-alertmanager-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-ingress_alertmanager.yaml
|
|
||||||
# - target:
|
|
||||||
# kind: Secret
|
|
||||||
# name: basic-auth
|
|
||||||
# namespace: monitoring
|
|
||||||
# path: patch-basic-auth.yaml
|
|
||||||
|
|
@ -1,335 +0,0 @@
|
||||||
# - "/etc/config/rules/*.yaml" # 수정대상
|
|
||||||
# - "/etc/config/alerts/*.yaml" # 수정대상
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
data:
|
|
||||||
prometheus.yml: |
|
|
||||||
global:
|
|
||||||
evaluation_interval: 1m
|
|
||||||
scrape_interval: 1m
|
|
||||||
scrape_timeout: 10s
|
|
||||||
rule_files:
|
|
||||||
- /etc/config/recording_rules.yml
|
|
||||||
- /etc/config/alerting_rules.yml
|
|
||||||
- "/etc/config/rules/*.yaml"
|
|
||||||
- "/etc/config/alerts/*.yaml"
|
|
||||||
scrape_configs:
|
|
||||||
- job_name: prometheus
|
|
||||||
static_configs:
|
|
||||||
- targets:
|
|
||||||
- localhost:9090
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-apiservers
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: default;kubernetes;https
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
- __meta_kubernetes_endpoint_port_name
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-nodes
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: node
|
|
||||||
relabel_configs:
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_node_label_(.+)
|
|
||||||
- replacement: kubernetes.default.svc:443
|
|
||||||
target_label: __address__
|
|
||||||
- regex: (.+)
|
|
||||||
replacement: /api/v1/nodes/$1/proxy/metrics
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_node_name
|
|
||||||
target_label: __metrics_path__
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-nodes-cadvisor
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: node
|
|
||||||
relabel_configs:
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_node_label_(.+)
|
|
||||||
- replacement: kubernetes.default.svc:443
|
|
||||||
target_label: __address__
|
|
||||||
- regex: (.+)
|
|
||||||
replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_node_name
|
|
||||||
target_label: __metrics_path__
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-service-endpoints
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape
|
|
||||||
- action: drop
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+?)(?::\d+)?;(\d+)
|
|
||||||
replacement: $1:$2
|
|
||||||
source_labels:
|
|
||||||
- __address__
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_port
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-service-endpoints-slow
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+?)(?::\d+)?;(\d+)
|
|
||||||
replacement: $1:$2
|
|
||||||
source_labels:
|
|
||||||
- __address__
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_port
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
scrape_interval: 5m
|
|
||||||
scrape_timeout: 30s
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: prometheus-pushgateway
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: service
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: pushgateway
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_probe
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-services
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: service
|
|
||||||
metrics_path: /probe
|
|
||||||
params:
|
|
||||||
module:
|
|
||||||
- http_2xx
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_probe
|
|
||||||
- source_labels:
|
|
||||||
- __address__
|
|
||||||
target_label: __param_target
|
|
||||||
- replacement: blackbox
|
|
||||||
target_label: __address__
|
|
||||||
- source_labels:
|
|
||||||
- __param_target
|
|
||||||
target_label: instance
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-pods
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape
|
|
||||||
- action: drop
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
|
|
||||||
replacement: '[$2]:$1'
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);((([0-9]+?)(\.|$)){4})
|
|
||||||
replacement: $2:$1
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_name
|
|
||||||
target_label: pod
|
|
||||||
- action: drop
|
|
||||||
regex: Pending|Succeeded|Failed|Completed
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_phase
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-pods-slow
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
|
|
||||||
replacement: '[$2]:$1'
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);((([0-9]+?)(\.|$)){4})
|
|
||||||
replacement: $2:$1
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_name
|
|
||||||
target_label: pod
|
|
||||||
- action: drop
|
|
||||||
regex: Pending|Succeeded|Failed|Completed
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_phase
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
scrape_interval: 5m
|
|
||||||
scrape_timeout: 30s
|
|
||||||
alerting:
|
|
||||||
alertmanagers:
|
|
||||||
- kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
relabel_configs:
|
|
||||||
- source_labels: [__meta_kubernetes_namespace]
|
|
||||||
regex: monitoring
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
|
|
||||||
regex: prometheus
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
|
|
||||||
regex: alertmanager
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_container_port_number]
|
|
||||||
regex: "9093"
|
|
||||||
action: keep
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# Source: prometheus/templates/deploy.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: prometheus-server
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/config/alerts
|
|
||||||
name: config-volume2
|
|
||||||
volumes:
|
|
||||||
- configMap:
|
|
||||||
defaultMode: 420
|
|
||||||
name: prometheus-rulefiles
|
|
||||||
name: config-volume2
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: prometheus-alertmanager-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
annotations:
|
|
||||||
# 인증 방법 설정: basic auth
|
|
||||||
nginx.ingress.kubernetes.io/auth-type: basic
|
|
||||||
# basic auth 사용자가 들어있는 secret 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
|
||||||
# 인증 요청시 나오는 메세지 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: alert.nhngpuaas.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: prometheus-alertmanager
|
|
||||||
port:
|
|
||||||
number: 9093
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- alert.nhngpuaas.com
|
|
||||||
secretName: nhngpuaas-ssl
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: prometheus-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: prometheus.nhngpuaas.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: prometheus-server
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- prometheus.nhngpuaas.com
|
|
||||||
secretName: nhngpuaas-ssl
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
admin:$apr1$JIoWDh3p$Mo4E8nEh3beHp9n1IRjmc/
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
# Source: grafana/templates/deployment.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: grafana
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: grafana
|
|
||||||
volumeMounts:
|
|
||||||
- name: storage
|
|
||||||
mountPath: "/var/lib/grafana"
|
|
||||||
volumes:
|
|
||||||
- name: storage
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: grafana-pvc
|
|
||||||
# - name: storage
|
|
||||||
# emptyDir: {}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
# Source: grafana/templates/secret.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: grafana
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: grafana-8.10.0
|
|
||||||
app.kubernetes.io/name: grafana
|
|
||||||
app.kubernetes.io/instance: grafana
|
|
||||||
app.kubernetes.io/version: "11.5.1"
|
|
||||||
type: Opaque
|
|
||||||
data:
|
|
||||||
admin-user: "YWRtaW4="
|
|
||||||
admin-password: "bmhuIUAjMTIz"
|
|
||||||
# ldap-toml: ""
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- ../../../base/prometheus
|
|
||||||
|
|
||||||
namespace: monitoring
|
|
||||||
|
|
||||||
patches:
|
|
||||||
- target:
|
|
||||||
kind: ConfigMap
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-cm-prometheus-server.yaml
|
|
||||||
- target:
|
|
||||||
kind: Deployment
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-deploy.yaml
|
|
||||||
- target:
|
|
||||||
kind: Ingress
|
|
||||||
name: prometheus-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-ingress_prometheus.yaml
|
|
||||||
- target:
|
|
||||||
kind: Ingress
|
|
||||||
name: prometheus-alertmanager-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
path: patch-ingress_alertmanager.yaml
|
|
||||||
# - target:
|
|
||||||
# kind: Secret
|
|
||||||
# name: basic-auth
|
|
||||||
# namespace: monitoring
|
|
||||||
# path: patch-basic-auth.yaml
|
|
||||||
|
|
@ -1,335 +0,0 @@
|
||||||
# - "/etc/config/rules/*.yaml" # 수정대상
|
|
||||||
# - "/etc/config/alerts/*.yaml" # 수정대상
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
data:
|
|
||||||
prometheus.yml: |
|
|
||||||
global:
|
|
||||||
evaluation_interval: 1m
|
|
||||||
scrape_interval: 1m
|
|
||||||
scrape_timeout: 10s
|
|
||||||
rule_files:
|
|
||||||
- /etc/config/recording_rules.yml
|
|
||||||
- /etc/config/alerting_rules.yml
|
|
||||||
- "/etc/config/rules/*.yaml"
|
|
||||||
- "/etc/config/alerts/*.yaml"
|
|
||||||
scrape_configs:
|
|
||||||
- job_name: prometheus
|
|
||||||
static_configs:
|
|
||||||
- targets:
|
|
||||||
- localhost:9090
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-apiservers
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: default;kubernetes;https
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
- __meta_kubernetes_endpoint_port_name
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-nodes
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: node
|
|
||||||
relabel_configs:
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_node_label_(.+)
|
|
||||||
- replacement: kubernetes.default.svc:443
|
|
||||||
target_label: __address__
|
|
||||||
- regex: (.+)
|
|
||||||
replacement: /api/v1/nodes/$1/proxy/metrics
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_node_name
|
|
||||||
target_label: __metrics_path__
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
job_name: kubernetes-nodes-cadvisor
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: node
|
|
||||||
relabel_configs:
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_node_label_(.+)
|
|
||||||
- replacement: kubernetes.default.svc:443
|
|
||||||
target_label: __address__
|
|
||||||
- regex: (.+)
|
|
||||||
replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_node_name
|
|
||||||
target_label: __metrics_path__
|
|
||||||
scheme: https
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-service-endpoints
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape
|
|
||||||
- action: drop
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+?)(?::\d+)?;(\d+)
|
|
||||||
replacement: $1:$2
|
|
||||||
source_labels:
|
|
||||||
- __address__
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_port
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-service-endpoints-slow
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: endpoints
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+?)(?::\d+)?;(\d+)
|
|
||||||
replacement: $1:$2
|
|
||||||
source_labels:
|
|
||||||
- __address__
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_port
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
scrape_interval: 5m
|
|
||||||
scrape_timeout: 30s
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: prometheus-pushgateway
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: service
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: pushgateway
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_probe
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-services
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: service
|
|
||||||
metrics_path: /probe
|
|
||||||
params:
|
|
||||||
module:
|
|
||||||
- http_2xx
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_service_annotation_prometheus_io_probe
|
|
||||||
- source_labels:
|
|
||||||
- __address__
|
|
||||||
target_label: __param_target
|
|
||||||
- replacement: blackbox
|
|
||||||
target_label: __address__
|
|
||||||
- source_labels:
|
|
||||||
- __param_target
|
|
||||||
target_label: instance
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_service_label_(.+)
|
|
||||||
- source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- source_labels:
|
|
||||||
- __meta_kubernetes_service_name
|
|
||||||
target_label: service
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-pods
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape
|
|
||||||
- action: drop
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
|
|
||||||
replacement: '[$2]:$1'
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);((([0-9]+?)(\.|$)){4})
|
|
||||||
replacement: $2:$1
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_name
|
|
||||||
target_label: pod
|
|
||||||
- action: drop
|
|
||||||
regex: Pending|Succeeded|Failed|Completed
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_phase
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
- honor_labels: true
|
|
||||||
job_name: kubernetes-pods-slow
|
|
||||||
kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
relabel_configs:
|
|
||||||
- action: keep
|
|
||||||
regex: true
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
|
|
||||||
- action: replace
|
|
||||||
regex: (https?)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_scheme
|
|
||||||
target_label: __scheme__
|
|
||||||
- action: replace
|
|
||||||
regex: (.+)
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_path
|
|
||||||
target_label: __metrics_path__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
|
|
||||||
replacement: '[$2]:$1'
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: replace
|
|
||||||
regex: (\d+);((([0-9]+?)(\.|$)){4})
|
|
||||||
replacement: $2:$1
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_annotation_prometheus_io_port
|
|
||||||
- __meta_kubernetes_pod_ip
|
|
||||||
target_label: __address__
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
|
|
||||||
replacement: __param_$1
|
|
||||||
- action: labelmap
|
|
||||||
regex: __meta_kubernetes_pod_label_(.+)
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_namespace
|
|
||||||
target_label: namespace
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_name
|
|
||||||
target_label: pod
|
|
||||||
- action: drop
|
|
||||||
regex: Pending|Succeeded|Failed|Completed
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_phase
|
|
||||||
- action: replace
|
|
||||||
source_labels:
|
|
||||||
- __meta_kubernetes_pod_node_name
|
|
||||||
target_label: node
|
|
||||||
scrape_interval: 5m
|
|
||||||
scrape_timeout: 30s
|
|
||||||
alerting:
|
|
||||||
alertmanagers:
|
|
||||||
- kubernetes_sd_configs:
|
|
||||||
- role: pod
|
|
||||||
tls_config:
|
|
||||||
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
relabel_configs:
|
|
||||||
- source_labels: [__meta_kubernetes_namespace]
|
|
||||||
regex: monitoring
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
|
|
||||||
regex: prometheus
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
|
|
||||||
regex: alertmanager
|
|
||||||
action: keep
|
|
||||||
- source_labels: [__meta_kubernetes_pod_container_port_number]
|
|
||||||
regex: "9093"
|
|
||||||
action: keep
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# Source: prometheus/templates/deploy.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: prometheus-server
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: prometheus-server
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/config/alerts
|
|
||||||
name: config-volume2
|
|
||||||
volumes:
|
|
||||||
- configMap:
|
|
||||||
defaultMode: 420
|
|
||||||
name: prometheus-rulefiles
|
|
||||||
name: config-volume2
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: prometheus-alertmanager-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
annotations:
|
|
||||||
# 인증 방법 설정: basic auth
|
|
||||||
nginx.ingress.kubernetes.io/auth-type: basic
|
|
||||||
# basic auth 사용자가 들어있는 secret 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
|
||||||
# 인증 요청시 나오는 메세지 설정
|
|
||||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: alert.nhngpuaas.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: prometheus-alertmanager
|
|
||||||
port:
|
|
||||||
number: 9093
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- alert.nhngpuaas.com
|
|
||||||
secretName: nhngpuaas-ssl
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: prometheus-ingress
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: prometheus.nhngpuaas.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: prometheus-server
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- prometheus.nhngpuaas.com
|
|
||||||
secretName: nhngpuaas-ssl
|
|
||||||
Loading…
Reference in New Issue