Installazione
Prerequisiti
È necessario un database PostgreSQL con un utente autorizzato a modificare gli oggetti del database. Il wrapper per dati esterni deve essere installato sulla stessa istanza del server su cui è in esecuzione il server del database.
Si prega di mantenere la directory predefinita PG_HOME in /var/lib/pgsql ed evitare di spostarla. Inoltre, non creare punti di montaggio aggiuntivi all'interno di questa directory (ad esempio, montando /var/lib/pgsql/17/data da un dispositivo diverso). Modificare la struttura in questo modo può complicare significativamente i futuri aggiornamenti di PostgreSQL. Invece, montare /var/lib/pgsql direttamente da un altro dispositivo o utilizzare tablespace aggiuntivi come descritto di seguito.
Esempio: Creare il database infosim di proprietà del ruolo infosim:
export DB_NAME=infosim
mkdir -p /var/lib/pgsql/custom/user_tblspc/${DB_NAME}_tblspc/tab_space/${DB_NAME} \
/var/lib/pgsql/custom/user_tblspc/${DB_NAME}_tblspc/idx_space/${DB_NAME} && \
chown -R postgres:postgres /var/lib/pgsql/custom/user_tblspc
psql -Upostgres -c "CREATE ROLE $DB_NAME WITH LOGIN PASSWORD '$DB_NAME';"
psql -Upostgres -c "CREATE TABLESPACE ${DB_NAME}_tab OWNER $DB_NAME \
LOCATION '/var/lib/pgsql/custom/user_tblspc/${DB_NAME}_tblspc/tab_space/$DB_NAME';"
psql -Upostgres -c "CREATE TABLESPACE ${DB_NAME}_idx OWNER $DB_NAME \
LOCATION '/var/lib/pgsql/custom/user_tblspc/${DB_NAME}_tblspc/idx_space/$DB_NAME';"
psql -Upostgres -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_NAME TEMPLATE template0 \
TABLESPACE ${DB_NAME}_tab ENCODING 'UTF8' LC_COLLATE 'de_CH.UTF-8' LC_CTYPE 'de_CH.UTF-8';"
Installazione standard
Installare l'RPM dal repository SKOOR
Se StableNet FDW deve essere installato per una versione Major specifica di SKOOR (ad es. 8), utilizzare
dnf install "eranger-stablenet-fdw-8.*"
Altrimenti utilizzare
dnf install "eranger-stablenet-fdw"
Configurazione
Dopo una modifica alla configurazione, il server PostgreSQL deve essere riavviato.
systemctl restart postgresql-17
File di configurazione
/etc/stablenet-fdw/stablenet-fdw.conf
Configurazione minima
Per ottenere un'installazione funzionante è obbligatorio impostare le seguenti opzioni.
[global]
default_user =
# Default user name for the StableNet® API.
# This is used in case no authorization
# is provided by the SQL client.
default_password =
# Default password for the StableNet® API.
# This is used in case no authorization
# is provided by the SQL client.
Alcune versioni precedenti di Oracle richiedono che la libreria client Oracle sia installata sul sistema. Installarla utilizzando l'ultimo programma di installazione di Oracle Instant Client e configurare il percorso
#oracle_client_lib_dir =
# Path to the Oracle client library directory.
# This is used to load the Oracle client library
# for the Oracle database connection.
# If omitted, the thin client is used which might have
# problems connectiong to older Oracle databases.
[webservice] # use te form werbservice_<server_id>
# to configure multiple StableNet® servers
# (see below).
url =
# URL of the StableNet® API
# Usually something like https://<stablenet-host>:5443/api/1
database_connection =
# Connection string to the StableNet® database.
# This is used for the measurement data sync.
# The connection string must be in the format:
# MySQL: mysql+pymysql://<user>:<password>@<host>:3306/<database>
# Oracle: oracle+oracledb://<user>:<password>@<host>:1521/?service_name=<service>
# Connection info can be found on the StableNet server in
# /opt/stablenet/snmw/wildfly/standalone/configuration/standalone.xml (<datasources>).
# It's usually a good idea to use a different user and service than the one used by StableNet.
Filtraggio delle misurazioni / metriche
Per limitare la quantità di dati che devono essere sincronizzati dal database StableNet, potrebbe essere utile configurare alcuni filtri o disattivare completamente alcuni tipi di misurazione.
#sync_ping_data = true
# Sync ping measurement data from the StableNet® database.
# Defaults to true.
#sync_snmp_data = true
# Sync SNMP measurement data from the StableNet® database.
# Defaults to true.
#sync_usrscript_data = true
# Sync usrscript measurement data from the StableNet® database.
# Defaults to true.
#sync_external_data = true
# Sync external measurement data from the StableNet® database.
#sync_derived_data = false
# Sync derived measurement data from the StableNet® database.
#ping_measurement_filter =
# Filter for the ping measurement.
#snmp_measurement_filter =
# Filter for the SNMP measurement.
#snmp_indexes =
# List of SNMP indexes to be used for the SNMP measurement.
# This is the number part of the metric key, e.g. #1234 -> 1234
#snmp_state_agg_measurements =
# Comma separated list of template name / metric_key pairs of measurements
# which should have state aggregation enabled.
# Example: Interface Relative IPMPLS 64Bit#1234,template2#5678
#usrscript_measurement_filter =
# Filter for the usrscript measurement.
#usrscript_indexes =
# List of usrscript indexes to be used for the usrscript measurement.
# This is the number part of the metric key, e.g. #1234 -> 1234
#usrscript_state_agg_measurements =
# Comma separated list of template name / metric_key pairs of measurements
# which should have state aggregation enabled.
# Example: Interface Relative IPMPLS 64Bit#1234,template2#5678
#external_measurement_filter =
# Filter for the external measurement.
#external_indexes =
# List of external indexes to be used for the external measurement.
# This is the number part of the metric key, e.g. #1234 -> 1234
#external_state_agg_measurements =
# Comma separated list of template name / metric_key pairs of measurements
# which should have state aggregation enabled.
# Example: Y.1731#1234,template2#5678
#derived_measurement_filter =
# Filter for the derived measurement.
#derived_indexes =
# List of derived indexes to be used for the derived measurement.
# This is the number part of the metric key, e.g. #1234 -> 1234
#derived_state_agg_measurements =
# Comma separated list of template name / metric_key pairs of measurements
# which should have state aggregation enabled.
# Example: Y.1731#1234,template2#5678
Criteri di conservazione
È possibile configurare per quanto tempo i dati vengono conservati per ciascun aggregato.
[retention_days]
#raw = 1
#minutely = 1
#5_minutely = 14
#15_minutely = 31
# ~1 month
#hourly = 93
# ~3 months
#daily = 365
# ~1 years
#weekly = 365
# ~1 years
#monthly = 1825
# ~5 years
#quarterly = 1825
# ~5 years
#yearly = 3650
# ~10 years
Impostazioni avanzate
Esistono diverse altre opzioni che possono essere utilizzate per ottimizzare il FDW di StableNet. Tali impostazioni sono descritte direttamente nel file di configurazione.
Utilizzo delle variabili d'ambiente
Le opzioni possono essere specificate anche tramite variabili d'ambiente utilizzando il prefisso STABLENET_FDW_WEBSERVICE_ e il nome dell'opzione in maiuscolo (ad es. STABLENET_FDW_WEBSERVICE_URL). Per le impostazioni global, GLOBAL deve essere omesso dalla chiave ENV (ad es. STABLENET_FDW_DEFAULT_USER ).
url è l'URL di base del servizio web API StableNet®. Di solito ha la forma https://<host>:5443/api/1.
Server StableNet multipli
È possibile definire più istanze di StableNet® utilizzando più sezioni webservice con suffissi server_id univoci. L'server_id viene utilizzato come identificatore interno, ad esempio per ottenere la stringa di autorizzazione corrispondente da SKOOR Auth. È necessario impostare un server_name appropriato, che verrà utilizzato per identificare il server nelle tabelle esterne e aggregate. Ciò può essere configurato anche utilizzando variabili di ambiente (ad es. STABLENET_FDW_WEBSERVICE_URL_TEST , STABLENET_FDW_WEBSERVICE_SERVER_NAME_TEST).
[webservice_production] server_name = Production Server url = https://stablenet.prod:5443/api/1 database_connection = ... [webservice_staging] server_name = Staging Server url = https://stablenet.staging:5443/api/1 database_connection = ...
Voce corrispondente in SKOOR Auth (/etc/opt/eranger/eranger-auth.conf)
[provider.1] type = stablenet name = StableNet® webservice_url_production = https://stablenet.prod:5443/api/1 webservice_url_staging = https://stablenet.staging:5443/api/1
Inizializzazione delle tabelle esterne
Inizializzare le tabelle esterne necessarie al wrapper dei dati esterni.
/opt/stablenet-fdw/init-foreign-tables.sh -h <host> -p <port> -d <database> -U <user> -o <owner>
Es.
/opt/stablenet-fdw/init-foreign-tables.sh -U postgres -h localhost -p 5432 -d infosim -o infosim
Questo comando deve essere eseguito dopo ogni aggiornamento di eranger-stablenet-fdw per ottenere le nuove definizioni delle tabelle.
Verifica della connessione
psql -h localhost -p 5432 -U infosim -d infosim -c "SELECT * from stablenet.stablenet_info;"
Questo dovrebbe restituire il numero di dispositivi nell'istanza StableNet® connessa.