From db36d469e465db4e9f39165298d1d9e2bce255ef Mon Sep 17 00:00:00 2001 From: 4NK Dev Date: Thu, 2 Oct 2025 16:38:58 +0000 Subject: [PATCH] added --- .gitignore | 13 +- storage/dev/.env | 7 +- storage/dev/.env.post | 73 ++ storage/dev/4NK_modules/4NK_certificator/.env | 2 +- .../4NK_certificator/certificator.toml | 12 +- storage/dev/4NK_modules/bitcoin/bitcoin.conf | 6 +- .../4NK_modules/blindbit-oracle/blindbit.toml | 4 +- storage/dev/4NK_modules/grafana/.env | 4 +- .../dev/4NK_modules/grafana/dashboards/.json | 308 +++++++++ .../grafana/dashboards/4nk-certificator.json | 308 +++++++++ .../grafana/dashboards/4nk-miner.json | 308 +++++++++ .../grafana/dashboards/4nk-vault.json | 308 +++++++++ .../grafana/dashboards/4nk-web-status.json | 308 +++++++++ .../grafana/dashboards/bitcoin.json | 308 +++++++++ .../grafana/dashboards/blindbit-oracle.json | 298 +++++--- .../grafana/dashboards/grafana.json | 308 +++++++++ .../grafana/dashboards/ihm-client.json | 308 +++++++++ .../grafana/dashboards/lecoffre-front.json | 308 +++++++++ .../4NK_modules/grafana/dashboards/loki.json | 308 +++++++++ .../grafana/dashboards/postgresql.json | 308 +++++++++ .../grafana/dashboards/promtail.json | 308 +++++++++ .../4NK_modules/grafana/dashboards/redis.json | 308 +++++++++ .../grafana/dashboards/sdk-relay.json | 308 +++++++++ .../grafana/dashboards/sdk-storage.json | 308 +++++++++ .../grafana/dashboards/services-overview.json | 313 +-------- .../4NK_modules/grafana/dashboards/tor.json | 308 +++++++++ storage/dev/4NK_modules/grafana/grafana.ini | 2 +- storage/dev/4NK_modules/ihm_client/.env | 4 +- storage/dev/4NK_modules/loki/loki-config.yaml | 4 +- storage/dev/4NK_modules/promtail/.env | 2 +- storage/dev/4NK_modules/promtail/promtail.yml | 163 +++-- storage/dev/4NK_modules/sdk_relay/.conf | 12 +- storage/dev/4NK_modules/sdk_relay/.env | 14 +- storage/dev/4NK_modules/sdk_storage/.env | 8 +- storage/dev/generate_grafana_dashboards.sh | 654 ++++++++++++++++++ storage/dev/generate_variables.sh | 34 +- storage/dev/logrotade/4nk_certificator.conf | 13 + storage/dev/logrotade/4nk_miner.conf | 13 + storage/dev/logrotade/4nk_vault.conf | 13 + storage/dev/logrotade/4nk_web_status.conf | 13 + storage/dev/logrotade/bitcoin.conf | 2 +- storage/dev/logrotade/blindbit.conf | 2 +- storage/dev/logrotade/blindbit_oracle.conf | 13 + storage/dev/logrotade/grafana.conf | 13 + storage/dev/logrotade/ihm_client.conf | 2 +- storage/dev/logrotade/lecoffre-front.conf | 2 +- storage/dev/logrotade/lecoffre_front.conf | 13 + storage/dev/logrotade/loki.conf | 13 + storage/dev/logrotade/miner.conf | 2 +- storage/dev/logrotade/nginx.conf | 2 +- storage/dev/logrotade/postgresql.conf | 13 + storage/dev/logrotade/promtail.conf | 13 + storage/dev/logrotade/redis.conf | 13 + storage/dev/logrotade/sdk_relay.conf | 2 +- storage/dev/logrotade/sdk_storage.conf | 2 +- storage/dev/logrotade/tor.conf | 2 +- storage/dev/monitoring/monitoring.conf | 2 +- storage/dev/nginx/4NK_vault.code-workspace | 11 - .../nginx/ngnix_dev4.4nkweb.com-https.conf | 8 +- storage/dev/nginx/route_grafana.conf | 2 +- storage/dev/nginx/route_ihm_client.conf | 2 +- storage/dev/nginx/route_lecoffre.conf | 2 +- storage/dev/nginx/route_lecoffre_hmr.conf | 2 +- storage/dev/nginx/route_loki.conf | 2 +- storage/dev/nginx/route_next_assets.conf | 2 +- .../dev/projects/lecoffre/lecoffre-front/.env | 2 +- .../dev/projects/lecoffre/lecoffre_node/.env | 46 +- .../lecoffre/lecoffre_node/docker-compose.yml | 68 +- storage/dev/supervisor/supervisord.conf | 24 +- 69 files changed, 6284 insertions(+), 607 deletions(-) create mode 100644 storage/dev/4NK_modules/grafana/dashboards/.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/4nk-certificator.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/4nk-miner.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/4nk-vault.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/4nk-web-status.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/bitcoin.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/grafana.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/ihm-client.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/lecoffre-front.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/loki.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/postgresql.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/promtail.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/redis.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/sdk-relay.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/sdk-storage.json create mode 100644 storage/dev/4NK_modules/grafana/dashboards/tor.json create mode 100755 storage/dev/generate_grafana_dashboards.sh create mode 100644 storage/dev/logrotade/4nk_certificator.conf create mode 100644 storage/dev/logrotade/4nk_miner.conf create mode 100644 storage/dev/logrotade/4nk_vault.conf create mode 100644 storage/dev/logrotade/4nk_web_status.conf create mode 100644 storage/dev/logrotade/blindbit_oracle.conf create mode 100644 storage/dev/logrotade/grafana.conf create mode 100644 storage/dev/logrotade/lecoffre_front.conf create mode 100644 storage/dev/logrotade/loki.conf create mode 100644 storage/dev/logrotade/postgresql.conf create mode 100644 storage/dev/logrotade/promtail.conf create mode 100644 storage/dev/logrotade/redis.conf delete mode 100644 storage/dev/nginx/4NK_vault.code-workspace diff --git a/.gitignore b/.gitignore index e59b767..6862a33 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,9 @@ **/dist/ **/node_modules/ **/package-lock.json* -**/yarn.lock* +**/*.lock* +**/build/ +**/.build/ # Variables d'environnement (protection renforcée) @@ -20,12 +22,9 @@ storage/dev/.env.secrets *.pyc *.pyo *.pyd -__pycache__/ *.so *.egg *.egg-info/ -dist/ -build/ # Fichiers de logs *.log @@ -41,12 +40,6 @@ log/ *.swo *~ -# Fichiers d'environnement de développement -.env.local -.env.development -.env.test -.env.production - # Fichiers de système .DS_Store Thumbs.db diff --git a/storage/dev/.env b/storage/dev/.env index eba49ca..659e488 100644 --- a/storage/dev/.env +++ b/storage/dev/.env @@ -11,9 +11,9 @@ NODE_ENV=production ROOT_DIR=/home/debian/4NK_env DOCKER_GLOBAL_NAME=projects/lecoffre/$DOCKER_GLOBAL_NAME DOCKER_GLOBAL=$ROOT_DIR/DOCKER_GLOBAL_NAME -NGINX_LOGS_DIR=$ROOT_DIR_LOGS/nginx -SUPERVISOR_LOGS_DIR=$ROOT_DIR_LOGS/supervisor -LOGROTATE_CONF_DIR=$ROOT_DIR_CONFS/logrotate +NGINX_LOGS_DIR=$DOCKER_GLOBAL/logs/nginx +SUPERVISOR_LOGS_DIR=$DOCKER_GLOBAL/logs/supervisor +LOGROTATE_CONF_DIR=$DOCKER_GLOBAL/confs/logrotate CERT_PATH=/etc/letsencrypt/live/$HOST ## Internes @@ -52,6 +52,7 @@ GRAFANA_PORT=3001:3001 LOKI=loki LOKI_IMAGE=grafana/loki:latest LOKI_PORT=3100:3100 +LOKI_PORT2=9096 PROMTAIL=promtail PROMTAIL_IMAGE=grafana/promtail:latest diff --git a/storage/dev/.env.post b/storage/dev/.env.post index 4fe9afe..dd4e48e 100644 --- a/storage/dev/.env.post +++ b/storage/dev/.env.post @@ -3,9 +3,82 @@ SDK_RELAY_BOOSTRAP_URL=$BOOSTRAP_URL_WS_EXTERNAL RELAY_URLS=$SDK_RELAY_URL,$SDK_RELAY_BOOSTRAP_URL BITCOIN_RPC_URL=http://$BITCOIN_DOCKER_NAME:$BITCOIN_SIGNET_RPC_PORT +BITCOIN_COOKIE_DIR= ZMQ_URL=tcp://$BITCOIN_DOCKER_NAME:$BITCOIN_ZMQPBUBHASHBLOCK_PORT # DB CERTIFICATOR_POSTGRESQL_CONNECT=$POSTGRESQL_USER:$POSTGRESQL_PASSWORD//certificator:@certificator_db/certificator_db CERTIFICATOR_REDIS_CONNECT=redis://certificator_redis:$REDIS_PORT + +# URLs pour les modules +SIGNER_URL=$ROOT_URL_INTERNAL$SDK_SIGNER_DOCKER_NAME:$SDK_SIGNER_DOCKER_PORT +LECOFFRE_BACK_URL=$ROOT_URL_INTERNAL$LECOFFRE_BACK_DOCKER_NAME:$LECOFFRE_BACK_DOCKER_PORT +RELAY_BOOTSTRAP_URL=$SDK_RELAY_URL + +# Variables nginx manquantes +NGINX_CONF_DIR=$DOCKER_GLOBAL/confs/nginx + + +# Variables manquantes pour le monitoring et les services +STATUS_API_PORT=8083:8083 +STATUS_API_EXTERNAL_PORT=8083 + + +# Variables manquantes pour les routes nginx +URL_ROUTE_BLINDBIT=$BLINDBIT_ORACLE_URL_ROUTE +URL_ROUTE_GRAFAN=$GRAFANA_URL_ROUTE +URL_ROUTE_IHM_CLIENT=$IHM_CLIENT_URL_ROUTE +URL_ROUTE_LECOFFRE_FRONT=$LECOFFRE_FRONT_URL_ROUTE +URL_ROUTE_LECOFFRE_FRONT_HMR=/hmr +URL_ROUTE_LECOFFRE_BACK=$LECOFFRE_BACK_URL_ROUTE +URL_ROUTE_NEXT=/next +URL_ROUTE_STATUS_API=/status-api +URL_ROUTE_STATUS=$STATUS_API_URL_ROUTE +BLINDBIT_PORT=8000 +SIGNER_PORT=9090 + + +# Variables manquantes pour les projets lecoffre +LECOFFRE_BACK_HOST=$HOST +LECOFFRE_BACK_URL=$ROOT_URL_INTERNAL$LECOFFRE_BACK_DOCKER_NAME:$LECOFFRE_BACK_DOCKER_PORT +LECOFFRE_BACK_URL_ROUTE=/$LECOFFRE_BACK +BLINDBIT_DOCKER_NAME=$BLINDBIT_ORACLE_DOCKER_NAME +BLINDBIT_EXTERNAL_PORT=$BLINDBIT_ORACLE_EXTERNAL_PORT +BLINDBIT_LOGS_DIR=$BLINDBIT_ORACLE_LOGS_DIR +LECOFFRE_BACK_DOCKER_NAME=$LECOFFRE_BACK +LECOFFRE_BACK_DOCKER_PORT=$LECOFFRE_BACK_PORT +LECOFFRE_BACK_EXTERNAL_PORT=$LECOFFRE_BACK_EXTERNAL_PORT +LECOFFRE_BACK_LOGS_DIR=$DOCKER_GLOBAL/logs/$LECOFFRE_BACK +LECOFFRE_BACK_DATA_DIR=$DOCKER_GLOBAL/datas/$LECOFFRE_BACK +LECOFFRE_BACK_CONFS_DIR=$DOCKER_GLOBAL/confs/$LECOFFRE_BACK +LECOFFRE_BACK_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$LECOFFRE_BACK +LECOFFRE_BACK_RUNS_DIR=$DOCKER_GLOBAL/runs/$LECOFFRE_BACK +LECOFFRE_BACK_CERTS_DIR=$DOCKER_GLOBAL/certs/$LECOFFRE_BACK +LECOFFRE_BACK_TEMP_DIR=$DOCKER_GLOBAL/temp/$LECOFFRE_BACK +LECOFFRE_BACK_CACHE_DIR=$DOCKER_GLOBAL/cache/$LECOFFRE_BACK +LECOFFRE_BACK_UPLOADS_DIR=$DOCKER_GLOBAL/uploads/$LECOFFRE_BACK +LECOFFRE_BACK_DOWNLOADS_DIR=$DOCKER_GLOBAL/downloads/$LECOFFRE_BACK + + +# Variables manquantes pour lecoffre_node +URL_ROUTE_SIGNER=/$SDK_SIGNER +RELAY_BOOSTRAP_URL=$SDK_RELAY_URL +RELAY_URL=$SDK_RELAY_URL +LECOFFRE_NODE_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$LECOFFRE_NODE +BLINDBIT_DATA_DIR=$BLINDBIT_ORACLE_DATAS_DIR +LECOFFRE_NODE_CONFS_DIR=$DOCKER_GLOBAL/confs/$LECOFFRE_NODE +LECOFFRE_NODE_LOGS_DIR=$DOCKER_GLOBAL/logs/$LECOFFRE_NODE +LECOFFRE_NODE_DATA_DIR=$DOCKER_GLOBAL/datas/$LECOFFRE_NODE +LECOFFRE_NODE_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$LECOFFRE_NODE +LECOFFRE_NODE_RUNS_DIR=$DOCKER_GLOBAL/runs/$LECOFFRE_NODE +LECOFFRE_NODE_CERTS_DIR=$DOCKER_GLOBAL/certs/$LECOFFRE_NODE +LECOFFRE_NODE_TEMP_DIR=$DOCKER_GLOBAL/temp/$LECOFFRE_NODE +LECOFFRE_NODE_CACHE_DIR=$DOCKER_GLOBAL/cache/$LECOFFRE_NODE +LECOFFRE_NODE_UPLOADS_DIR=$DOCKER_GLOBAL/uploads/$LECOFFRE_NODE +LECOFFRE_NODE_DOWNLOADS_DIR=$DOCKER_GLOBAL/downloads/$LECOFFRE_NODE +LECOFFRE_NODE=$LECOFFRE_NODE + + +# Variable ZMQ manquante +BITCOIN_ZMQPBUBHASHBLOCK_PORT=28332 diff --git a/storage/dev/4NK_modules/4NK_certificator/.env b/storage/dev/4NK_modules/4NK_certificator/.env index 47bd154..04b6243 100644 --- a/storage/dev/4NK_modules/4NK_certificator/.env +++ b/storage/dev/4NK_modules/4NK_certificator/.env @@ -14,7 +14,7 @@ DATABASE_URL=$CERTIFICATOR_POSTGRESQL_CONNECT REDIS_URL=$CERTIFICATOR_REDIS_CONNECT # Relay -RELAY_WEBSOCKET_URL=$RELAY_WEBSOCKET_URL +RELAY_WEBSOCKET_URL=$SDK_RELAY_URL_WS # Certificator DB password for docker-compose CERTIFICATOR_DB_PASSWORD=$BDD_PASSWORD diff --git a/storage/dev/4NK_modules/4NK_certificator/certificator.toml b/storage/dev/4NK_modules/4NK_certificator/certificator.toml index b0d9962..83314de 100644 --- a/storage/dev/4NK_modules/4NK_certificator/certificator.toml +++ b/storage/dev/4NK_modules/4NK_certificator/certificator.toml @@ -1,18 +1,18 @@ [server] host = "0.0.0.0" -port = $CERTIFICATOR_PORT +port = "$4NK_CERTIFICATOR_PORT" log_level = "info" [bitcoin] network = "mainnet" rpc_url = "$BITCOIN_RPC_URL" -rpc_user = "" -rpc_password = "" +rpc_user = "$BITCOIN_RPC_USER" +rpc_password = "$BITCOIN_RPC_PASSWORD" wallet_name = "$BITCOIN_CERTIFICATOR_NAME" min_confirmations = 6 [relay] -websocket_url = "$RELAY_WEBSOCKET_URL" +websocket_url = "$SDK_RELAY_URL_WS" monitor_interval_secs = 60 [anchoring] @@ -21,11 +21,11 @@ auto_anchor = true tx_fee_sat_per_vbyte = 10 [database] -url = "postgresql://certificator:password@localhost/certificator_db" +url = "$CERTIFICATOR_POSTGRESQL_CONNECT" max_connections = 10 [redis] -url = "redis://localhost:6379" +url = "$CERTIFICATOR_REDIS_CONNECT" cache_ttl_secs = 3600 [api] diff --git a/storage/dev/4NK_modules/bitcoin/bitcoin.conf b/storage/dev/4NK_modules/bitcoin/bitcoin.conf index 4a2fa6e..1e140be 100644 --- a/storage/dev/4NK_modules/bitcoin/bitcoin.conf +++ b/storage/dev/4NK_modules/bitcoin/bitcoin.conf @@ -1,7 +1,7 @@ # Configuration globale signet=1 server=1 -datadir=$BITCOIN_DATA_DIR +datadir=$BITCOIN_DATAS_DIR [signet] daemon=0 @@ -10,7 +10,7 @@ upnp=1 #debug=1 #loglevel=debug logthreadnames=1 -onion=tor:$TOR_PORT +onion=tor:9050:9050 listenonion=1 onlynet=onion @@ -37,7 +37,7 @@ dustrelayfee=0.00000001 minrelaytxfee=0.00000001 prune=0 signetchallenge=0020341c43803863c252df326e73574a27d7e19322992061017b0dc893e2eab90821 -wallet=$BITCOIN_WALLET_NAME +wallet=$BITCOIN_MINING_NAME wallet=watchonly maxtxfee=1 addnode=tlv2yqamflv22vfdzy2hha2nwmt6zrwrhjjzz4lx7qyq7lyc6wfhabyd.onion diff --git a/storage/dev/4NK_modules/blindbit-oracle/blindbit.toml b/storage/dev/4NK_modules/blindbit-oracle/blindbit.toml index d119478..1b01100 100644 --- a/storage/dev/4NK_modules/blindbit-oracle/blindbit.toml +++ b/storage/dev/4NK_modules/blindbit-oracle/blindbit.toml @@ -1,8 +1,8 @@ # Configuration Blindbit Oracle -host = "0.0.0.0:$BLINDBIT_PORT" +host = "0.0.0.0:$BLINDBIT_ORACLE_PORT" chain = "signet" rpc_endpoint = "$BITCOIN_RPC_URL" -cookie_path = "$BITCOIN_COOKIE_PATH" +cookie_path = "$BITCOIN_DATAS_DIR/.cookie" rpc_user = "" rpc_pass = "" sync_start_height = 1 diff --git a/storage/dev/4NK_modules/grafana/.env b/storage/dev/4NK_modules/grafana/.env index e62242c..5a59ce4 100644 --- a/storage/dev/4NK_modules/grafana/.env +++ b/storage/dev/4NK_modules/grafana/.env @@ -1,6 +1,6 @@ -GF_SECURITY_ADMIN_PASSWORD=Fuy8ZfxQI2xdSdoB8wsGxNjyU +GF_SECURITY_ADMIN_PASSWORD=$GRAFANA_ADMIN_PASSWORD GF_USERS_ALLOW_SIGN_UP=false -GF_SERVER_ROOT_URL=$ROOT_URL$URL_ROUTE_GRAFAN +GF_SERVER_ROOT_URL=$ROOT_URL$GRAFANA_URL_ROUTE GF_PLUGINS_PREINSTALL_SYNC=grafana-clock-panel,grafana-simple-json-datasource GRAFANA_ADMIN_USER=$GRAFANA_ADMIN_USER GRAFANA_ADMIN_PASSWORD=$GRAFANA_ADMIN_PASSWORD \ No newline at end of file diff --git a/storage/dev/4NK_modules/grafana/dashboards/.json b/storage/dev/4NK_modules/grafana/dashboards/.json new file mode 100644 index 0000000..0c37038 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_WEB_STATUS_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - ", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_WEB_STATUS_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - ", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$4NK_WEB_STATUS_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$4NK_WEB_STATUS_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - ", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": " - Monitoring", + "uid": "", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/4nk-certificator.json b/storage/dev/4NK_modules/grafana/dashboards/4nk-certificator.json new file mode 100644 index 0000000..5e07a65 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/4nk-certificator.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_CERTIFICATOR_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - 4nk-certificator", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_CERTIFICATOR_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - 4nk-certificator", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$4NK_CERTIFICATOR_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$4NK_CERTIFICATOR_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - 4nk-certificator", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "4nk-certificator", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "4nk-certificator - Monitoring", + "uid": "4nk-certificator", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/4nk-miner.json b/storage/dev/4NK_modules/grafana/dashboards/4nk-miner.json new file mode 100644 index 0000000..63cafb8 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/4nk-miner.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_MINER_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - 4nk-miner", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_MINER_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - 4nk-miner", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$4NK_MINER_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$4NK_MINER_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - 4nk-miner", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "4nk-miner", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "4nk-miner - Monitoring", + "uid": "4nk-miner", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/4nk-vault.json b/storage/dev/4NK_modules/grafana/dashboards/4nk-vault.json new file mode 100644 index 0000000..e068c9d --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/4nk-vault.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_VAULT_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - 4nk-vault", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_VAULT_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - 4nk-vault", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$4NK_VAULT_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$4NK_VAULT_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - 4nk-vault", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "4nk-vault", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "4nk-vault - Monitoring", + "uid": "4nk-vault", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/4nk-web-status.json b/storage/dev/4NK_modules/grafana/dashboards/4nk-web-status.json new file mode 100644 index 0000000..7142bc4 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/4nk-web-status.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_WEB_STATUS_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - 4nk-web-status", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$4NK_WEB_STATUS_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - 4nk-web-status", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$4NK_WEB_STATUS_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$4NK_WEB_STATUS_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - 4nk-web-status", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "4nk-web-status", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "4nk-web-status - Monitoring", + "uid": "4nk-web-status", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/bitcoin.json b/storage/dev/4NK_modules/grafana/dashboards/bitcoin.json new file mode 100644 index 0000000..76ee3a5 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/bitcoin.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$BITCOIN_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - bitcoin", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$BITCOIN_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - bitcoin", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$BITCOIN_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$BITCOIN_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - bitcoin", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "bitcoin", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "bitcoin - Monitoring", + "uid": "bitcoin", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/blindbit-oracle.json b/storage/dev/4NK_modules/grafana/dashboards/blindbit-oracle.json index 9d0a0fa..45766ab 100644 --- a/storage/dev/4NK_modules/grafana/dashboards/blindbit-oracle.json +++ b/storage/dev/4NK_modules/grafana/dashboards/blindbit-oracle.json @@ -1,28 +1,66 @@ { "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] + "list": [] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": null, "links": [], + "liveNow": false, "panels": [ { - "datasource": "Loki", + "datasource": { + "type": "loki", + "uid": "loki" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } }, "overrides": [] }, @@ -34,25 +72,82 @@ }, "id": 1, "options": { - "showLabels": false, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } }, "targets": [ { - "expr": "{job=\"blindbit\"} |= \"Host configuration loaded\"", + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$BLINDBIT_ORACLE_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", "refId": "A" } ], - "title": "BlindBit Oracle - Configuration Loaded", - "type": "logs" + "title": "Logs INFO - blindbit-oracle", + "type": "timeseries" }, { - "datasource": "Loki", + "datasource": { + "type": "loki", + "uid": "loki" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } }, "overrides": [] }, @@ -64,117 +159,138 @@ }, "id": 2, "options": { - "showLabels": false, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } }, "targets": [ { - "expr": "{job=\"blindbit\"} |= \"Sync took\"", + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$BLINDBIT_ORACLE_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", "refId": "A" } ], - "title": "BlindBit Oracle - Synchronization", - "type": "logs" + "title": "Erreurs - blindbit-oracle", + "type": "timeseries" }, { - "datasource": "Loki", + "datasource": { + "type": "loki", + "uid": "loki" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 24, + "h": 4, + "w": 6, "x": 0, "y": 8 }, "id": 3, "options": { - "showLabels": false, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" }, + "pluginVersion": "10.0.0", "targets": [ { - "expr": "{job=\"blindbit\"} |= \"successfully processed block\"", + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$BLINDBIT_ORACLE_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", "refId": "A" } ], - "title": "BlindBit Oracle - Block Processing", - "type": "logs" + "title": "Erreurs (1h)", + "type": "stat" }, { - "datasource": "Loki", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] + "datasource": { + "type": "loki", + "uid": "loki" }, "gridPos": { "h": 8, - "w": 12, + "w": 24, "x": 0, - "y": 16 + "y": 12 }, "id": 4, "options": { - "showLabels": false, "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" }, "targets": [ { - "expr": "{job=\"blindbit\"} |= \"GET\" |~ \"/tweaks/\"", + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$BLINDBIT_ORACLE_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", "refId": "A" } ], - "title": "BlindBit Oracle - API Requests", - "type": "logs" - }, - { - "datasource": "Loki", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 5, - "options": { - "showLabels": false, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false - }, - "targets": [ - { - "expr": "{job=\"blindbit\"} |~ \"ERROR|error|Error\"", - "refId": "A" - } - ], - "title": "BlindBit Oracle - Errors", + "title": "Logs d'Erreur - blindbit-oracle", "type": "logs" } ], - "schemaVersion": 27, + "refresh": "5s", + "schemaVersion": 37, "style": "dark", "tags": [ - "blindbit", - "oracle", - "blockchain" + "blindbit-oracle", + "auto-generated" ], "templating": { "list": [] @@ -185,8 +301,8 @@ }, "timepicker": {}, "timezone": "", - "title": "BlindBit Oracle Dashboard", + "title": "blindbit-oracle - Monitoring", "uid": "blindbit-oracle", - "version": 1 + "version": 1, + "weekStart": "" } - diff --git a/storage/dev/4NK_modules/grafana/dashboards/grafana.json b/storage/dev/4NK_modules/grafana/dashboards/grafana.json new file mode 100644 index 0000000..ce220cd --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/grafana.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$GRAFANA_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - grafana", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$GRAFANA_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - grafana", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$GRAFANA_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$GRAFANA_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - grafana", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "grafana", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "grafana - Monitoring", + "uid": "grafana", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/ihm-client.json b/storage/dev/4NK_modules/grafana/dashboards/ihm-client.json new file mode 100644 index 0000000..5e4be65 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/ihm-client.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$IHM_CLIENT_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - ihm-client", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$IHM_CLIENT_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - ihm-client", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$IHM_CLIENT_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$IHM_CLIENT_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - ihm-client", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "ihm-client", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "ihm-client - Monitoring", + "uid": "ihm-client", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/lecoffre-front.json b/storage/dev/4NK_modules/grafana/dashboards/lecoffre-front.json new file mode 100644 index 0000000..a82acdd --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/lecoffre-front.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$LECOFFRE_FRONT_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - lecoffre-front", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$LECOFFRE_FRONT_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - lecoffre-front", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$LECOFFRE_FRONT_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$LECOFFRE_FRONT_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - lecoffre-front", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "lecoffre-front", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "lecoffre-front - Monitoring", + "uid": "lecoffre-front", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/loki.json b/storage/dev/4NK_modules/grafana/dashboards/loki.json new file mode 100644 index 0000000..61cf966 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/loki.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$LOKI_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - loki", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$LOKI_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - loki", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$LOKI_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$LOKI_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - loki", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "loki", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "loki - Monitoring", + "uid": "loki", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/postgresql.json b/storage/dev/4NK_modules/grafana/dashboards/postgresql.json new file mode 100644 index 0000000..5ae1014 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/postgresql.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$POSTGRESQL_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - postgresql", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$POSTGRESQL_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - postgresql", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$POSTGRESQL_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$POSTGRESQL_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - postgresql", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "postgresql", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "postgresql - Monitoring", + "uid": "postgresql", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/promtail.json b/storage/dev/4NK_modules/grafana/dashboards/promtail.json new file mode 100644 index 0000000..f2cef80 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/promtail.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$PROMTAIL_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - promtail", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$PROMTAIL_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - promtail", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$PROMTAIL_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$PROMTAIL_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - promtail", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "promtail", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "promtail - Monitoring", + "uid": "promtail", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/redis.json b/storage/dev/4NK_modules/grafana/dashboards/redis.json new file mode 100644 index 0000000..e6ef3ee --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/redis.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$REDIS_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - redis", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$REDIS_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - redis", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$REDIS_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$REDIS_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - redis", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "redis", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "redis - Monitoring", + "uid": "redis", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/sdk-relay.json b/storage/dev/4NK_modules/grafana/dashboards/sdk-relay.json new file mode 100644 index 0000000..27e2083 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/sdk-relay.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$SDK_RELAY_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - sdk-relay", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$SDK_RELAY_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - sdk-relay", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$SDK_RELAY_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$SDK_RELAY_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - sdk-relay", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "sdk-relay", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "sdk-relay - Monitoring", + "uid": "sdk-relay", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/sdk-storage.json b/storage/dev/4NK_modules/grafana/dashboards/sdk-storage.json new file mode 100644 index 0000000..38bffe1 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/sdk-storage.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$SDK_STORAGE_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - sdk-storage", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$SDK_STORAGE_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - sdk-storage", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$SDK_STORAGE_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$SDK_STORAGE_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - sdk-storage", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "sdk-storage", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "sdk-storage - Monitoring", + "uid": "sdk-storage", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/dashboards/services-overview.json b/storage/dev/4NK_modules/grafana/dashboards/services-overview.json index b27238f..a4bb478 100644 --- a/storage/dev/4NK_modules/grafana/dashboards/services-overview.json +++ b/storage/dev/4NK_modules/grafana/dashboards/services-overview.json @@ -1,25 +1,6 @@ { "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] + "list": [] }, "editable": true, "fiscalYearStartMonth": 0, @@ -86,7 +67,7 @@ }, "gridPos": { "h": 8, - "w": 6, + "w": 24, "x": 0, "y": 0 }, @@ -102,83 +83,6 @@ "sort": "none" } }, - "title": "LeCoffre Backend - Volume Logs", - "type": "timeseries" - }, - { - "datasource": { - "type": "loki", - "uid": "loki" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "vis": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 6, - "y": 0 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, "targets": [ { "datasource": { @@ -186,222 +90,19 @@ "uid": "loki" }, "editorMode": "code", - "expr": "sum by (service) (count_over_time({job=\"lecoffre-front\"} [5m]))", + "expr": "sum by (container) (count_over_time({container=~\"$bitcoin_DOCKER_NAME|$blindbit-oracle_DOCKER_NAME|$sdk_relay_DOCKER_NAME|$sdk_storage_DOCKER_NAME|$ihm_client_DOCKER_NAME|$lecoffre-front_DOCKER_NAME\"} |= \"ERROR\" [5m]))", "queryType": "", "refId": "A" } ], - "title": "LeCoffre Frontend - Volume Logs", + "title": "Erreurs par Service (5 dernières minutes)", "type": "timeseries" - }, - { - "datasource": { - "type": "loki", - "uid": "loki" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "vis": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 12, - "y": 0 - }, - "id": 3, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki" - }, - "editorMode": "code", - "expr": "sum by (service) (count_over_time({job=\"ihm_client\"} [5m]))", - "queryType": "", - "refId": "A" - } - ], - "title": "IHM Client - Volume Logs", - "type": "timeseries" - }, - { - "datasource": { - "type": "loki", - "uid": "loki" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "vis": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 18, - "y": 0 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki" - }, - "editorMode": "code", - "expr": "sum by (service) (count_over_time({job=\"sdk_relay\"} [5m]))", - "queryType": "", - "refId": "A" - } - ], - "title": "SDK Relay - Volume Logs", - "type": "timeseries" - }, - { - "datasource": { - "type": "loki", - "uid": "loki" - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 8 - }, - "id": 5, - "options": { - "showTime": false, - "showLabels": false, - "showCommonLabels": false, - "wrapLogMessage": false, - "prettifyLogMessage": false, - "enableLogDetails": true, - "dedupStrategy": "none", - "sortOrder": "Descending" - }, - "title": "Logs d'Erreur - Services Applications", - "type": "logs" } ], "refresh": "30s", "schemaVersion": 36, "style": "dark", - "tags": ["services", "applications"], + "tags": ["overview", "auto-generated"], "templating": { "list": [] }, @@ -411,8 +112,8 @@ }, "timepicker": {}, "timezone": "", - "title": "Services Applications - Monitoring", - "uid": "services-overview", + "title": "Services Overview - Auto Generated", + "uid": "services-overview-auto", "version": 1, "weekStart": "" } diff --git a/storage/dev/4NK_modules/grafana/dashboards/tor.json b/storage/dev/4NK_modules/grafana/dashboards/tor.json new file mode 100644 index 0000000..a461b10 --- /dev/null +++ b/storage/dev/4NK_modules/grafana/dashboards/tor.json @@ -0,0 +1,308 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$TOR_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - tor", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"$TOR_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - tor", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"$TOR_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"$TOR_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - tor", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "tor", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "tor - Monitoring", + "uid": "tor", + "version": 1, + "weekStart": "" +} diff --git a/storage/dev/4NK_modules/grafana/grafana.ini b/storage/dev/4NK_modules/grafana/grafana.ini index a3c3e02..399630a 100644 --- a/storage/dev/4NK_modules/grafana/grafana.ini +++ b/storage/dev/4NK_modules/grafana/grafana.ini @@ -14,7 +14,7 @@ enforce_domain = false # Configuration de sécurité admin_user = $GRAFANA_ADMIN_USER admin_password = $GRAFANA_ADMIN_PASSWORD -secret_key = lecoffre_grafana_secret_key_2025 +secret_key = $GRAFANA_SECRET_KEY # Configuration des sessions cookie_secure = true diff --git a/storage/dev/4NK_modules/ihm_client/.env b/storage/dev/4NK_modules/ihm_client/.env index 7fe28d5..788ed82 100644 --- a/storage/dev/4NK_modules/ihm_client/.env +++ b/storage/dev/4NK_modules/ihm_client/.env @@ -1,7 +1,7 @@ NEXT_PUBLIC_4NK_IFRAME_URL=$IHM_CLIENT_URL VITE_JWT_SECRET_KEY=$VITE_JWT_SECRET_KEY VITE_API_BASE_URL=$LECOFFRE_BACK_URL -VITE_WS_URL=$RELAY_URL +VITE_WS_URL=$SDK_RELAY_URL VITE_SIGNER_URL=$SIGNER_URL -VITE_BOOTSTRAPURL=$RELAY_BOOSTRAP_URL +VITE_BOOTSTRAPURL=$RELAY_BOOTSTRAP_URL RELAY_URLS=$RELAY_URLS diff --git a/storage/dev/4NK_modules/loki/loki-config.yaml b/storage/dev/4NK_modules/loki/loki-config.yaml index d4eece1..2dca52e 100644 --- a/storage/dev/4NK_modules/loki/loki-config.yaml +++ b/storage/dev/4NK_modules/loki/loki-config.yaml @@ -2,7 +2,7 @@ auth_enabled: false server: http_listen_port: $LOKI_PORT - grpc_listen_port: 9096 + grpc_listen_port: $LOKI_PORT2 http_listen_address: 0.0.0.0 grpc_listen_address: 0.0.0.0 @@ -29,7 +29,7 @@ schema_config: period: 24h ruler: - alertmanager_url: http://localhost:$LOKI_PORT + alertmanager_url: $LOKI_URL # Configuration de l'ingester - SEULEMENT le paramètre crucial ingester: diff --git a/storage/dev/4NK_modules/promtail/.env b/storage/dev/4NK_modules/promtail/.env index 997aa2f..b6296f0 100644 --- a/storage/dev/4NK_modules/promtail/.env +++ b/storage/dev/4NK_modules/promtail/.env @@ -1 +1 @@ -PROMTAIL_CONFIG_FILE=$PROMTAIL_CONF_DIR/config.yml +PROMTAIL_CONFIG_FILE=$PROMTAIL_CONFS_DIR/config.yml diff --git a/storage/dev/4NK_modules/promtail/promtail.yml b/storage/dev/4NK_modules/promtail/promtail.yml index 40d27ea..8410e06 100644 --- a/storage/dev/4NK_modules/promtail/promtail.yml +++ b/storage/dev/4NK_modules/promtail/promtail.yml @@ -9,85 +9,166 @@ clients: - url: $LOKI_URL/loki/api/v1/push scrape_configs: - # Bitcoin Signet Logs - - job_name: bitcoin + + # REDIS Logs + - job_name: $REDIS_DOCKER_NAME static_configs: - targets: - localhost labels: - job: bitcoin - service: bitcoin-signet + job: $REDIS_DOCKER_NAME + service: $REDIS_DOCKER_NAME + __path__: $REDIS_LOGS_DIR/*.log + + # POSTGRESQL Logs + - job_name: $POSTGRESQL_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $POSTGRESQL_DOCKER_NAME + service: $POSTGRESQL_DOCKER_NAME + __path__: $POSTGRESQL_LOGS_DIR/*.log + + # LOKI Logs + - job_name: $LOKI_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $LOKI_DOCKER_NAME + service: $LOKI_DOCKER_NAME + __path__: $LOKI_LOGS_DIR/*.log + + # PROMTAIL Logs + - job_name: $PROMTAIL_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $PROMTAIL_DOCKER_NAME + service: $PROMTAIL_DOCKER_NAME + __path__: $PROMTAIL_LOGS_DIR/*.log + + # GRAFANA Logs + - job_name: $GRAFANA_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $GRAFANA_DOCKER_NAME + service: $GRAFANA_DOCKER_NAME + __path__: $GRAFANA_LOGS_DIR/*.log + + # 4NK_VAULT Logs + - job_name: $4NK_VAULT_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $4NK_VAULT_DOCKER_NAME + service: $4NK_VAULT_DOCKER_NAME + __path__: $4NK_VAULT_LOGS_DIR/*.log + + # TOR Logs + - job_name: $TOR_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $TOR_DOCKER_NAME + service: $TOR_DOCKER_NAME + __path__: $TOR_LOGS_DIR/*.log + + # BITCOIN Logs + - job_name: $BITCOIN_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $BITCOIN_DOCKER_NAME + service: $BITCOIN_DOCKER_NAME __path__: $BITCOIN_LOGS_DIR/*.log - # Blindbit Oracle Logs - - job_name: blindbit + # BLINDBIT_ORACLE Logs + - job_name: $BLINDBIT_ORACLE_DOCKER_NAME static_configs: - targets: - localhost labels: - job: blindbit - service: blindbit-oracle - __path__: $BLINDBIT_LOGS_DIR/*.log + job: $BLINDBIT_ORACLE_DOCKER_NAME + service: $BLINDBIT_ORACLE_DOCKER_NAME + __path__: $BLINDBIT_ORACLE_LOGS_DIR/*.log - # SDK Relay Logs - - job_name: sdk_relay + # SDK_RELAY Logs + - job_name: $SDK_RELAY_DOCKER_NAME static_configs: - targets: - localhost labels: - job: sdk_relay - service: sdk_relay + job: $SDK_RELAY_DOCKER_NAME + service: $SDK_RELAY_DOCKER_NAME __path__: $SDK_RELAY_LOGS_DIR/*.log - # SDK Storage Logs - - job_name: sdk_storage + # SDK_STORAGE Logs + - job_name: $SDK_STORAGE_DOCKER_NAME static_configs: - targets: - localhost labels: - job: sdk_storage - service: sdk_storage + job: $SDK_STORAGE_DOCKER_NAME + service: $SDK_STORAGE_DOCKER_NAME __path__: $SDK_STORAGE_LOGS_DIR/*.log - # LeCoffre Frontend Logs - - job_name: lecoffre-front + # IHM_CLIENT Logs + - job_name: $IHM_CLIENT_DOCKER_NAME static_configs: - targets: - localhost labels: - job: lecoffre-front - service: lecoffre-front - __path__: $LECOFFRE_FRONT_LOGS_DIR/*.log - - # IHM Client Logs - - job_name: ihm_client - static_configs: - - targets: - - localhost - labels: - job: ihm_client - service: ihm_client + job: $IHM_CLIENT_DOCKER_NAME + service: $IHM_CLIENT_DOCKER_NAME __path__: $IHM_CLIENT_LOGS_DIR/*.log - # Miner Logs - - job_name: miner + # 4NK_CERTIFICATOR Logs + - job_name: $4NK_CERTIFICATOR_DOCKER_NAME static_configs: - targets: - localhost labels: - job: miner - service: signet_miner - __path__: $MINER_LOGS_DIR/*.log + job: $4NK_CERTIFICATOR_DOCKER_NAME + service: $4NK_CERTIFICATOR_DOCKER_NAME + __path__: $4NK_CERTIFICATOR_LOGS_DIR/*.log - # Tor Logs - - job_name: tor + # 4NK_MINER Logs + - job_name: $4NK_MINER_DOCKER_NAME static_configs: - targets: - localhost labels: - job: tor - service: tor-proxy - __path__: $TOR_LOGS_DIR/*.log + job: $4NK_MINER_DOCKER_NAME + service: $4NK_MINER_DOCKER_NAME + __path__: $4NK_MINER_LOGS_DIR/*.log + + # LECOFFRE_FRONT Logs + - job_name: $LECOFFRE_FRONT_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $LECOFFRE_FRONT_DOCKER_NAME + service: $LECOFFRE_FRONT_DOCKER_NAME + __path__: $LECOFFRE_FRONT_LOGS_DIR/*.log + + # 4NK_WEB_STATUS Logs + - job_name: $4NK_WEB_STATUS_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: $4NK_WEB_STATUS_DOCKER_NAME + service: $4NK_WEB_STATUS_DOCKER_NAME + __path__: $4NK_WEB_STATUS_LOGS_DIR/*.log # Docker Container Logs - job_name: docker diff --git a/storage/dev/4NK_modules/sdk_relay/.conf b/storage/dev/4NK_modules/sdk_relay/.conf index 99417d0..bb1a65e 100644 --- a/storage/dev/4NK_modules/sdk_relay/.conf +++ b/storage/dev/4NK_modules/sdk_relay/.conf @@ -1,13 +1,13 @@ core_url="$BITCOIN_RPC_URL" -ws_url="$RELAY_URL" +ws_url="$SDK_RELAY_URL" wallet_name="default" network="signet" -blindbit_url="$BLINDBIT_URL" +blindbit_url="$BLINDBIT_ORACLE_URL" zmq_url=$ZMQ_URL -storage=$STORAGE_URL -data_dir=$SDK_RELAY_DATA_DIR -bitcoin_data_dir=$SDK_RELAY_DATA_DIR -bootstrap_url=$RELAY_BOOSTRAP_URL +storage=$SDK_STORAGE_URL +data_dir=$SDK_RELAY_DATAS_DIR +bitcoin_data_dir=$SDK_RELAY_DATAS_DIR +bootstrap_url=$RELAY_BOOTSTRAP_URL bootstrap_faucet=true RUST_LOG="DEBUG,reqwest=DEBUG,tokio_tungstenite=DEBUG" NODE_OPTIONS="--max-old-space-size=2048" diff --git a/storage/dev/4NK_modules/sdk_relay/.env b/storage/dev/4NK_modules/sdk_relay/.env index 6e603f8..ac69a5e 100644 --- a/storage/dev/4NK_modules/sdk_relay/.env +++ b/storage/dev/4NK_modules/sdk_relay/.env @@ -1,14 +1,12 @@ -SDK_RELAY_WS_URL=$RELAY_URL +SDK_RELAY_WS_URL=$SDK_RELAY_URL SDK_RELAY_WALLET_NAME=$BITCOIN_WALLET_NAME SDK_RELAY_NETWORK=signet -SDK_RELAY_BLINDBIT_URL=$BLINDBIT_URL -SDK_RELAY_STORAGE=$STORAGE_URL -SDK_RELAY_DATA_DIR=$SDK_RELAY_DATA_DIR -SDK_RELAY_BOOTSTRAP_URL=$RELAY_BOOSTRAP_URL +SDK_RELAY_BLINDBIT_ORACLE_URL=$BLINDBIT_ORACLE_URL +SDK_RELAY_STORAGE=$SDK_STORAGE_URL +SDK_RELAY_DATAS_DIR=$SDK_RELAY_DATAS_DIR +SDK_RELAY_BOOTSTRAP_URL=$RELAY_BOOTSTRAP_URL SDK_RELAY_BOOTSTRAP_FAUCET=https://$BOOTSTRAP_HOST/api/v1/faucet - SDK_RELAY_CORE_URL=$BITCOIN_RPC_URL -SDK_RELAY_NETWORK=signet SDK_RELAY_ZMQ_URL=tcp://$BITCOIN_DOCKER_NAME:$BITCOIN_ZMQPBUBHASHBLOCK_PORT -SDK_RELAY_BITCOIN_DATA_DIR=$BITCOIN_DATA_DIR +SDK_RELAY_BITCOIN_DATAS_DIR=$BITCOIN_DATAS_DIR HOME=/$SDK_RELAY_DOCKER_NAME \ No newline at end of file diff --git a/storage/dev/4NK_modules/sdk_storage/.env b/storage/dev/4NK_modules/sdk_storage/.env index 2ed03c0..982188b 100644 --- a/storage/dev/4NK_modules/sdk_storage/.env +++ b/storage/dev/4NK_modules/sdk_storage/.env @@ -3,8 +3,8 @@ # =========================================== # Configuration SDK Storage -STORAGE_URL=$STORAGE_URL -STORAGE_PORT=$STORAGE_PORT -STORAGE_DATA_DIR=$SDK_STORAGE_DATA_DIR -VITE_STORAGE_URL=$SDK_STORAGE_DATA_DIR +SDK_STORAGE_URL=$SDK_STORAGE_URL +SDK_STORAGE_PORT=$SDK_STORAGE_PORT +STORAGE_DATA_DIR=$SDK_STORAGE_DATAS_DIR +VITE_SDK_STORAGE_URL=$SDK_STORAGE_DATAS_DIR DOMAIN=$DOMAIN diff --git a/storage/dev/generate_grafana_dashboards.sh b/storage/dev/generate_grafana_dashboards.sh new file mode 100755 index 0000000..135fc66 --- /dev/null +++ b/storage/dev/generate_grafana_dashboards.sh @@ -0,0 +1,654 @@ +#!/bin/bash + +# Script pour générer automatiquement les dashboards Grafana +# basés sur les modules définis dans les variables d'environnement + +# Fonction pour charger les variables d'environnement +load_env_files() { + local env_files=(".env.secrets" ".env" ".env.auto" ".env.post") + + for env_file in "${env_files[@]}"; do + if [ -f "$env_file" ]; then + echo "📄 Chargement de $env_file..." + source "$env_file" 2>/dev/null || true + else + echo "⚠️ Fichier $env_file non trouvé, ignoré." + fi + done +} + +# Fonction pour générer un dashboard de base pour un service +generate_service_dashboard() { + local SERVICE="$1" + local SERVICE_NAME="$2" + local DASHBOARD_TYPE="$3" + + echo "🔧 Génération du dashboard pour $SERVICE ($SERVICE_NAME)" + + # Créer le répertoire si nécessaire + mkdir -p "4NK_modules/grafana/dashboards" + + # Générer le nom du fichier + local DASHBOARD_FILE="4NK_modules/grafana/dashboards/${SERVICE_NAME}.json" + + # Générer le contenu JSON du dashboard + cat > "$DASHBOARD_FILE" << EOF +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"\$${SERVICE}_DOCKER_NAME\"} |= \"INFO\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs INFO - $SERVICE_NAME", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum(rate({container=\"\$${SERVICE}_DOCKER_NAME\"} |= \"ERROR\" [5m])) by (container)", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs - $SERVICE_NAME", + "type": "timeseries" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "count_over_time({container=\"\$${SERVICE}_DOCKER_NAME\"} |= \"ERROR\" [1h])", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs (1h)", + "type": "stat" + }, + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 4, + "options": { + "showTime": false, + "showLabels": false, + "showCommonLabels": false, + "wrapLogMessage": false, + "prettifyLogMessage": false, + "enableLogDetails": true, + "dedupStrategy": "none", + "sortOrder": "Descending" + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "{container=\"\$${SERVICE}_DOCKER_NAME\"} |= \"ERROR\" | line_format \"{{.timestamp}} - {{.message}}\"", + "queryType": "", + "refId": "A" + } + ], + "title": "Logs d'Erreur - $SERVICE_NAME", + "type": "logs" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [ + "$SERVICE_NAME", + "auto-generated" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "$SERVICE_NAME - Monitoring", + "uid": "$(echo $SERVICE_NAME | tr '[:upper:]' '[:lower:]' | tr '_' '-')", + "version": 1, + "weekStart": "" +} +EOF + + echo "✅ Dashboard généré: $DASHBOARD_FILE" +} + +# Fonction pour générer un dashboard overview +generate_overview_dashboard() { + echo "🔧 Génération du dashboard overview" + + mkdir -p "4NK_modules/grafana/dashboards" + + cat > "4NK_modules/grafana/dashboards/services-overview.json" << EOF +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "loki", + "uid": "loki" + }, + "editorMode": "code", + "expr": "sum by (container) (count_over_time({container=~\"\$${BITCOIN}_DOCKER_NAME|\$${BLINDBIT_ORACLE}_DOCKER_NAME|\$${SDK_RELAY}_DOCKER_NAME|\$${SDK_STORAGE}_DOCKER_NAME|\$${IHM_CLIENT}_DOCKER_NAME|\$${LECOFFRE_FRONT}_DOCKER_NAME\"} |= \"ERROR\" [5m]))", + "queryType": "", + "refId": "A" + } + ], + "title": "Erreurs par Service (5 dernières minutes)", + "type": "timeseries" + } + ], + "refresh": "30s", + "schemaVersion": 36, + "style": "dark", + "tags": ["overview", "auto-generated"], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Services Overview - Auto Generated", + "uid": "services-overview-auto", + "version": 1, + "weekStart": "" +} +EOF + + echo "✅ Dashboard overview généré" +} + +# Fonction pour générer le fichier promtail.yml +generate_promtail_config() { + echo "🔧 Génération du fichier promtail.yml" + + # Créer le répertoire si nécessaire + mkdir -p "4NK_modules/promtail" + + # Générer le fichier promtail.yml + cat > "4NK_modules/promtail/promtail.yml" << 'EOF' +server: + http_listen_port: $PROMTAIL_PORT + grpc_listen_port: 0 + +positions: + filename: /tmp/positions.yaml + +clients: + - url: $LOKI_URL/loki/api/v1/push + +scrape_configs: +EOF + + # Générer les configurations pour chaque service + for SERVICE_VAR in "${SERVICES[@]}"; do + # Ajouter la configuration pour ce service + cat >> "4NK_modules/promtail/promtail.yml" << EOF + + # ${SERVICE_VAR} Logs + - job_name: \$${SERVICE_VAR}_DOCKER_NAME + static_configs: + - targets: + - localhost + labels: + job: \$${SERVICE_VAR}_DOCKER_NAME + service: \$${SERVICE_VAR}_DOCKER_NAME + __path__: \$${SERVICE_VAR}_LOGS_DIR/*.log +EOF + done + + # Ajouter la configuration Docker + cat >> "4NK_modules/promtail/promtail.yml" << 'EOF' + + # Docker Container Logs + - job_name: docker + docker_sd_configs: + - host: unix:///var/run/docker.sock + refresh_interval: 5s + filters: + - name: label + values: ["com.centurylinklabs.watchtower.enable=true"] + relabel_configs: + - source_labels: ['__meta_docker_container_name'] + regex: '/?(.*)' + target_label: 'container_name' + - source_labels: ['__meta_docker_container_log_stream'] + target_label: 'logstream' + - source_labels: ['__meta_docker_container_label_logging_job_name'] + target_label: 'job' +EOF + + echo "✅ Configuration promtail.yml générée" +} + +# Fonction pour générer les fichiers de configuration logrotate +generate_logrotate_configs() { + echo "🔧 Génération des configurations logrotate" + + # Créer le répertoire si nécessaire + mkdir -p "logrotade" + + # Générer les configurations pour chaque service + for SERVICE_VAR in "${SERVICES[@]}"; do + local CONFIG_FILE="logrotade/${SERVICE_VAR,,}.conf" + + echo "📄 Génération de $CONFIG_FILE" + + cat > "$CONFIG_FILE" << EOF +\$${SERVICE_VAR}_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart \$${SERVICE_VAR}_DOCKER_NAME 2>/dev/null || true + endscript +} +EOF + done + + echo "✅ Configurations logrotate générées pour ${#SERVICES[@]} services" +} + +# Fonction pour déterminer le type de service +get_service_type() { + local service="$1" + case "$service" in + "BITCOIN"|"BLINDBIT_ORACLE") echo "blockchain" ;; + "SDK_RELAY"|"SDK_STORAGE") echo "sdk" ;; + "IHM_CLIENT"|"LECOFFRE_FRONT") echo "frontend" ;; + "4NK_MINER") echo "mining" ;; + "REDIS"|"POSTGRESQL"|"LOKI"|"PROMTAIL"|"GRAFANA") echo "infrastructure" ;; + *) echo "service" ;; + esac +} + +# Fonction pour déterminer le nom du dashboard +get_dashboard_name() { + local service="$1" + case "$service" in + "BITCOIN") echo "bitcoin" ;; + "BLINDBIT_ORACLE") echo "blindbit-oracle" ;; + "SDK_RELAY") echo "sdk-relay" ;; + "SDK_STORAGE") echo "sdk-storage" ;; + "IHM_CLIENT") echo "ihm-client" ;; + "LECOFFRE_FRONT") echo "lecoffre-front" ;; + "4NK_MINER") echo "4nk-miner" ;; + "4NK_CERTIFICATOR") echo "4nk-certificator" ;; + "4NK_WEB_STATUS") echo "4nk-web-status" ;; + "4NK_VAULT") echo "4nk-vault" ;; + *) echo "${service,,}" ;; # Convertir en minuscules + esac +} + +# Fonction principale +main() { + echo "🚀 GÉNÉRATION AUTOMATIQUE DES DASHBOARDS GRAFANA" + echo "==================================================" + + # Charger les variables d'environnement + load_env_files + + # Créer le répertoire des dashboards + mkdir -p "4NK_modules/grafana/dashboards" + + echo "📋 Génération des dashboards pour ${#SERVICES[@]} services..." + + # Générer les dashboards en boucle depuis la variable SERVICES + for SERVICE_VAR in "${SERVICES[@]}"; do + # Déterminer le nom du dashboard et le type de service + local DASHBOARD_NAME=$(get_dashboard_name "$SERVICE_VAR") + local SERVICE_TYPE=$(get_service_type "$SERVICE_VAR") + + echo "🔄 Traitement de $SERVICE_VAR -> $DASHBOARD_NAME ($SERVICE_TYPE)" + + # Générer le dashboard pour ce service + generate_service_dashboard "$SERVICE_VAR" "$DASHBOARD_NAME" "$SERVICE_TYPE" + done + + # Générer le dashboard overview + echo "🔄 Génération du dashboard overview..." + generate_overview_dashboard + + # Générer la configuration Promtail + echo "🔄 Génération de la configuration Promtail..." + generate_promtail_config + + # Générer les configurations logrotate + echo "🔄 Génération des configurations logrotate..." + generate_logrotate_configs + + echo "" + echo "✅ GÉNÉRATION TERMINÉE !" + echo "📁 Dashboards générés dans: 4NK_modules/grafana/dashboards/" + echo "📁 Configuration Promtail: 4NK_modules/promtail/promtail.yml" + echo "📁 Configurations logrotate: logrotade/*.conf" + echo "🔧 Les dashboards utilisent les variables d'environnement pour les noms de containers" + echo "📊 Services traités: ${#SERVICES[@]}" +} + +# Exécuter le script principal +main "$@" diff --git a/storage/dev/generate_variables.sh b/storage/dev/generate_variables.sh index fe546bf..52d3e5f 100755 --- a/storage/dev/generate_variables.sh +++ b/storage/dev/generate_variables.sh @@ -39,30 +39,30 @@ generate_variables() { echo "" echo "${VARIABLE}_DOCKER_NAME=\$${VARIABLE}" - echo "${VARIABLE}_CONFS_DIR=\$DOCKER_GLOBAL/confs/\$${VARIABLE}" - echo "${VARIABLE}_LOGS_DIR=\$DOCKER_GLOBAL/logs/\$${VARIABLE}" - echo "${VARIABLE}_RUNS_DIR=\$DOCKER_GLOBAL/runs/\$${VARIABLE}" - echo "${VARIABLE}_DATAS_DIR=\$DOCKER_GLOBAL/datas/\$${VARIABLE}" - echo "${VARIABLE}_BACKUPS_DIR=\$DOCKER_GLOBAL/backups/\$${VARIABLE}" - echo "${VARIABLE}_SCRIPTS_DIR=\$DOCKER_GLOBAL/scripts/\$${VARIABLE}" + echo "${VARIABLE}_CONFS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/confs/\$${VARIABLE}" + echo "${VARIABLE}_LOGS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/logs/\$${VARIABLE}" + echo "${VARIABLE}_RUNS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/runs/\$${VARIABLE}" + echo "${VARIABLE}_DATAS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/datas/\$${VARIABLE}" + echo "${VARIABLE}_BACKUPS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/backups/\$${VARIABLE}" + echo "${VARIABLE}_SCRIPTS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/scripts/\$${VARIABLE}" echo "${VARIABLE}_DOCKER_WORKING_DIR=/home/\$${VARIABLE}" echo "" - echo "${VARIABLE}_DOCKER_CONFS_DIR=\$DOCKER_GLOBAL/confs/\$${VARIABLE}" - echo "${VARIABLE}_DOCKER_LOGS_DIR=\$DOCKER_GLOBAL/logs/\$${VARIABLE}" - echo "${VARIABLE}_DOCKER_RUNS_DIR=\$DOCKER_GLOBAL/runs/\$${VARIABLE}" - echo "${VARIABLE}_DOCKER_DATAS_DIR=\$DOCKER_GLOBAL/datas/\$${VARIABLE}" - echo "${VARIABLE}_DOCKER_BACKUPS_DIR=\$DOCKER_GLOBAL/backups/\$${VARIABLE}" - echo "${VARIABLE}_DOCKER_SCRIPTS_DIR=\$DOCKER_GLOBAL/scripts/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_CONFS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/confs/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_LOGS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/logs/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_RUNS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/runs/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_DATAS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/datas/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_BACKUPS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/backups/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_SCRIPTS_DIR=\/home/debian/4NK_env/DOCKER_GLOBAL_NAME/scripts/\$${VARIABLE}" echo "${VARIABLE}_DOCKER_WORKING_DIR=/home/\$${VARIABLE}" echo "" echo "${VARIABLE}_DOCKER_WORKING_DIR_CREATE=\"id -u \$${VARIABLE} >/dev/null 2>&1 || adduser --disabled-password --gecos '' \$${VARIABLE}; chown -R \$${VARIABLE}:\$${VARIABLE} /home/root/.\$${VARIABLE} || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \\\"\$@\\\"\"" echo "${VARIABLE}_URL_ROUTE=/\$${VARIABLE}" - echo "${VARIABLE}_URL=\$ROOT_URL_INTERNAL\\\$${VARIABLE}_DOCKER_NAME:\$${VARIABLE}_DOCKER_PORT" - echo "${VARIABLE}_URL_EXTERNAL=\$ROOT_URL\$${VARIABLE}_URL_ROUTE" - echo "${VARIABLE}_URL_WS=\$ROOT_URL_WS_INTERNAL\\\$${VARIABLE}_DOCKER_PORT" - echo "${VARIABLE}_URL_WS_EXTERNAL=\$ROOT_URL_WS\ws" + echo "${VARIABLE}_URL=\http://\\\$${VARIABLE}_DOCKER_NAME:\$${VARIABLE}_DOCKER_PORT" + echo "${VARIABLE}_URL_EXTERNAL=\https://dev4.4nkweb.com\$${VARIABLE}_URL_ROUTE" + echo "${VARIABLE}_URL_WS=\ws://\\\$${VARIABLE}_DOCKER_PORT" + echo "${VARIABLE}_URL_WS_EXTERNAL=\wss://dev4.4nkweb.com\ws" echo "" echo " \$${VARIABLE}_DOCKER_NAME: @@ -144,4 +144,4 @@ networks: " >> docker-compose.yml.auto -mv docker-compose.yml.auto $DOCKER_GLOBAL_NAME/docker-compose.yml.auto -f \ No newline at end of file +mv docker-compose.yml.auto projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre/projects/lecoffre//home/debian/4NK_env/DOCKER_GLOBAL_NAME_NAME/docker-compose.yml.auto -f \ No newline at end of file diff --git a/storage/dev/logrotade/4nk_certificator.conf b/storage/dev/logrotade/4nk_certificator.conf new file mode 100644 index 0000000..77d5fde --- /dev/null +++ b/storage/dev/logrotade/4nk_certificator.conf @@ -0,0 +1,13 @@ +$4NK_CERTIFICATOR_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $4NK_CERTIFICATOR_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/4nk_miner.conf b/storage/dev/logrotade/4nk_miner.conf new file mode 100644 index 0000000..e234a3f --- /dev/null +++ b/storage/dev/logrotade/4nk_miner.conf @@ -0,0 +1,13 @@ +$4NK_MINER_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $4NK_MINER_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/4nk_vault.conf b/storage/dev/logrotade/4nk_vault.conf new file mode 100644 index 0000000..63590d5 --- /dev/null +++ b/storage/dev/logrotade/4nk_vault.conf @@ -0,0 +1,13 @@ +$4NK_VAULT_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $4NK_VAULT_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/4nk_web_status.conf b/storage/dev/logrotade/4nk_web_status.conf new file mode 100644 index 0000000..53653fd --- /dev/null +++ b/storage/dev/logrotade/4nk_web_status.conf @@ -0,0 +1,13 @@ +$4NK_WEB_STATUS_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $4NK_WEB_STATUS_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/bitcoin.conf b/storage/dev/logrotade/bitcoin.conf index cf09ecd..86b43ec 100644 --- a/storage/dev/logrotade/bitcoin.conf +++ b/storage/dev/logrotade/bitcoin.conf @@ -8,6 +8,6 @@ $BITCOIN_LOGS_DIR/*.log { create 644 root root postrotate # Redémarrer le service si nécessaire - docker restart bitcoin 2>/dev/null || true + docker restart $BITCOIN_DOCKER_NAME 2>/dev/null || true endscript } diff --git a/storage/dev/logrotade/blindbit.conf b/storage/dev/logrotade/blindbit.conf index afd72c0..3ec91f8 100644 --- a/storage/dev/logrotade/blindbit.conf +++ b/storage/dev/logrotade/blindbit.conf @@ -1,4 +1,4 @@ -$BLINDBIT_LOGS_DIR/*.log { +$BLINDBIT_ORACLE_LOGS_DIR/*.log { daily missingok rotate 7 diff --git a/storage/dev/logrotade/blindbit_oracle.conf b/storage/dev/logrotade/blindbit_oracle.conf new file mode 100644 index 0000000..aab8bac --- /dev/null +++ b/storage/dev/logrotade/blindbit_oracle.conf @@ -0,0 +1,13 @@ +$BLINDBIT_ORACLE_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $BLINDBIT_ORACLE_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/grafana.conf b/storage/dev/logrotade/grafana.conf new file mode 100644 index 0000000..fbc9795 --- /dev/null +++ b/storage/dev/logrotade/grafana.conf @@ -0,0 +1,13 @@ +$GRAFANA_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $GRAFANA_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/ihm_client.conf b/storage/dev/logrotade/ihm_client.conf index 9b9d342..1ae2269 100644 --- a/storage/dev/logrotade/ihm_client.conf +++ b/storage/dev/logrotade/ihm_client.conf @@ -8,6 +8,6 @@ $IHM_CLIENT_LOGS_DIR/*.log { create 644 root root postrotate # Redémarrer le service si nécessaire - docker restart ihm_client 2>/dev/null || true + docker restart $IHM_CLIENT_DOCKER_NAME 2>/dev/null || true endscript } diff --git a/storage/dev/logrotade/lecoffre-front.conf b/storage/dev/logrotade/lecoffre-front.conf index 9ce4f8b..be7a5ac 100644 --- a/storage/dev/logrotade/lecoffre-front.conf +++ b/storage/dev/logrotade/lecoffre-front.conf @@ -1,4 +1,4 @@ -$MINER_LOGS_DIR/*.log { +$4NK_MINER_LOGS_DIR/*.log { daily missingok rotate 7 diff --git a/storage/dev/logrotade/lecoffre_front.conf b/storage/dev/logrotade/lecoffre_front.conf new file mode 100644 index 0000000..b89abf0 --- /dev/null +++ b/storage/dev/logrotade/lecoffre_front.conf @@ -0,0 +1,13 @@ +$LECOFFRE_FRONT_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $LECOFFRE_FRONT_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/loki.conf b/storage/dev/logrotade/loki.conf new file mode 100644 index 0000000..fe65e41 --- /dev/null +++ b/storage/dev/logrotade/loki.conf @@ -0,0 +1,13 @@ +$LOKI_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $LOKI_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/miner.conf b/storage/dev/logrotade/miner.conf index a9cbd4a..00ebd4b 100644 --- a/storage/dev/logrotade/miner.conf +++ b/storage/dev/logrotade/miner.conf @@ -1,4 +1,4 @@ -$ROOT_DIR_LOGS_MINER/*.log { +/home/debian/4NK_env_LOGS_MINER/*.log { daily missingok rotate 7 diff --git a/storage/dev/logrotade/nginx.conf b/storage/dev/logrotade/nginx.conf index 6eb9f3e..dd74805 100644 --- a/storage/dev/logrotade/nginx.conf +++ b/storage/dev/logrotade/nginx.conf @@ -1,4 +1,4 @@ -$NGINX_LOGS_DIR/*.log { +/home/debian/4NK_env_LOGS/nginx/*.log { daily missingok rotate 7 diff --git a/storage/dev/logrotade/postgresql.conf b/storage/dev/logrotade/postgresql.conf new file mode 100644 index 0000000..37ca59d --- /dev/null +++ b/storage/dev/logrotade/postgresql.conf @@ -0,0 +1,13 @@ +$POSTGRESQL_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $POSTGRESQL_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/promtail.conf b/storage/dev/logrotade/promtail.conf new file mode 100644 index 0000000..41a9949 --- /dev/null +++ b/storage/dev/logrotade/promtail.conf @@ -0,0 +1,13 @@ +$PROMTAIL_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $PROMTAIL_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/redis.conf b/storage/dev/logrotade/redis.conf new file mode 100644 index 0000000..f6a513d --- /dev/null +++ b/storage/dev/logrotade/redis.conf @@ -0,0 +1,13 @@ +$REDIS_LOGS_DIR/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 644 root root + postrotate + # Redémarrer le service si nécessaire + docker restart $REDIS_DOCKER_NAME 2>/dev/null || true + endscript +} diff --git a/storage/dev/logrotade/sdk_relay.conf b/storage/dev/logrotade/sdk_relay.conf index cb70cec..f21de67 100644 --- a/storage/dev/logrotade/sdk_relay.conf +++ b/storage/dev/logrotade/sdk_relay.conf @@ -8,6 +8,6 @@ $SDK_RELAY_LOGS_DIR/*.log { create 644 root root postrotate # Redémarrer le service si nécessaire - docker restart sdk_relay 2>/dev/null || true + docker restart $SDK_RELAY_DOCKER_NAME 2>/dev/null || true endscript } diff --git a/storage/dev/logrotade/sdk_storage.conf b/storage/dev/logrotade/sdk_storage.conf index b7682ad..f6881ed 100644 --- a/storage/dev/logrotade/sdk_storage.conf +++ b/storage/dev/logrotade/sdk_storage.conf @@ -8,6 +8,6 @@ $SDK_STORAGE_LOGS_DIR/*.log { create 644 root root postrotate # Redémarrer le service si nécessaire - docker restart sdk_storage 2>/dev/null || true + docker restart $SDK_STORAGE_DOCKER_NAME 2>/dev/null || true endscript } diff --git a/storage/dev/logrotade/tor.conf b/storage/dev/logrotade/tor.conf index 6c975dc..ab46330 100644 --- a/storage/dev/logrotade/tor.conf +++ b/storage/dev/logrotade/tor.conf @@ -8,6 +8,6 @@ $TOR_LOGS_DIR/*.log { create 644 root root postrotate # Redémarrer le service si nécessaire - docker restart tor 2>/dev/null || true + docker restart $TOR_DOCKER_NAME 2>/dev/null || true endscript } diff --git a/storage/dev/monitoring/monitoring.conf b/storage/dev/monitoring/monitoring.conf index e1db69a..8fde1a7 100644 --- a/storage/dev/monitoring/monitoring.conf +++ b/storage/dev/monitoring/monitoring.conf @@ -21,7 +21,7 @@ log_compression=true [services] # Services surveillés -services=bitcoin,blindbit,sdk_relay,,sdk_storagelecoffre-front,ihm_client,tor,miner +services=bitcoin,blindbit,sdk_relay,sdk_storagelecoffre-front,ihm_client,tor,miner [alerts] # Configuration des alertes diff --git a/storage/dev/nginx/4NK_vault.code-workspace b/storage/dev/nginx/4NK_vault.code-workspace deleted file mode 100644 index f7d202f..0000000 --- a/storage/dev/nginx/4NK_vault.code-workspace +++ /dev/null @@ -1,11 +0,0 @@ -{ - "folders": [ - { - "path": "../../.." - }, - { - "path": "../../../../../../etc/nginx" - } - ], - "settings": {} -} \ No newline at end of file diff --git a/storage/dev/nginx/ngnix_dev4.4nkweb.com-https.conf b/storage/dev/nginx/ngnix_dev4.4nkweb.com-https.conf index 5c56a1c..f3866ad 100644 --- a/storage/dev/nginx/ngnix_dev4.4nkweb.com-https.conf +++ b/storage/dev/nginx/ngnix_dev4.4nkweb.com-https.conf @@ -1,12 +1,12 @@ -# Configuration HTTPS pour $HOST +# Configuration HTTPS pour dev4.4nkweb.com server { listen 443 ssl; http2 on; - server_name $HOST; + server_name dev4.4nkweb.com; # Certificats SSL - ssl_certificate $CERT_PATH/fullchain.pem; - ssl_certificate_key $CERT_PATH/privkey.pem; + ssl_certificate /etc/letsencrypt/live/dev4.4nkweb.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/dev4.4nkweb.com/privkey.pem; # Configuration SSL ssl_protocols TLSv1.2 TLSv1.3; diff --git a/storage/dev/nginx/route_grafana.conf b/storage/dev/nginx/route_grafana.conf index 7883393..c112b03 100644 --- a/storage/dev/nginx/route_grafana.conf +++ b/storage/dev/nginx/route_grafana.conf @@ -1,5 +1,5 @@ location $URL_ROUTE_GRAFAN/ { - proxy_pass http://127.0.0.1:$GRAFANA_PORT/; + proxy_pass http://127.0.0.1:3001:3001/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/storage/dev/nginx/route_ihm_client.conf b/storage/dev/nginx/route_ihm_client.conf index a2d8d9e..0e6c45a 100644 --- a/storage/dev/nginx/route_ihm_client.conf +++ b/storage/dev/nginx/route_ihm_client.conf @@ -1,5 +1,5 @@ location $URL_ROUTE_IHM_CLIENT { - proxy_pass http://127.0.0.1:$IHM_CLIENT_PORT; + proxy_pass http://127.0.0.1:3003:3003; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/storage/dev/nginx/route_lecoffre.conf b/storage/dev/nginx/route_lecoffre.conf index 6a6140f..6555c83 100644 --- a/storage/dev/nginx/route_lecoffre.conf +++ b/storage/dev/nginx/route_lecoffre.conf @@ -6,7 +6,7 @@ proxy_hide_header ETag; proxy_hide_header Last-Modified; rewrite ^$URL_ROUTE_LECOFFRE_FRONT/(.*)$ /$1 break; - proxy_pass http://127.0.0.1:$LECOFFRE_FRONT_PORT; + proxy_pass http://127.0.0.1:3000:3000; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/storage/dev/nginx/route_lecoffre_hmr.conf b/storage/dev/nginx/route_lecoffre_hmr.conf index 9d2e4d9..651538e 100644 --- a/storage/dev/nginx/route_lecoffre_hmr.conf +++ b/storage/dev/nginx/route_lecoffre_hmr.conf @@ -7,5 +7,5 @@ proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; rewrite ^$URL_ROUTE_LECOFFRE_FRONT_HMR/(.*)$ $URL_ROUTE_LECOFFRE_FRONT/$1 break; - proxy_pass http://127.0.0.1:$LECOFFRE_FRONT_PORT; + proxy_pass http://127.0.0.1:3000:3000; } diff --git a/storage/dev/nginx/route_loki.conf b/storage/dev/nginx/route_loki.conf index fd8883b..f5fdf82 100644 --- a/storage/dev/nginx/route_loki.conf +++ b/storage/dev/nginx/route_loki.conf @@ -1,5 +1,5 @@ location /loki/ { - proxy_pass http://127.0.0.1:$LOKI_PORT/; + proxy_pass http://127.0.0.1:3100:3100/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/storage/dev/nginx/route_next_assets.conf b/storage/dev/nginx/route_next_assets.conf index bf4e66a..3075896 100644 --- a/storage/dev/nginx/route_next_assets.conf +++ b/storage/dev/nginx/route_next_assets.conf @@ -1,5 +1,5 @@ location ^~ $URL_ROUTE_NEXT/ { - proxy_pass http://127.0.0.1:$LECOFFRE_FRONT_PORT$URL_ROUTE_NEXT/; + proxy_pass http://127.0.0.1:3000:3000$URL_ROUTE_NEXT/; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/storage/dev/projects/lecoffre/lecoffre-front/.env b/storage/dev/projects/lecoffre/lecoffre-front/.env index 2ee7763..fa46357 100644 --- a/storage/dev/projects/lecoffre/lecoffre-front/.env +++ b/storage/dev/projects/lecoffre/lecoffre-front/.env @@ -26,4 +26,4 @@ NEXT_PUBLIC_IDNOT_REDIRECT_URI=https://lecoffreio.4nkweb.com/authorized-client NEXT_PUBLIC_DOCAPOSTE_API_URL= NEXT_PUBLIC_API_URL=$LECOFFRE_BACK_URL NEXT_PUBLIC_DEFAULT_VALIDATOR_ID=$NEXT_PUBLIC_DEFAULT_VALIDATOR_ID -NEXT_PUBLIC_DEFAULT_STORAGE_URLS=$STORAGE_URL \ No newline at end of file +NEXT_PUBLIC_DEFAULT_SDK_STORAGE_URLS=$SDK_STORAGE_URL \ No newline at end of file diff --git a/storage/dev/projects/lecoffre/lecoffre_node/.env b/storage/dev/projects/lecoffre/lecoffre_node/.env index 62c5912..130941f 100644 --- a/storage/dev/projects/lecoffre/lecoffre_node/.env +++ b/storage/dev/projects/lecoffre/lecoffre_node/.env @@ -11,32 +11,32 @@ DOCKER_GLOBAL=project/lecoffre/lecoffre_node # Répertoires ROOT_DIR=/home/debian/4NK_env -ROOT_DIR_DATA=$ROOT_DIR/$DOCKER_GLOBAL/data -BITCOIN_DATA_DIR=$ROOT_DIR_DATA/bitcoin +$DOCKER_GLOBAL/datas=$ROOT_DIR/$DOCKER_GLOBAL/data +BITCOIN_DATA_DIR=$$DOCKER_GLOBAL/datas/bitcoin BITCOIN_COOKIE_PATH=$BITCOIN_DATA_DIR/signet/.cookie -SIGNER_DATA_DIR=$ROOT_DIR_DATA/signer -SDK_RELAY_DATA_DIR=$ROOT_DIR_DATA/sdk_relay -SDK_STORAGE_DATA_DIR=$ROOT_DIR_DATA/sdk_storage -SDK_TOR_DATA_DIR=$ROOT_DIR_DATA/tor -BLINDBIT_DATA_DIR=$ROOT_DIR_DATA/blindbit-oracle +SIGNER_DATA_DIR=$$DOCKER_GLOBAL/datas/signer +SDK_RELAY_DATA_DIR=$$DOCKER_GLOBAL/datas/sdk_relay +SDK_STORAGE_DATA_DIR=$$DOCKER_GLOBAL/datas/sdk_storage +SDK_TOR_DATA_DIR=$$DOCKER_GLOBAL/datas/tor +BLINDBIT_DATA_DIR=$$DOCKER_GLOBAL/datas/blindbit-oracle -ROOT_DIR_LOGS=$ROOT_DIR/$DOCKER_GLOBAL/logs -BITCOIN_LOGS_DIR=$ROOT_DIR_LOGS/bitcoin -BLINDBIT_LOGS_DIR=$ROOT_DIR_LOGS/blindbit-oracle -IHM_CLIENT_LOGS_DIR=$ROOT_DIR_LOGS/ihm_client -LECOFFRE_FRONT_LOGS_DIR=$ROOT_DIR_LOGS/lecoffre-front -LECOFFRE_BACK_LOGS_DIR=$ROOT_DIR_LOGS/lecoffre-back-mini -MINER_LOGS_DIR=$ROOT_DIR_LOGS/miner -NGINX_LOGS_DIR=$ROOT_DIR_LOGS/nginx -SDK_RELAY_LOGS_DIR=$ROOT_DIR_LOGS/sdk_relay -SDK_STORAGE_LOGS_DIR=$ROOT_DIR_LOGS/sdk_storage -TOR_LOGS_DIR=$ROOT_DIR_LOGS/tor +$DOCKER_GLOBAL/logs=$ROOT_DIR/$DOCKER_GLOBAL/logs +BITCOIN_LOGS_DIR=$$DOCKER_GLOBAL/logs/bitcoin +BLINDBIT_LOGS_DIR=$$DOCKER_GLOBAL/logs/blindbit-oracle +IHM_CLIENT_LOGS_DIR=$$DOCKER_GLOBAL/logs/ihm_client +LECOFFRE_FRONT_LOGS_DIR=$$DOCKER_GLOBAL/logs/lecoffre-front +LECOFFRE_BACK_LOGS_DIR=$$DOCKER_GLOBAL/logs/lecoffre-back-mini +MINER_LOGS_DIR=$$DOCKER_GLOBAL/logs/miner +NGINX_LOGS_DIR=$$DOCKER_GLOBAL/logs/nginx +SDK_RELAY_LOGS_DIR=$$DOCKER_GLOBAL/logs/sdk_relay +SDK_STORAGE_LOGS_DIR=$$DOCKER_GLOBAL/logs/sdk_storage +TOR_LOGS_DIR=$$DOCKER_GLOBAL/logs/tor -ROOT_DIR_CONFS=$ROOT_DIR/$DOCKER_GLOBAL/confs -PROMTAIL_CONF_DIR=$ROOT_DIR_CONFS/promtail -GRAFANA_CONF_DIR=$ROOT_DIR_CONFS/grafana -NGINX_CONF_DIR=$ROOT_DIR_CONFS/nginx -BITCOIN_CONF_DIR=$ROOT_DIR_CONFS/bitcoin +$DOCKER_GLOBAL/confs=$ROOT_DIR/$DOCKER_GLOBAL/confs +PROMTAIL_CONF_DIR=$$DOCKER_GLOBAL/confs/promtail +GRAFANA_CONF_DIR=$$DOCKER_GLOBAL/confs/grafana +NGINX_CONF_DIR=$$DOCKER_GLOBAL/confs/nginx +BITCOIN_CONF_DIR=$$DOCKER_GLOBAL/confs/bitcoin ROOT_DIR_BACKUPS=$ROOT_DIR/$DOCKER_GLOBAL/backups diff --git a/storage/dev/projects/lecoffre/lecoffre_node/docker-compose.yml b/storage/dev/projects/lecoffre/lecoffre_node/docker-compose.yml index cbc9ebf..b66ffa2 100644 --- a/storage/dev/projects/lecoffre/lecoffre_node/docker-compose.yml +++ b/storage/dev/projects/lecoffre/lecoffre_node/docker-compose.yml @@ -1,15 +1,15 @@ services: - $TOR_DOCKER_NAME: + tor-proxy: image: btcpayserver/tor:0.4.8.10 - container_name: $TOR_DOCKER_NAME - working_dir: /$TOR_DOCKER_NAME + container_name: tor-proxy + working_dir: /tor-proxy volumes: - - $TOR_LOGS_DIR:/var/log/tor + - /home/debian/4NK_env/DOCKER_GLOBAL_NAME/logs/tor-proxy:/var/log/tor - $LECOFFRE_NODE_SCRIPTS_DIR:/scripts:ro networks: btcnet: aliases: - - $TOR_DOCKER_NAME + - tor-proxy healthcheck: test: ["CMD", "sh", "$LECOFFRE_NODE_SCRIPTS_DIR/tor-progress.sh"] interval: 10s @@ -17,22 +17,22 @@ services: retries: 50 restart: unless-stopped - $BITCOIN_DOCKER_NAME: + bitcoin: build: ./bitcoin - container_name: $BITCOIN_DOCKER_NAME - working_dir: /$BITCOIN_DOCKER_NAME + container_name: bitcoin + working_dir: /bitcoin depends_on: - $TOR_DOCKER_NAME: + tor-proxy: condition: service_healthy volumes: - - $BITCOIN_DATA_DIR:/home/bitcoin/.bitcoin - - $BITCOIN_CONF_DIR/bitcoin.conf:/etc/bitcoin/bitcoin.conf - - $BITCOIN_LOGS_DIR:/var/log/bitcoin + - bitcoin_DATA_DIR:/home/bitcoin/.bitcoin + - bitcoin_CONF_DIR/bitcoin.conf:/etc/bitcoin/bitcoin.conf + - /home/debian/4NK_env/DOCKER_GLOBAL_NAME/logs/bitcoin:/var/log/bitcoin - $LECOFFRE_NODE_SCRIPTS_DIR:/scripts:ro networks: btcnet: aliases: - - $BITCOIN_DOCKER_NAME + - bitcoin user: root entrypoint: > /bin/sh -c " @@ -55,7 +55,7 @@ services: volumes: - $BLINDBIT_DATA_DIR:/root/.blindbit-oracle # - $LECOFFRE_NODE_CONFS_DIR/blindbit-oracle/blindbit.toml:/tmp/blindbit.toml:ro - - $BITCOIN_DATA_DIR:/home/bitcoin/.bitcoin + - bitcoin_DATA_DIR:/home/bitcoin/.bitcoin - $BLINDBIT_LOGS_DIR:/var/log/blindbit entrypoint: > sh -c "mkdir -p /root/.blindbit-oracle && @@ -78,26 +78,26 @@ services: start_period: 180s restart: unless-stopped - $SDK_RELAY_DOCKER_NAME: + sdk_relay: image: git.4nkweb.com/4nk/sdk_relay:ext - container_name: $SDK_RELAY_DOCKER_NAME - working_dir: /$SDK_RELAY_DOCKER_NAME + container_name: sdk_relay + working_dir: /sdk_relay env_file: - - $SDK_RELAY_CONF_DIR/.env + - sdk_relay_CONF_DIR/.env depends_on: $BLINDBIT_DOCKER_NAME: condition: service_healthy volumes: - - $SDK_RELAY_CONF_DIR/.conf:/SDK_RELAY_DOCKER_NAME/.conf:ro - - $SDK_RELAY_DATA_DIR:/SDK_RELAY_DOCKER_NAME/.4nk - - $BITCOIN_DATA_DIR:/SDK_RELAY_DOCKER_NAME/.bitcoin - - $SDK_RELAY_LOGS_DIR:/var/log/sdk_relay + - sdk_relay_CONF_DIR/.conf:/SDK_RELAY_DOCKER_NAME/.conf:ro + - sdk_relay_DATA_DIR:/SDK_RELAY_DOCKER_NAME/.4nk + - bitcoin_DATA_DIR:/SDK_RELAY_DOCKER_NAME/.bitcoin + - /home/debian/4NK_env/DOCKER_GLOBAL_NAME/logs/sdk_relay:/var/log/sdk_relay ports: - - "0.0.0.0:$SDK_RELAY_PORT" + - "0.0.0.0:8080:8080" networks: btcnet: aliases: - - $SDK_RELAY_DOCKER_NAME + - sdk_relay logging: driver: "json-file" options: @@ -110,14 +110,14 @@ services: retries: 50 restart: unless-stopped - $LECOFFRE_FRONT_DOCKER_NAME: + lecoffre-front: image: git.4nkweb.com/4nk/lecoffre-front:ext - container_name: $LECOFFRE_FRONT_DOCKER_NAME - working_dir: /$LECOFFRE_FRONT_DOCKER_NAME + container_name: lecoffre-front + working_dir: /lecoffre-front env_file: - $LECOFFRE_NODE_CONFS_DIR/.env ports: - - "0.0.0.0:$LECOFFRE_FRONT_EXTERNAL_PORT:8080" + - "0.0.0.0:lecoffre-front_EXTERNAL_PORT:8080" volumes: - $LECOFFRE_NODE_LOGS_DIR/lecoffre-front:/var/log/lecoffre-front networks: @@ -147,7 +147,7 @@ services: env_file: - $LECOFFRE_NODE_CONFS_DIR/ihm_client/.env ports: - - "0.0.0.0:$IHM_CLIENT_EXTERNAL_PORT:3003" + - "0.0.0.0:ihm_client_EXTERNAL_PORT:3003" volumes: - $LECOFFRE_NODE_LOGS_DIR/ihm_client:/var/log/ihm_client networks: @@ -175,7 +175,7 @@ services: image: git.4nkweb.com/4nk/sdk_storage:ext container_name: sdk_storage ports: - - "0.0.0.0:$SDK_STORAGE_EXTERNAL_PORT:8080" + - "0.0.0.0:sdk_storage_EXTERNAL_PORT:8080" volumes: - sdk_storage_data:/app/data - $LECOFFRE_NODE_LOGS_DIR/sdk_storage:/var/log/sdk_storage @@ -226,7 +226,7 @@ services: image: grafana/grafana:latest container_name: grafana ports: - - "0.0.0.0:$GRAFANA_EXTERNAL_PORT:3000" + - "0.0.0.0:grafana_EXTERNAL_PORT:3000" volumes: - grafana_data:/var/lib/grafana # - $LECOFFRE_NODE_CONFS_DIR/grafana/provisioning:/etc/grafana/provisioning @@ -234,9 +234,9 @@ services: # - $LECOFFRE_NODE_CONFS_DIR/grafana/grafana.ini:/etc/grafana/grafana.ini:ro - $LECOFFRE_NODE_LOGS_DIR:/var/log/lecoffre:ro environment: - - GF_SECURITY_ADMIN_PASSWORD=$GRAFANA_ADMIN_PASSWORD + - GF_SECURITY_ADMIN_PASSWORD=Fuy8ZfxQI2xdSdoB8wsGxNjyU - GF_USERS_ALLOW_SIGN_UP=false - - GF_SERVER_ROOT_URL=$GRAFANA_URL/ + - GF_SERVER_ROOT_URL=http://\grafana:grafana_DOCKER_PORT/ - GF_PLUGINS_PREINSTALL_SYNC=grafana-clock-panel,grafana-simple-json-datasource networks: btcnet: @@ -261,7 +261,7 @@ services: image: grafana/loki:latest container_name: loki ports: - - "0.0.0.0:$LOKI_EXTERNAL_PORT:3100" + - "0.0.0.0:loki_EXTERNAL_PORT:3100" volumes: - loki_data:/loki # - $LECOFFRE_NODE_CONFS_DIR/loki/loki-config.yaml:/etc/loki/loki-config.yaml:ro diff --git a/storage/dev/supervisor/supervisord.conf b/storage/dev/supervisor/supervisord.conf index c67274b..fda46a5 100644 --- a/storage/dev/supervisor/supervisord.conf +++ b/storage/dev/supervisor/supervisord.conf @@ -1,16 +1,16 @@ [supervisord] nodaemon=true user=root -logfile=$SUPERVISOR_LOGS_DIR/supervisord.log -pidfile=$ROOT_DIR_RUN/supervisord.pid -childlogdir=$SUPERVISOR_LOGS_DIR +logfile=/home/debian/4NK_env_LOGS/supervisor/supervisord.log +pidfile=/home/debian/4NK_env_RUN/supervisord.pid +childlogdir=/home/debian/4NK_env_LOGS/supervisor [unix_http_server] -file=$ROOT_DIR_RUN/supervisor.sock +file=/home/debian/4NK_env_RUN/supervisor.sock chmod=0700 [supervisorctl] -serverurl=unix://$ROOT_DIR_RUN/supervisor.sock +serverurl=unix:///home/debian/4NK_env_RUN/supervisor.sock [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface @@ -19,8 +19,8 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface command=/usr/sbin/nginx -g "daemon off;" autostart=true autorestart=true -stderr_logfile=$SUPERVISOR_LOGS_DIR/nginx.err.log -stdout_logfile=$SUPERVISOR_LOGS_DIR/nginx.out.log +stderr_logfile=/home/debian/4NK_env_LOGS/supervisor/nginx.err.log +stdout_logfile=/home/debian/4NK_env_LOGS/supervisor/nginx.out.log user=root [program:docker-compose] @@ -28,8 +28,8 @@ command=/app/scripts/startup.sh directory=/app autostart=true autorestart=true -stderr_logfile=$SUPERVISOR_LOGS_DIR/docker-compose.err.log -stdout_logfile=$SUPERVISOR_LOGS_DIR/docker-compose.out.log +stderr_logfile=/home/debian/4NK_env_LOGS/supervisor/docker-compose.err.log +stdout_logfile=/home/debian/4NK_env_LOGS/supervisor/docker-compose.out.log user=appuser environment=HOME="/app" @@ -37,12 +37,12 @@ environment=HOME="/app" command=/usr/sbin/cron -f autostart=true autorestart=true -stderr_logfile=$SUPERVISOR_LOGS_DIR/cron.err.log -stdout_logfile=$SUPERVISOR_LOGS_DIR/cron.out.log +stderr_logfile=/home/debian/4NK_env_LOGS/supervisor/cron.err.log +stdout_logfile=/home/debian/4NK_env_LOGS/supervisor/cron.out.log user=root [program:logrotate] -command=/usr/sbin/logrotate $LOGROTATE_CONF_DIR/lecoffre +command=/usr/sbin/logrotate /home/debian/4NK_env_CONFS/logrotate/lecoffre autostart=true autorestart=false startsecs=0