initial checkin

This commit is contained in:
Radar231 2023-01-17 09:56:38 -05:00
commit 40fa12bf4d
10 changed files with 251 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
prometheus_data/
prometheus_etc/
grafana_data/
grafana_etc/
metrics.key

27
README.md Normal file
View File

@ -0,0 +1,27 @@
# prometheus-grafana docker deployment
## Introduction
This docker-compose configuration will deploy prometheus and grafana servers,
primarily for LXD server monitoring.
## Links
* https://linuxcontainers.org/lxd/docs/master/metrics/
* https://grafana.com/grafana/dashboards/15726-lxd/
* https://prometheus.io/docs/prometheus/latest/installation/#using-docker
* https://hub.docker.com/r/prom/prometheus
* https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/
* https://hub.docker.com/r/grafana/grafana
## Directories
<pre>
docker_prometheus-grafana
├── grafana_data
├── grafana_etc
├── prometheus_data
└── prometheus_etc
└── tls
</pre>

38
docker-compose.yml Normal file
View File

@ -0,0 +1,38 @@
---
version: '3'
services:
prometheus:
container_name: prometheus
image: prom/prometheus
volumes:
- ./prometheus_etc:/etc/prometheus
- ./prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
environment:
# - PUID=1000
# - PGID=1000
- TZ=America/Toronto
ports:
- 9090:9090
restart: unless-stopped
grafana:
container_name: grafana
hostname: grafana
image: grafana/grafana-enterprise
user: '472'
volumes:
- ./grafana_etc:/etc/grafana
- ./grafana_data:/var/lib/grafana
environment:
# - PUID=1000
# - PGID=1000
- TZ=America/Toronto
ports:
- 3000:3000
restart: unless-stopped
# EOF

101
prometheus.yml Normal file
View File

@ -0,0 +1,101 @@
---
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: lxd-starbug
metrics_path: '/1.0/metrics'
scheme: 'https'
static_configs:
- targets: ['starbug.lan:8444']
tls_config:
ca_file: 'tls/starbug-server.crt'
cert_file: 'tls/metrics.crt'
key_file: 'tls/metrics.key'
# XXX: server_name is required if the target name
# is not covered by the certificate (not in the SAN list)
server_name: 'starbug'
- job_name: lxd-reddwarf
metrics_path: '/1.0/metrics'
scheme: 'https'
static_configs:
- targets: ['reddwarf.lan:8444']
tls_config:
insecure_skip_verify: true
ca_file: 'tls/reddwarf-server.crt'
cert_file: 'tls/metrics.crt'
key_file: 'tls/metrics.key'
# XXX: server_name is required if the target name
# is not covered by the certificate (not in the SAN list)
server_name: 'reddwarf'
- job_name: lxd-skutter01
metrics_path: '/1.0/metrics'
scheme: 'https'
static_configs:
- targets: ['skutter01.lan:8444']
tls_config:
insecure_skip_verify: true
ca_file: 'tls/skutter01-server.crt'
cert_file: 'tls/metrics.crt'
key_file: 'tls/metrics.key'
# XXX: server_name is required if the target name
# is not covered by the certificate (not in the SAN list)
server_name: 'skutter01'
- job_name: lxd-skutter02
metrics_path: '/1.0/metrics'
scheme: 'https'
static_configs:
- targets: ['skutter02.lan:8444']
tls_config:
insecure_skip_verify: true
ca_file: 'tls/skutter02-server.crt'
cert_file: 'tls/metrics.crt'
key_file: 'tls/metrics.key'
# XXX: server_name is required if the target name
# is not covered by the certificate (not in the SAN list)
server_name: 'skutter02'
- job_name: lxd-holly
metrics_path: '/1.0/metrics'
scheme: 'https'
static_configs:
- targets: ['holly.lan:8444']
tls_config:
insecure_skip_verify: true
ca_file: 'tls/holly-server.crt'
cert_file: 'tls/metrics.crt'
key_file: 'tls/metrics.key'
# XXX: server_name is required if the target name
# is not covered by the certificate (not in the SAN list)
server_name: 'holly'
# EOF

13
tls/holly-server.crt Normal file
View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIIB/zCCAYagAwIBAgIQZQEZUsFtINiUBXL38tjcbjAKBggqhkjOPQQDAzAzMRww
GgYDVQQKExNsaW51eGNvbnRhaW5lcnMub3JnMRMwEQYDVQQDDApyb290QGhvbGx5
MB4XDTIyMTExODAwMDc0M1oXDTMyMTExNTAwMDc0M1owMzEcMBoGA1UEChMTbGlu
dXhjb250YWluZXJzLm9yZzETMBEGA1UEAwwKcm9vdEBob2xseTB2MBAGByqGSM49
AgEGBSuBBAAiA2IABLjsXe7rLSIraR3GYD4Up04tC6XjGtv7QFanWWTfEGMWW0hs
5Sk1Fh7CHzaC755D/SBua7LX7mpBBrgw9buv2LBrNeMR7wlzmra8NlGVWGipaUrx
CKR0NjF5thomG1p31KNfMF0wDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsG
AQUFBwMBMAwGA1UdEwEB/wQCMAAwKAYDVR0RBCEwH4IFaG9sbHmHBH8AAAGHEAAA
AAAAAAAAAAAAAAAAAAEwCgYIKoZIzj0EAwMDZwAwZAIwfOrFELb0JkIz55I6bosF
6euQuGNFjrtDF+amTU1GtRwjeZHu8L7P30f33M6VFi71AjBXfk6ciOEzn9O2WLX7
L3XNwYioZij72iANHvqgmrU/ySqf8nOHojliB99WiqNinvA=
-----END CERTIFICATE-----

12
tls/metrics.crt Normal file
View File

@ -0,0 +1,12 @@
-----BEGIN CERTIFICATE-----
MIIBwjCCAUigAwIBAgIUQbAla0+YgAV9JM3ynhGMlP5jEXswCgYIKoZIzj0EAwMw
GDEWMBQGA1UEAwwNbWV0cmljcy5sb2NhbDAeFw0yMzAxMTcwMzExNTBaFw0zMzAx
MTQwMzExNTBaMBgxFjAUBgNVBAMMDW1ldHJpY3MubG9jYWwwdjAQBgcqhkjOPQIB
BgUrgQQAIgNiAASOvSm323fa8+t4H6XK6mIGU956FoYhDNwiMw7QCz+9gU7gekTn
9D9CV9Ci54ssvS3g9USVkM+pv3NWwFStD4OoMAH0N6FXPn87Z4CRz2U2IDlPjUOu
z4hAw71ysiOw4WajUzBRMB0GA1UdDgQWBBSHbI+Y7lssrVlw/sySpckNKy/CSTAf
BgNVHSMEGDAWgBSHbI+Y7lssrVlw/sySpckNKy/CSTAPBgNVHRMBAf8EBTADAQH/
MAoGCCqGSM49BAMDA2gAMGUCMCUK7InuoBj4hUN9q4HXksoaKBb7oTkYjDpuTedj
6YGB27gAOTLkNVm3+0c5KnKZkQIxAN/xbLvWdegbiCZY6c6K6tnxXmeiqutWDTjL
nJkPivoMV8eyVtEenfH1FAFjJv+awA==
-----END CERTIFICATE-----

13
tls/reddwarf-server.crt Normal file
View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCTCCAY+gAwIBAgIQT/yQlmIc+eK5ixGVG7pueDAKBggqhkjOPQQDAzA2MRww
GgYDVQQKExNsaW51eGNvbnRhaW5lcnMub3JnMRYwFAYDVQQDDA1yb290QHJlZGR3
YXJmMB4XDTIyMDExNzE3NTk0M1oXDTMyMDExNTE3NTk0M1owNjEcMBoGA1UEChMT
bGludXhjb250YWluZXJzLm9yZzEWMBQGA1UEAwwNcm9vdEByZWRkd2FyZjB2MBAG
ByqGSM49AgEGBSuBBAAiA2IABFqeeMKCwVV4MZbJYTbJu/YsxZp0P1R++YZLoqrm
A8OwftyNeCM9FJNIRzk4tWzR1Ck6VM6vWw7Grywbwy4mNjBJgidUhkTPKd8rBS7g
fd26hWKIEeGNVtKQO6Y5yVD7Y6NiMGAwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM
MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwKwYDVR0RBCQwIoIIcmVkZHdhcmaH
BH8AAAGHEAAAAAAAAAAAAAAAAAAAAAEwCgYIKoZIzj0EAwMDaAAwZQIwH4xxxMKA
GbbCZn8bNen9WBd/kf83OW22M8kikgEG72zR+qQehBEm0T/mGPMM83WpAjEAxnjx
lntjffwdbUkpU8+B8UCaaGE2OU6JyI312dx2k6pJn8NbmX6rdnQ/Huv0KmCN
-----END CERTIFICATE-----

14
tls/skutter01-server.crt Normal file
View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICDTCCAZOgAwIBAgIRAJ5zVLGkaTpdyyHx+9f5YrkwCgYIKoZIzj0EAwMwNzEc
MBoGA1UEChMTbGludXhjb250YWluZXJzLm9yZzEXMBUGA1UEAwwOcm9vdEBza3V0
dGVyMDEwHhcNMjIxMjI4MjM1MTQzWhcNMzIxMjI1MjM1MTQzWjA3MRwwGgYDVQQK
ExNsaW51eGNvbnRhaW5lcnMub3JnMRcwFQYDVQQDDA5yb290QHNrdXR0ZXIwMTB2
MBAGByqGSM49AgEGBSuBBAAiA2IABKdro2rbfLDDpjdaa1uSIGClvqGc93/0fro1
Kggcm+Xuz1sFa6S1qDppK8Ec3OIGwU1erX3+Uoi3sabMBB3PhSINwyDNF9zsd1Ev
9LeyCExy6BFdNrHvK/m2RIPf0QsFFKNjMGEwDgYDVR0PAQH/BAQDAgWgMBMGA1Ud
JQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwLAYDVR0RBCUwI4IJc2t1dHRl
cjAxhwR/AAABhxAAAAAAAAAAAAAAAAAAAAABMAoGCCqGSM49BAMDA2gAMGUCMQCD
ETiItQKxGItUmGbaE+ZzMWeRky0+f2/gJNrnjCkd+S0/SZWkm1yMxozUULvw1PoC
MENf3vojRsJqcmdCzk8E8oaYW0jO105X09fLH3Po8TL/WrB9VavoJ9p2hbf3IXa9
IA==
-----END CERTIFICATE-----

14
tls/skutter02-server.crt Normal file
View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICDTCCAZOgAwIBAgIRALhnQ3A3WEE/ATg0493xaRYwCgYIKoZIzj0EAwMwNzEc
MBoGA1UEChMTbGludXhjb250YWluZXJzLm9yZzEXMBUGA1UEAwwOcm9vdEBza3V0
dGVyMDIwHhcNMjIxMTE4MDAyOTE1WhcNMzIxMTE1MDAyOTE1WjA3MRwwGgYDVQQK
ExNsaW51eGNvbnRhaW5lcnMub3JnMRcwFQYDVQQDDA5yb290QHNrdXR0ZXIwMjB2
MBAGByqGSM49AgEGBSuBBAAiA2IABHzStHIpJ6Kk5C7O+EHGHTJFAbCox7k4+VtF
BfFPdZRY9xvaliZpDMm4jspV+85uPZY1GZRBlAjopszoJ5rROeI9CtD40pGEEQ2F
BprJNnoHyhqyxXhamlzIec0BAiGwjqNjMGEwDgYDVR0PAQH/BAQDAgWgMBMGA1Ud
JQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwLAYDVR0RBCUwI4IJc2t1dHRl
cjAyhwR/AAABhxAAAAAAAAAAAAAAAAAAAAABMAoGCCqGSM49BAMDA2gAMGUCMQCk
lj+3/nmnEGCcD4bxEp3Ox6jYKAi+yvBuTsxMczlFwt0PB9bwHKy3+DhpzEt0iU8C
MHAaH3Oyeh77iLnXFFhrTWcqm/MHC2lZMQqaDcHgpF7A0qkRMLcIG7MR1fFZWVGm
7g==
-----END CERTIFICATE-----

13
tls/starbug-server.crt Normal file
View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICBTCCAYygAwIBAgIQC1kw/d1BSIwHk/xlOafqNzAKBggqhkjOPQQDAzA1MRww
GgYDVQQKExNsaW51eGNvbnRhaW5lcnMub3JnMRUwEwYDVQQDDAxyb290QHN0YXJi
dWcwHhcNMjIwMTA2MDMzNjEwWhcNMzIwMTA0MDMzNjEwWjA1MRwwGgYDVQQKExNs
aW51eGNvbnRhaW5lcnMub3JnMRUwEwYDVQQDDAxyb290QHN0YXJidWcwdjAQBgcq
hkjOPQIBBgUrgQQAIgNiAARVKTb2sK0uxWOQJXDTg2m7B3w2GCgh4qQ9QA6p7gIp
Nb/jeDdLge3PcSBn1SHftf8+rZtFyt/lxLcDrVlhbYOaUJ1zU4QUgFo2C+MvyGrd
3jxJ0YlI7QcJ5jwZtedCCgqjYTBfMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAK
BggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMCoGA1UdEQQjMCGCB3N0YXJidWeHBH8A
AAGHEAAAAAAAAAAAAAAAAAAAAAEwCgYIKoZIzj0EAwMDZwAwZAIweCsx8owHd2Z9
ehRPeE+gs3Hn7GKI4flTWii7jhG4CbJOPyZtHUoBHjLYAyM0HcRyAjAirZP5CWTe
0m/ggL/8G1PUNvFCjApWFean2qDVVzPtZrYQmQJtFT+lM1oSOcQIBTY=
-----END CERTIFICATE-----