Installation
Conditions préalables
Une base de données PostgreSQL avec un utilisateur autorisé à modifier les objets de la base de données est nécessaire. Le wrapper de données étrangères doit être installé sur la même instance de serveur que le serveur de base de données.
Exemple : Créer une base de données infosim appartenant au rôle 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';"
Installation standard
Installer le RPM à partir de SKOOR Repo
dnf install eranger-stablenet-fdw
Configuration
Fichier de configuration
/etc/stablenet-fdw/stablenet-fdw.conf
[global] #accept_insecure_certificate = false # Accept insecure certificates # (self-signed, expired, etc.) # when connecting to the StableNet® API 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. #skoor_auth_url = http://localhost:8094 # URL of the SKOOR web service # (default: http://localhost:8094) # This is used to get the StableNet® # auth tokens. #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. #history_days = 365 # Number of days the history data is loaded # from the StableNet® database. # Defaults to 365 days. [database] #host = localhost # Hostname of the PostgreSQL database #port = 5432 # Port of the PostgreSQL database #database = infosim # Name of the PostgreSQL database #user = infosim # User name of the PostgreSQL database #password = infosim # Password of the PostgreSQL database #schema = stablenet # Schema of the PostgreSQL database # (default: stablenet) #measurement_data_table = stablenet_measurement_data # Name of the measurement data table # (default: stablenet_measurement_data) [retention_days] #raw = 1 #minutely = 1 #five_minutely = 14 #fifteen_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 [webservice] # use te form werbservice_<server_id> # to configure multiple StableNet® servers # (see below). url = # URL of StableNet® API 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. #ping_measurement_filter = # Filter for the ping measurement (e.g. 'Device Domain' eq 'Test'). #snmp_measurement_filter = # Filter for the SNMP measurement (e.g. 'Device Domain' eq 'Test'). #snmp_indexes = # List of SNMP indexes to be used for the SNMP measurement. #usrscript_measurement_filter = # Filter for the USRSCRIPT measurement (e.g. 'Device Domain' eq 'Test'). #[webservice_<server_id>] # Optional, if multiple StableNet® servers # are used. Replace <server_id> with a unique # identifier for the StableNet® server. # Only alphanumeric lowercase characters are allowed. # Please note, that every webservice section # must have a unique identifier if multiple # StableNet® servers are used. if the server_id # changes, a resync of the measurement data is needed # because the measurement ID change (<measurment_id>@<server_id>). # If you already have a webservice configured without server_id, # then it's recommended to leave the existing webservice without # server_id and add a new webservice with server_id. This avoids # a resync of the measurement data. #server_name = # Unique name of the connected StableNet® # server. This should be a human readable # name, not a technical identifier. # Defaults to server_id if omitted. #url = # URL of the StableNet® the web service
Les options peuvent également être fournies par des variables d'environnement utilisant le préfixe STABLENET_FDW_WEBSERVICE_
et le nom de l'option en majuscules (par exemple STABLENET_FDW_WEBSERVICE_URL
). Pour les paramètres de global
, GLOBAL
doit être omis de la clé ENV (par exemple STABLENET_FDW_DEFAULT_USER
).
url
est l'URl de base du service web StableNet® API. Il se présente généralement sous la forme https://<host>:5443/api/1
.
Plusieurs instances StableNet® peuvent être définies en utilisant plusieurs sections webservice
avec des suffixes server_id
uniques. Le server_id
est utilisé comme identifiant interne pour, par exemple, obtenir la chaîne d'autorisation correspondante de SKOOR Auth. Il convient de définir un server_name
approprié qui est utilisé pour identifier le serveur dans les tables étrangères et agrégées. Ceci peut également être configuré à l'aide de variables d'environnement (par exemple STABLENET_FDW_WEBSERVICE_URL_TEST
, STABLENET_FDW_WEBSERVICE_SERVER_NAME_TEST
).
Après un changement de configuration, le serveur PostgreSQL doit être redémarré.
systemctl restart postgresql-13
Initialisation des tables étrangères
Initialisation des tables étrangères nécessaires au wrapper de données étrangères.
/opt/stablenet-fdw/init-foreign-tables.sh -h <host> -p <port> -d <database> -U <user> -o <owner>
e.g.
/opt/stablenet-fdw/init-foreign-tables.sh -U postgres -h localhost -p 5432 -d infosim -o infosim
Cette commande doit être exécutée après chaque mise à jour de eranger-stablenet-fdw
pour obtenir de nouvelles définitions de tables.
Test de la connexion
psql -h localhost -p 5432 -U infosim -d infosim -c "SELECT * from stablenet.stablenet_info;"
Cette commande devrait retourner le nombre d'appareils dans l'instance StableNet® connectée.