From 8e699661fa7eab267e3242b37c5c18861db04900 Mon Sep 17 00:00:00 2001 From: lgromero Date: Sun, 27 Apr 2025 18:25:44 +0200 Subject: [PATCH] refs #1666 fix opensearch datarsource import in grafana --- .../provisioning/datasources/opensearch.yaml | 6 ++--- etc/journalbeat/journalbeat.yml | 2 +- script/oglog_installer.sh | 23 ++++++++++++++++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/etc/grafana/provisioning/datasources/opensearch.yaml b/etc/grafana/provisioning/datasources/opensearch.yaml index cca7e83..2172e96 100644 --- a/etc/grafana/provisioning/datasources/opensearch.yaml +++ b/etc/grafana/provisioning/datasources/opensearch.yaml @@ -11,11 +11,11 @@ datasources: secureJsonData: basicAuthPassword: ${OPENSEARCH_INITIAL_ADMIN_PASSWORD} tlsCACert: | - ${TLS_CA_CERT}} +${TLS_CA_CERT} tlsClientCert: | - ${TLS_CLIENT_CERT}} +${TLS_CLIENT_CERT} tlsClientKey: | - ${TLS_CLIENT_KEY}} +${TLS_CLIENT_KEY} jsonData: serverName: "oglog-os.${SUBDOMAIN}" tlsAuth: true diff --git a/etc/journalbeat/journalbeat.yml b/etc/journalbeat/journalbeat.yml index c8919ef..7ddc048 100644 --- a/etc/journalbeat/journalbeat.yml +++ b/etc/journalbeat/journalbeat.yml @@ -14,7 +14,7 @@ output.elasticsearch: protocol: "https" ssl.enabled: true ssl.verification_mode: full - ssl.certificate: "/etc/journalbeat/oglog-jb.{SUBDOMAIN}.crt.pem" + ssl.certificate: "/etc/journalbeat/oglog-jb.${SUBDOMAIN}.crt.pem" ssl.key: "/etc/journalbeat/oglog-jb.${SUBDOMAIN}.key.pem" processors: diff --git a/script/oglog_installer.sh b/script/oglog_installer.sh index dd1c073..8d60511 100755 --- a/script/oglog_installer.sh +++ b/script/oglog_installer.sh @@ -204,13 +204,16 @@ curl -sS --connect-timeout 30 --max-time 120 --retry 3 \ log "Error: Fallo al descargar el dashboard" exit 1 } + +grafana-cli plugins install grafana-opensearch-datasource + # Declarar variables para envsubst export TLS_CA_CERT=$(cat "$CA_DIR/certs/ca.crt.pem" | sed ':a;N;$!ba;s/\n/\\n/g') export TLS_CLIENT_CERT=$(cat "$CA_DIR/certs/$(get_cert_name os).crt.pem" | sed ':a;N;$!ba;s/\n/\\n/g') export TLS_CLIENT_KEY=$(cat "$CA_DIR/private/$(get_cert_name os).key.nopass.pem" | sed ':a;N;$!ba;s/\n/\\n/g') # Copiar configuración adicional para Grafana -log "Copiando configuración adicional para Grafana..." +# log "Copiando configuración adicional para Grafana..." additional_file="grafana/provisioning/datasources/opensearch.yaml" src="$base_dir/etc/$additional_file" dest="/etc/$additional_file" @@ -261,6 +264,24 @@ curl -X POST "https://oglog-os.${SUBDOMAIN}:9200/.kibana/_doc/index-pattern:jour "timeFieldName": "@timestamp" } }' +# Crea un indice vacío para filebeat para que no se llene la pagina opensearch dashboard de errores +curl -X PUT "https://oglog-os.${SUBDOMAIN}:9200/filebeat-000001" \ + --cacert /etc/systemd/ca.crt.pem \ + --cert "/etc/opensearch/$(get_cert_name os).crt.pem" \ + --key "/etc/opensearch/$(get_cert_name os).key.pem" \ + -u "admin:$OPENSEARCH_INITIAL_ADMIN_PASSWORD" \ + -H 'Content-Type: application/json' \ + -d '{ + "mappings": { + "properties": { + "@timestamp": { "type": "date" }, + "message": { "type": "text" } + } + } + }' + + + echo "Importar pipelines de ingestión de OpenSearch" jq -c 'to_entries[]' "$base_dir/etc/opensearch/pipelines.json" | while read -r entry; do