8. Utiliser la fonctions de requête dans WAPT Fonctionnalité WAPT Enterprise uniquement

8.1. Principe de fonctionnement

WAPT Enterprise offre des fonctionnalités de reporting avancées.

En effet, qui mieux que vous pouvez savoir ce dont vous avez besoin dans votre rapport.

Avec WAPT nous vous proposons d’écrire vos requêtes SQL dont le résultat s’affichera dans la console WAPT.

Le diagramme de la structure de la base de données est disponible ici wapt_db_data_structure.svg.

8.2. Concepteur de requêtes WAPT

Le concepteur de requêtes vous offre la possibilité de modifier vos propres requetes sur la base de données PostgreSQL de WAPT.

Note

La base de données PostgreSQL est définie en mode Lecture seule, de sorte que les requêtes exécutées à partir du Report Designer qui tentent de mettre à jour, de supprimer ou d’insérer des données échouent.

Vous pouvez importer des requêtes SQL depuis le dépôt Tranquil IT en cliquant sur Reporting ‣ Importer des requêtes… ‣ Depuis une Url ou sur Reporting ‣ Importer des requêtes… ‣ Depuis un fichier.

Importer une requête SQL dans la Console WAPT

Importer une requête SQL dans la Console WAPT

Si vous choisissez d’importer une requête depuis le dépôt Tranquil IT, sélectionnez une ou plusieurs requêtes, puis cliquez sur Sauvegarder les requêtes sélectionnées. Les nouvelles requêtes apparaîtront dans la Console WAPT.

Importer une requête SQL dans la Console WAPT depuis une URL

Importer une requête SQL dans la Console WAPT depuis une URL

Si vous importez une requête depuis un fichier, sélectionnez votre requête dans l’explorateur de fichiers. La requête peut être un fichier au format .query ou .json.

Importer une requête SQL dans la Console WAPT à partir d'un fichier

Importer une requête SQL dans la Console WAPT à partir d’un fichier

Note

Quelle que soit la méthode que vous utilisez pour importer des requêtes, n’oubliez pas de cliquer sur le bouton Sauvegarder pour sauvegarder les requêtes importées.

Pour créer une nouvelle requête, cliquer sur Reporting ‣ Mode conception ‣ Nouvelle requête.

Conception d'un rapport de requête SQL dans la Console WAPT

Conception d’un rapport de requête SQL dans la Console WAPT

Indication

  • Pour renommer une requête, appuyer sur la touche F2.

  • Dans l’encadré du haut, vous pouvez écrire votre requête SQL.

Pour éditer / modifier / Sauvegarder vos requêtes :

  • Le bouton Recharger est utilisé pour recharger les requêtes sauvegardées sur le serveur, par exemple, si un collègue vient juste d’éditer une nouvelle requête.

  • Le bouton Nouvelle requête va ajouter une requête vide à la liste.

  • Le bouton Supprimer la requête va supprimer la requête sélectionnée sur le serveur WAPT.

  • Le bouton Enregistrer tout va sauvegarder votre requête au serveur WAPT.

  • Le bouton Exécuter va exécuter la requête sélectionnée.

  • Le bouton Exporter vers tableur va exporter le résultat de votre requête dans un feuille de calcul.

  • Le bouton Dupliquer va dupliquer une requête existante pour éviter de repartir d’une requête vide.

Vous disposez de plusieurs options lorsque vous cliquez avec le bouton droit de la souris sur une requête.

Options disponibles pour un rapport de requête SQL dans la Console WAPT

Options disponibles pour un rapport de requête SQL dans la Console WAPT

Liste des actions disponibles sur une sélection de requête dans la Console WAPT

Nom

Description

Executer

Exécute la requête SQL.

Éditer

Modifie la requête SQL.

Éditer le nom

Modifie le nom de la requête SQL.

Exporter vers un tableur

Exporte le résultat de la requête SQL vers un fichier formaté en csv.

Dupliquer

Duplique la requête SQL.

Exporter les requêtes vers un fichier…

Exporte les requêtes SQL sélectionnées vers un fichier. Cette méthode permet de partager ou de sauvegarder les requêtes SQL.

Importer des requêtes…

Importe des requêtes à partir d’un fichier.

Supprimer des requêtes

Supprime les requêtes sélectionnées.

Note

  • Les requêtes sont sauvegardées dans la base de données PostgreSQL WAPT.

  • Le raccourci CTRL+espace vous permet de construire votre requête de façon plus efficace.

8.3. Utiliser des requêtes comme filtre dans l’onglet inventaire

Vous pouvez créer un filtre à utiliser dans l’onglet Inventaire basé sur une requête SQL. Dans cet exemple, nous utilisons une requête qui liste les machines sur lesquelles le logiciel 7zip a été installé.

Indication

Cette méthode est puissante car elle permet de rechercher des titres de logiciels qui n’ont pas été installés à l’aide de WAPT.

Sur le résultat de la requête, faites un clic droit sur host_id, qui est un identifiant unique, sélectionner cette entrée et cliquer sur le bouton Choisir cet identifiant unique.

Filtrer sur l'UUID de la machine pour créer une vue dynamique dans l'onglet d'inventaire

Filtrer sur l’UUID de la machine pour créer une vue dynamique dans l’onglet d’inventaire

Lorsque vous avez terminé, enregistrer la requête en appuyant sur le bouton Sauvegarder puis aller dans l’onglet Inventaire.

Ensuite, activer le panneau Recherche avancée et sélectionner la requête dans le champ déroulant Filtrer les machines basé sur la requête SQL.

Filtrer l'inventaire des machines à l'aide d'une requête SQL

Filtrer l’inventaire des machines à l’aide d’une requête SQL

Vous verrez alors une liste de machines basée sur la requête sélectionnée.

8.4. Exemple de requêtes

8.4.1. Requêtes Ordinateur

select count(*) as "number_of_hosts" from hosts
select
host_info->'windows_version' as windows_version,
os_name as operating_system,
count(os_name) as nb_hosts
from hosts
group by 1,2
select case
dmi->'Chassis_Information'->>'Type'
when 'Portable' then '01-Laptop'
when 'Notebook' then '01-Laptop'
when 'Laptop' then '01-Laptop'
when 'Desktop' then '02-Desktop'
when 'Tower' then '02-Desktop'
when 'Mini Tower' then '02-Desktop'
else '99-'||(dmi->'Chassis_Information'->>'Type')
end as type_chassis,
string_agg(distinct coalesce(manufacturer,'?') ||' '|| coalesce(productname,''),', '),
count(*) as "number_of_hosts" from hosts
group by 1

8.4.2. Requête WAPT

select
package,
version,
architecture,
description,
section,
package_uuid,
count(*)
from packages
group by 1,2,3,4,5,6

8.4.3. Requête Paquets

select
package,
version,
architecture,
description,
section,
package_uuid,
count(*)
from hostpackagesstatus s
where section not in ('host','unit','group')
group by 1,2,3,4,5,6

8.4.4. Requête logiciel

select
h.uuid,
h.computer_name,
install_date::date,
version,
h.listening_timestamp::timestamp,
name
from hostsoftwares s
left join hosts h on h.uuid=s.host_id
where
s.key='WAPT_is1'
and (name ilike 'WAPT%%Discovery%%' or name ilike 'WAPT %%')

Vous pouvez aussi trouver plus d’exemple de requêtes sur le Forum Tranquil IT.

N’hésitez pas à partager vos requêtes sur le même forum avec une explication de ce que fais votre requête, idéalement avec une capture d’écran ou une table affichant un échantillon du résultat de votre requête.

8.5. Normaliser les noms de logiciels

Parfois, la version du logiciel ou son architecture fait partie intégrante du nom du logiciel. Quand le logiciel s’enregistre dans l’inventaire du serveur WAPT, il apparaît en différents logiciels alors qu’ils sont pareils pour nous humains.

Pour résoudre ce problème, le nom des logiciels peut être normalisé dans WAPT. Aller dans l’onglet Inventaire des logiciels.

Normaliser le nom du logiciel

Normaliser le nom du logiciel

  • Cliquez sur Normaliser les nom de logiciels dans le menu Outils.

  • Sélectionnez le logiciel à standardiser, par exemple, toutes les version différentes d’Adobe Flash player.

  • Sur la colonne Normalisé, appuyez sur F2 pour assigner un nom standard sur le logiciel sélectionné. Puis appuyez sur Entrée.

Note

  • Pour sélectionner plusieurs programmes, sélectionnez les avec les combinaisons de touches shift-up/down.

  • Vous pouvez aussi marquer un logiciel comme Mise à jour Windows ou Banni (Appuyez sur la barre espace dans la colonne correspondante).

  • Appuyer sur le bouton Sauvegarder pour charger les changements sur le Serveur WAPT.

Vous pouvez maintenant lancer vos requêtes avec ce nom standardisé.

Indication

La case à cocher Afficher les machines permet de voir les titres des logiciels qui sont installés sur les machines.

Liste des machines avec le logiciel sélectionné dans l'onglet Inventaire des logiciels

Liste des machines avec le logiciel sélectionné dans l’onglet Inventaire des logiciels

8.5.1. Utiliser des titres de logiciels normalisés comme filtre dans l’onglet inventaire

Vous pouvez créer un filtre dans l’onglet Inventaire qui utilise des noms de logiciels normalisés. Pour ce faire, normaliser les noms des logiciels dans Inventaire des logiciels puis sélectionner une ou plusieurs machines. Dans l’onglet Inventaire des logiciels des machines sélectionnées, glissez et déposez le logiciel dans la liste d’inventaire, cela créera une vue.

Indication

Cette méthode est puissante car elle permet de rechercher des titres de logiciels qui n’ont pas été installés à l’aide de WAPT.

Ne pas oublier de normaliser les noms des logiciels au préalable.

Normaliser les noms de logiciels

Normaliser les noms de logiciels

Ajouter un nom normalisé de logiciel à l'inventaire des logiciels pour les machines sélectionnées

Ajouter un nom normalisé de logiciel à l’inventaire des logiciels pour les machines sélectionnées

Vous verrez une liste de machines triées selon le nom normalisé du logiciel.

8.6. Se connecter à la base de données WAPT avec un client PostgreSQL

Vous pouvez connecter votre base de données WAPT à un client si vous préférez utiliser un client PostgreSQL.

Pour ce faire, vous allez devoir changer quelques fichiers de configuration sur votre serveur WAPT.

  • Tout d’abord, trouvez la version de votre base de données PostgreSQL.

ps -ef | grep -i sql
postgres   512     1  0 Jan05 ?        00:00:24 /usr/lib/postgresql/12/bin/postgres -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf
  • Modifiez pg_hba.conf de la version PostgreSQL utilisée. Dans /etc/postgresql/12/main/pg_hba.conf pour Debian et /var/lib/pgsql/12/data/pg_hba.conf pour Centos sous # IPv4 local connections section, ajoutez votre adresse.

host    wapt             all             192.168.0.65/32              md5

where 192.168.0.65 is your IP address that is authorized
to connect to the WAPT database.
  • Autorisez PostgreSQL à écouter sur toutes les interfaces dans /etc/postgresql/12/main/postgresql.conf pour Debian et /var/lib/pgsql/12/data/postgresql.conf pour Centos, section Connection Settings.

listen_addresses = '*'
  • Redémarrez le service pour votre version de PostgreSQL.

systemctl restart postgresql@12-main.service
  • Pour se connecter au PostgreSQL sur le serveur wapt.

sudo -u postgres psql template1
  • Puis renseignez le mot de passe de l’utilisateur wapt.

template1=# ALTER USER wapt WITH PASSWORD 'PASSWORD';