Using Grafana image instead of building it! (#386)

* Using Grafana image instead of building it

* Using Grafana image instead of building it!

* latest prometheus version 2.55.0

* Update .env

Revert to the original IP for UEs

---------

Co-authored-by: B3c3ll <you@example.com>
This commit is contained in:
b3c3ll
2024-11-07 22:20:46 +03:30
committed by GitHub
parent 0a6c673771
commit ff550f8ce1
14 changed files with 75 additions and 110 deletions

2
.env
View File

@@ -129,6 +129,8 @@ SRS_GNB_IP=172.22.0.37
# GRAFANA # GRAFANA
GRAFANA_IP=172.22.0.39 GRAFANA_IP=172.22.0.39
GRAFANA_USERNAME=open5gs
GRAFANA_PASSWORD=open5gs
# UE IPv4 Subnet Range for APN=internet # UE IPv4 Subnet Range for APN=internet
UE_IPV4_INTERNET=192.168.100.0/24 UE_IPV4_INTERNET=192.168.100.0/24

View File

@@ -47,9 +47,6 @@ jobs:
- image: docker_metrics - image: docker_metrics
context: metrics context: metrics
file: Dockerfile file: Dockerfile
- image: docker_grafana
context: grafana
file: Dockerfile
- image: docker_rtpengine - image: docker_rtpengine
context: rtpengine context: rtpengine
file: Dockerfile file: Dockerfile

View File

@@ -1,4 +1,3 @@
version: '3'
services: services:
mongo: mongo:
image: mongo:6.0 image: mongo:6.0
@@ -320,15 +319,23 @@ services:
default: default:
ipv4_address: ${METRICS_IP} ipv4_address: ${METRICS_IP}
grafana: grafana:
build: ./grafana image: grafana/grafana:11.3.0
image: docker_grafana
container_name: grafana container_name: grafana
env_file: env_file:
- .env - .env
volumes: volumes:
- grafana_data:/var/lib/grafana
- ./grafana/:/etc/grafana/provisioning/
- ./grafana:/mnt/grafana - ./grafana:/mnt/grafana
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
#- GF_INSTALL_PLUGINS=${GRAFANA_INSTALL_PLUGINS}
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_PATHS_DATA=/var/lib/grafana
- METRICS_IP=${METRICS_IP}
expose: expose:
- "3000/tcp" - "3000/tcp"
ports: ports:
@@ -342,5 +349,7 @@ networks:
config: config:
- subnet: ${TEST_NETWORK} - subnet: ${TEST_NETWORK}
volumes: volumes:
grafana_data:
name: grafana_data
mongodbdata: {} mongodbdata: {}
dbdata: {} dbdata: {}

View File

@@ -1,4 +1,3 @@
version: '3'
services: services:
mongo: mongo:
image: mongo:6.0 image: mongo:6.0
@@ -456,15 +455,23 @@ services:
default: default:
ipv4_address: ${METRICS_IP} ipv4_address: ${METRICS_IP}
grafana: grafana:
build: ./grafana image: grafana/grafana:11.3.0
image: docker_grafana
container_name: grafana container_name: grafana
env_file: env_file:
- .env - .env
volumes: volumes:
- grafana_data:/var/lib/grafana
- ./grafana/:/etc/grafana/provisioning/
- ./grafana:/mnt/grafana - ./grafana:/mnt/grafana
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
#- GF_INSTALL_PLUGINS=${GRAFANA_INSTALL_PLUGINS}
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_PATHS_DATA=/var/lib/grafana
- METRICS_IP=${METRICS_IP}
expose: expose:
- "3000/tcp" - "3000/tcp"
ports: ports:
@@ -478,5 +485,7 @@ networks:
config: config:
- subnet: ${TEST_NETWORK} - subnet: ${TEST_NETWORK}
volumes: volumes:
grafana_data:
name: grafana_data
mongodbdata: {} mongodbdata: {}
dbdata: {} dbdata: {}

View File

@@ -1,4 +1,3 @@
version: '3'
services: services:
mongo: mongo:
image: mongo:6.0 image: mongo:6.0
@@ -664,15 +663,23 @@ services:
default: default:
ipv4_address: ${METRICS_IP} ipv4_address: ${METRICS_IP}
grafana: grafana:
build: ./grafana image: grafana/grafana:11.3.0
image: docker_grafana
container_name: grafana container_name: grafana
env_file: env_file:
- .env - .env
volumes: volumes:
- grafana_data:/var/lib/grafana
- ./grafana/:/etc/grafana/provisioning/
- ./grafana:/mnt/grafana - ./grafana:/mnt/grafana
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
#- GF_INSTALL_PLUGINS=${GRAFANA_INSTALL_PLUGINS}
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_PATHS_DATA=/var/lib/grafana
- METRICS_IP=${METRICS_IP}
expose: expose:
- "3000/tcp" - "3000/tcp"
ports: ports:
@@ -686,5 +693,7 @@ networks:
config: config:
- subnet: ${TEST_NETWORK} - subnet: ${TEST_NETWORK}
volumes: volumes:
grafana_data:
name: grafana_data
mongodbdata: {} mongodbdata: {}
dbdata: {} dbdata: {}

View File

@@ -1,39 +0,0 @@
# BSD 2-Clause License
# Copyright (c) 2020, Supreeth Herle
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
FROM ubuntu:jammy
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y --no-install-recommends apt-transport-https software-properties-common wget && \
mkdir -p /etc/apt/keyrings/ && \
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | tee /etc/apt/keyrings/grafana.gpg && \
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | tee -a /etc/apt/sources.list.d/grafana.list && \
apt-get update && \
apt-get install -y --no-install-recommends grafana
CMD /mnt/grafana/grafana_init.sh

View File

@@ -5,4 +5,4 @@ providers:
folder: Services # The folder where to place the dashboards folder: Services # The folder where to place the dashboards
type: file type: file
options: options:
path: /var/lib/grafana/dashboards path: /etc/grafana/provisioning/dashboards

View File

@@ -0,0 +1,9 @@
apiVersion: 1
datasources:
- name: Open5Gs
type: prometheus
access: proxy
url: http://${METRICS_IP}:9090
disableDeletion: false
editable: true

View File

@@ -1,43 +0,0 @@
#!/bin/bash
# BSD 2-Clause License
# Copyright (c) 2020, Supreeth Herle
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Sync docker time
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
export GRAFANA_WORK_DIR=/usr/share/grafana
cd $GRAFANA_WORK_DIR
cp /mnt/grafana/prometheus_open5gs.yml ./conf/provisioning/datasources
cp /mnt/grafana/open5gs_dashboard.yml ./conf/provisioning/dashboards
mkdir -p /var/lib/grafana/dashboards
cp /mnt/grafana/open5gs_dashboard.json /var/lib/grafana/dashboards
sed -i 's|METRICS_IP|'$METRICS_IP'|g' ./conf/provisioning/datasources/prometheus_open5gs.yml
./bin/grafana server -homepath $GRAFANA_WORK_DIR

View File

@@ -1,6 +0,0 @@
apiVersion: 1
datasources:
- name: Open5Gs
type: prometheus
url: http://METRICS_IP:9090

View File

@@ -28,7 +28,7 @@ FROM ubuntu:focal
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV PROMETHEUS_VERSION=2.40.2 ENV PROMETHEUS_VERSION=2.55.0
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y wget && \ apt-get install -y wget && \

View File

@@ -1,4 +1,3 @@
version: '3'
services: services:
mongo: mongo:
image: mongo:6.0 image: mongo:6.0
@@ -305,15 +304,23 @@ services:
default: default:
ipv4_address: ${METRICS_IP} ipv4_address: ${METRICS_IP}
grafana: grafana:
build: ./grafana image: grafana/grafana:11.3.0
image: docker_grafana
container_name: grafana container_name: grafana
env_file: env_file:
- .env - .env
volumes: volumes:
- grafana_data:/var/lib/grafana
- ./grafana/:/etc/grafana/provisioning/
- ./grafana:/mnt/grafana - ./grafana:/mnt/grafana
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
#- GF_INSTALL_PLUGINS=${GRAFANA_INSTALL_PLUGINS}
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_PATHS_DATA=/var/lib/grafana
- METRICS_IP=${METRICS_IP}
expose: expose:
- "3000/tcp" - "3000/tcp"
ports: ports:
@@ -327,4 +334,6 @@ networks:
config: config:
- subnet: ${TEST_NETWORK} - subnet: ${TEST_NETWORK}
volumes: volumes:
mongodbdata: {} grafana_data:
name: grafana_data
mongodbdata: {}

View File

@@ -1,4 +1,3 @@
version: '3'
services: services:
mongo: mongo:
image: mongo:6.0 image: mongo:6.0
@@ -490,15 +489,23 @@ services:
default: default:
ipv4_address: ${SMSC_IP} ipv4_address: ${SMSC_IP}
grafana: grafana:
build: ./grafana image: grafana/grafana:11.3.0
image: docker_grafana
container_name: grafana container_name: grafana
env_file: env_file:
- .env - .env
volumes: volumes:
- grafana_data:/var/lib/grafana
- ./grafana/:/etc/grafana/provisioning/
- ./grafana:/mnt/grafana - ./grafana:/mnt/grafana
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
#- GF_INSTALL_PLUGINS=${GRAFANA_INSTALL_PLUGINS}
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_PATHS_DATA=/var/lib/grafana
- METRICS_IP=${METRICS_IP}
expose: expose:
- "3000/tcp" - "3000/tcp"
ports: ports:
@@ -512,5 +519,7 @@ networks:
config: config:
- subnet: ${TEST_NETWORK} - subnet: ${TEST_NETWORK}
volumes: volumes:
grafana_data:
name: grafana_data
mongodbdata: {} mongodbdata: {}
dbdata: {} dbdata: {}