mirror of
https://github.com/jambonz/jambonz-infrastructure.git
synced 2026-07-04 22:11:48 +00:00
kubernetes: jambonz-monitoring namespace now has everything for standard install (grafana, influxdb, telegraf, homer)
This commit is contained in:
@@ -31,13 +31,13 @@ spec:
|
||||
name: jambonz-env
|
||||
- name: rtpengine
|
||||
image: jambonz/rtpengine:latest
|
||||
args: ['rtpengine']
|
||||
args: ['rtpengine', '--homer', 'heplify-server.jambonz-monitoring.svc.cluster.local:9060', '--homer-protocol', 'udp', '--homer-id', '11']
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: jambonz-env
|
||||
env:
|
||||
- name: LOGLEVEL
|
||||
value: "7"
|
||||
value: "5"
|
||||
- name: DRACHTIO_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
||||
@@ -33,7 +33,7 @@ spec:
|
||||
containers:
|
||||
- name: drachtio
|
||||
image: drachtio/drachtio-server:k8s
|
||||
args: ['drachtio', '--loglevel', 'info', '--cloud-deployment', '--sofia-loglevel', '3']
|
||||
args: ['drachtio', '--loglevel', 'info', '--cloud-deployment', '--sofia-loglevel', '3', '--homer', 'heplify-server.jambonz-monitoring.svc.cluster.local:9060', '--homer-id', '10']
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: jambonz-env
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
namespace: jambonz-monitoring
|
||||
name: heplify-server-conf
|
||||
data:
|
||||
heplify-server.toml: |
|
||||
HEPAddr = "0.0.0.0:9060"
|
||||
HEPTCPAddr = ""
|
||||
HEPTLSAddr = "0.0.0.0:9060"
|
||||
HEPWSAddr = "0.0.0.0:3000"
|
||||
ESAddr = ""
|
||||
ESDiscovery = true
|
||||
LokiURL = ""
|
||||
LokiBulk = 200
|
||||
LokiTimer = 4
|
||||
LokiBuffer = 100000
|
||||
LokiHEPFilter = [1,5,100]
|
||||
ForceHEPPayload = []
|
||||
PromAddr = "0.0.0.0:9096"
|
||||
PromTargetIP = ""
|
||||
PromTargetName = ""
|
||||
DBShema = "homer7"
|
||||
DBDriver = "postgres"
|
||||
DBAddr = "postgres:5432"
|
||||
DBUser = "root"
|
||||
DBPass = "homerSeven"
|
||||
DBDataTable = "homer_data"
|
||||
DBConfTable = "homer_config"
|
||||
DBBulk = 200
|
||||
DBTimer = 4
|
||||
DBBuffer = 400000
|
||||
DBWorker = 8
|
||||
DBRotate = true
|
||||
DBPartLog = "2h"
|
||||
DBPartSip = "1h"
|
||||
DBPartQos = "6h"
|
||||
DBDropDays = 14
|
||||
DBDropDaysCall = 0
|
||||
DBDropDaysRegister = 0
|
||||
DBDropDaysDefault = 0
|
||||
DBDropOnStart = false
|
||||
DBUsageProtection = true
|
||||
DBUsageScheme = "percentage"
|
||||
DBPercentageUsage = "80%"
|
||||
DBMaxSize = "30MB"
|
||||
Dedup = false
|
||||
DiscardMethod = []
|
||||
AlegIDs = ["X-CID"]
|
||||
CustomHeader = ["X-Application-Sid", "X-Originating-Carrier", "X-MS-Teams-Tenant-FQDN", "X-Authenticated-User"]
|
||||
SIPHeader = []
|
||||
LogDbg = ""
|
||||
LogLvl = "info"
|
||||
LogStd = false
|
||||
LogSys = false
|
||||
Config = "./heplify-server.toml"
|
||||
ConfigHTTPAddr = ""
|
||||
|
||||
# Examples:
|
||||
# -------------------------------------
|
||||
# ESAddr = "http://127.0.0.1:9200"
|
||||
# DBShema = "homer7"
|
||||
# DBDriver = "postgres"
|
||||
# LokiURL = "http://localhost:3100/api/prom/push"
|
||||
# LokiHEPFilter = [1,5,100]
|
||||
# PromAddr = "0.0.0.0:8899"
|
||||
# PromTargetIP = "10.1.2.111,10.1.2.4,10.1.2.5,10.1.2.6,10.12.44.222"
|
||||
# PromTargetName = "sbc_access,sbc_core,kamailio,asterisk,pstn_gateway"
|
||||
# AlegIDs = ["X-CID","P-Charging-Vector,icid-value=\"?(.*?)(?:\"|;|$)","X-BroadWorks-Correlation-Info"]
|
||||
# DiscardMethod = ["OPTIONS","NOTIFY"]
|
||||
# CustomHeader = ["X-CustomerIP","X-Billing"]
|
||||
# SIPHeader = ["callid","callid_aleg","method","ruri_user","ruri_domain","from_user","from_domain","from_tag","to_user","to_domain","to_tag","via","contact_user"]
|
||||
# LogDbg = "hep,sql,loki"
|
||||
# LogLvl = "warning"
|
||||
# ConfigHTTPAddr = "0.0.0.0:9876"
|
||||
# -------------------------------------
|
||||
# To hot reload PromTargetIP and PromTargetName run:
|
||||
# killall -HUP heplify-server
|
||||
@@ -0,0 +1,20 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: heplify-server
|
||||
name: heplify-server
|
||||
namespace: jambonz-monitoring
|
||||
spec:
|
||||
ports:
|
||||
- name: "heplify-server"
|
||||
port: 9060
|
||||
targetPort: 9060
|
||||
protocol: UDP
|
||||
- name: "stats-scraper"
|
||||
port: 9096
|
||||
targetPort: 9096
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: heplify-server
|
||||
clusterIP: None
|
||||
@@ -0,0 +1,39 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: heplify-server
|
||||
labels:
|
||||
app: heplify-server
|
||||
namespace: jambonz-monitoring
|
||||
spec:
|
||||
serviceName: heplify-server
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: heplify-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: heplify-server
|
||||
spec:
|
||||
containers:
|
||||
- name: heplify-server
|
||||
image: sipcapture/heplify-server:master
|
||||
args: ['./heplify-server', '-config', '/etc/heplify-server.toml']
|
||||
ports:
|
||||
- containerPort: 9060
|
||||
protocol: UDP
|
||||
- containerPort: 9096
|
||||
protocol: TCP
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /etc/heplify-server.toml
|
||||
name: heplify-server-conf
|
||||
subPath: heplify-server.toml
|
||||
volumes:
|
||||
- name: heplify-server-conf
|
||||
configMap:
|
||||
name: heplify-server-conf
|
||||
items:
|
||||
- key: heplify-server.toml
|
||||
path: heplify-server.toml
|
||||
@@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: postgres
|
||||
name: postgres
|
||||
namespace: jambonz-monitoring
|
||||
spec:
|
||||
ports:
|
||||
- name: "postgres"
|
||||
port: 5432
|
||||
targetPort: 5432
|
||||
selector:
|
||||
app: postgres
|
||||
clusterIP: None
|
||||
@@ -0,0 +1,42 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
app: postgres
|
||||
name: postgres
|
||||
namespace: jambonz-monitoring
|
||||
spec:
|
||||
serviceName: postgres
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: postgres
|
||||
template:
|
||||
metadata:
|
||||
name: postgres
|
||||
labels:
|
||||
app: postgres
|
||||
spec:
|
||||
containers:
|
||||
- image: postgres:11-alpine
|
||||
name: postgres
|
||||
env:
|
||||
- name: POSTGRES_PASSWORD
|
||||
value: homerSeven
|
||||
- name: POSTGRES_USER
|
||||
value: root
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/postgresql
|
||||
name: postgres-claim
|
||||
restartPolicy: Always
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: postgres-claim
|
||||
spec:
|
||||
accessModes: ["ReadWriteOnce"]
|
||||
resources:
|
||||
requests:
|
||||
storage: 30Gi
|
||||
@@ -0,0 +1,143 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
namespace: jambonz-monitoring
|
||||
name: webapp-conf
|
||||
data:
|
||||
bootstrapped: |
|
||||
bootstrapping
|
||||
webapp_config.json: |
|
||||
{
|
||||
"auth_settings": {
|
||||
"_comment": "The type param can be internal, ldap, http_auth",
|
||||
"token_expire": 1200,
|
||||
"type": "internal"
|
||||
},
|
||||
"database_config": {
|
||||
"help": "Settings for PGSQL Database (settings)",
|
||||
"host": "postgres",
|
||||
"keepalive": true,
|
||||
"name": "homer_config",
|
||||
"node": "LocalConfig",
|
||||
"pass": "homerSeven",
|
||||
"user": "root"
|
||||
},
|
||||
"database_data": {
|
||||
"localnode": {
|
||||
"help": "Settings for PGSQL Database (data)",
|
||||
"host": "postgres",
|
||||
"keepalive": true,
|
||||
"name": "homer_data",
|
||||
"node": "LocalNode",
|
||||
"pass": "homerSeven",
|
||||
"user": "root"
|
||||
}
|
||||
},
|
||||
"decoder_shark": {
|
||||
"_comment": "Here you can do packet decoding to using tshark application. Please define uid, gid if you run the app under root",
|
||||
"active": false,
|
||||
"bin": "/usr/bin/tshark",
|
||||
"protocols": [
|
||||
"1_call",
|
||||
"1_registration",
|
||||
"1_default"
|
||||
]
|
||||
},
|
||||
"grafana_config": {
|
||||
"help": "Settings for Grafana",
|
||||
"host": "http://grafana:3000",
|
||||
"path": "/grafana",
|
||||
"token": ""
|
||||
},
|
||||
"hep_relay": {
|
||||
"help": "UDP socket to send HEP data on",
|
||||
"host": "heplify-server",
|
||||
"port": 9060
|
||||
},
|
||||
"http_auth": {
|
||||
"skipverify": true,
|
||||
"url": "http://localhost:1323"
|
||||
},
|
||||
"http_settings": {
|
||||
"debug": false,
|
||||
"gzip": true,
|
||||
"gzip_static": true,
|
||||
"help": "Settings for the HOMER Webapp Server. If you have gzip_static = false, please be sure that your dist directory has uncompressed .js files",
|
||||
"host": "0.0.0.0",
|
||||
"port": 80,
|
||||
"root": "/usr/local/homer/dist"
|
||||
},
|
||||
"https_settings": {
|
||||
"cert": "/usr/local/homer/tls/cert.pem",
|
||||
"enable": false,
|
||||
"help": "SSL settings for homer-app",
|
||||
"host": "0.0.0.0",
|
||||
"key": "/usr/local/homer/tls/key.pem",
|
||||
"port": 443
|
||||
},
|
||||
"influxdb_config": {
|
||||
"database": "homer",
|
||||
"help": "Settings for InfluxDB Database (optional)",
|
||||
"host": "http://influxdb:8086",
|
||||
"name": "homer_config",
|
||||
"pass": "influx_password",
|
||||
"policy": "autogen",
|
||||
"user": "influx_user"
|
||||
},
|
||||
"ldap_config": {
|
||||
"admingroup": "admin",
|
||||
"adminmode": true,
|
||||
"anonymous": false,
|
||||
"attributes": [
|
||||
"dn",
|
||||
"givenName",
|
||||
"sn",
|
||||
"mail",
|
||||
"uid"
|
||||
],
|
||||
"base": "dc=example,dc=com",
|
||||
"binddn": "uid=readonlysuer,ou=People,dc=example,dc=com",
|
||||
"bindpassword": "readonlypassword",
|
||||
"groupattribute": "cn",
|
||||
"groupfilter": "(memberUid=%s)",
|
||||
"host": "ldap.example.com",
|
||||
"port": 389,
|
||||
"skiptls": true,
|
||||
"skipverify": true,
|
||||
"userdn": "uid=%s,ou=People,dc=example,dc=com",
|
||||
"userfilter": "(uid=%s)",
|
||||
"usergroup": "HOMER_user",
|
||||
"usermode": true,
|
||||
"usessl": false
|
||||
},
|
||||
"loki_config": {
|
||||
"api": "loki/api/v1",
|
||||
"help": "Settings for LOKI Database (optional)",
|
||||
"host": "http://127.0.0.1:3100",
|
||||
"param_query": "query_range",
|
||||
"pass": "admin",
|
||||
"user": "admin"
|
||||
},
|
||||
"prometheus_config": {
|
||||
"api": "api/v1",
|
||||
"help": "Settings for Prometheus Database (optional)",
|
||||
"host": "http://127.0.0.1:9090",
|
||||
"pass": "admin",
|
||||
"user": "admin"
|
||||
},
|
||||
"system_settings": {
|
||||
"_loglevels": "can be: fatal, error, warn, info, debug, trace",
|
||||
"help": "Settings for HOMER logs",
|
||||
"hostname": "ip-172-31-23-156",
|
||||
"loglevel": "debug",
|
||||
"logname": "homer-app.log",
|
||||
"logpath": "/usr/local/homer/log",
|
||||
"logstdout": true,
|
||||
"uuid": "4bd92b25-0dd8-4326-a984-08da79dcc569"
|
||||
},
|
||||
"transaction_settings": {
|
||||
"deduplicate": {
|
||||
"global": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: homer-webapp
|
||||
name: homer-webapp
|
||||
namespace: jambonz-monitoring
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: homer-webapp
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: homer-webapp
|
||||
spec:
|
||||
containers:
|
||||
- name: homer-webapp
|
||||
image: sipcapture/webapp:latest
|
||||
ports:
|
||||
- containerPort: 80
|
||||
resources: {}
|
||||
env:
|
||||
- name: DB_HOST
|
||||
value: postgres
|
||||
- name: DB_USER
|
||||
value: root
|
||||
- name: DB_PASS
|
||||
value: homerSeven
|
||||
volumeMounts:
|
||||
- mountPath: /usr/local/homer/etc/webapp_config.json
|
||||
name: webapp-conf
|
||||
subPath: webapp_config.json
|
||||
- mountPath: /homer-semaphore/.bootstrapped
|
||||
name: webapp-conf
|
||||
subPath: bootstrapped
|
||||
volumes:
|
||||
- name: webapp-conf
|
||||
configMap:
|
||||
name: webapp-conf
|
||||
items:
|
||||
- key: webapp_config.json
|
||||
path: webapp_config.json
|
||||
- key: bootstrapped
|
||||
path: bootstrapped
|
||||
@@ -0,0 +1,18 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: homer-webapp
|
||||
namespace: jambonz-monitoring
|
||||
spec:
|
||||
rules:
|
||||
- host: homer.k8s-gcp.jambonz.org
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: homer-webapp
|
||||
port:
|
||||
number: 80
|
||||
path: /
|
||||
pathType: Prefix
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: homer-webapp
|
||||
name: homer-webapp
|
||||
namespace: jambonz-monitoring
|
||||
spec:
|
||||
ports:
|
||||
- name: homer-webapp
|
||||
port: 80
|
||||
targetPort: 80
|
||||
type: NodePort
|
||||
selector:
|
||||
app: homer-webapp
|
||||
@@ -22,7 +22,7 @@ spec:
|
||||
name: influxdb
|
||||
env:
|
||||
- name: INFLUXDB_LOGGING_LEVEL
|
||||
value: debug
|
||||
value: info
|
||||
ports:
|
||||
- containerPort: 8086
|
||||
resources: {}
|
||||
|
||||
@@ -13,4 +13,13 @@ resources:
|
||||
- telegraf/telegraf-statefulset.yaml
|
||||
- telegraf/telegraf-service.yaml
|
||||
- telegraf/telegraf-configmap.yaml
|
||||
- homer/postgres-statefulset.yaml
|
||||
- homer/postgres-service.yaml
|
||||
- homer/heplify-server-configmap.yaml
|
||||
- homer/heplify-server-statefulset.yaml
|
||||
- homer/heplify-server-service.yaml
|
||||
- homer/webapp-configmap.yaml
|
||||
- homer/webapp-deployment.yaml
|
||||
- homer/webapp-service.yaml
|
||||
- homer/webapp-ingress.yaml
|
||||
- namespace.yaml
|
||||
|
||||
@@ -215,7 +215,6 @@ data:
|
||||
[[inputs.kernel]]
|
||||
# no configuration
|
||||
|
||||
|
||||
# Read metrics about memory usage
|
||||
[[inputs.mem]]
|
||||
# no configuration
|
||||
@@ -257,6 +256,11 @@ data:
|
||||
service_address = "tcp://127.0.0.1:8094"
|
||||
data_format = "influx"
|
||||
|
||||
# scrape stats from heplify-server
|
||||
[[inputs.prometheus]]
|
||||
urls = ["http://heplify-server:9096/metrics"]
|
||||
namedrop = ["go*","process*","promhttp*"]
|
||||
|
||||
# # Statsd UDP/TCP Server
|
||||
[[inputs.statsd]]
|
||||
protocol = "tcp"
|
||||
|
||||
Reference in New Issue
Block a user