Utiliser des paquets profile dans WAPT ¶
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
.
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.
Pour créer une nouvelle requête, cliquez sur
.Indication
Pour renommer une requête, appuyez 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 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 Exporter vers tableur va exporter le résultat de votre requête dans un feuille de calcul.
Le bouton Enregistrer tout va sauvegarder votre requête au serveur WAPT.
Le bouton Dupliquer va dupliquer une requête existante pour éviter de repartir d’une requête vide.
Le bouton Exécuter va exécuter la requête sélectionnée.
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.
Exemple de requêtes¶
Requêtes Ordinateur¶
select count(*) as "number_of_hosts" from hosts
select
computer_name,
os_name,
os_version,
os_architecture,
serialnr
from hosts
order by 4,3,1
select distinct unnest(mac_addresses) as mac,
unnest(h.connected_ips) as ipaddress,
computer_fqdn,h.description,
h.manufacturer||' '||h.productname as model,
h.serialnr,
h.computer_type
from hosts h
order by 1,2,3
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 host_info->'windows_version' as windows_version,
os_name as "Operating_System",
count(os_name) as "number_of_hosts"
from hosts
group by 1,2
select
h.uuid,
h.computer_fqdn,
install_date::date,
version,
h.listening_timestamp::timestamp,
h.connected_users from hostsoftwares s
left join hosts h on h.uuid=s.host_id
where s.key='WAPT_is1'
and h.listening_timestamp<'20190115'
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
select
computer_name,
os_name,
os_version,
host_info->'windows_product_infos'->'product_key' as windows_product_key
from hosts
order by 3,1
Requête WAPT¶
select
package,
version,
architecture,
description,
section,
package_uuid,
count(*)
from packages
group by 1,2,3,4,5,6
select
computer_fqdn,
host_status,
last_seen_on::date,
h.wapt_status,
string_agg(distinct lower(s.package),' ')
from hosts h
left join hostpackagesstatus s on s.host_id=h.uuid and s.install_status != 'OK'
where (last_seen_on::date > (current_timestamp - interval '1 week')::date
and host_status!='OK')
group by 1,2,3,4
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
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 %%')
select
hosts.computer_name,
hostsoftwares.host_id,
hostsoftwares.name,
hostsoftwares.version
from hosts, hostsoftwares
where hostsoftwares.name ilike '7-zip%%'
and hosts.uuid=hostsoftwares.host_id
order by hosts.computer_name asc
select
n.normalized_name,
s.version,string_agg(distinct lower(h.computer_name),' '),
count(distinct h.uuid)
from hostsoftwares s
left join normalization n on (n.original_name = s.name) and (n.key = s.key)
left join hosts h on h.uuid = s.host_id
where (n.normalized_name is not null)
and (n.normalized_name<>'')
and not n.windows_update
and not n.banned
and (last_seen_on::date > (current_timestamp - interval '3 week')::date)
group by 1,2
select
n.normalized_name,
string_agg(distinct lower(h.computer_name),' '),
count(distinct h.uuid)
from hostsoftwares s
left join normalization n on (n.original_name = s.name) and (n.key = s.key)
left join hosts h on h.uuid = s.host_id
where (n.normalized_name is not null)
and (n.normalized_name<>'')
and not n.windows_update
and not n.banned
and (last_seen_on::date > (current_timestamp - interval '3 week')::date)
group by 1
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.
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, nous proposons de standradiser le nom des logiciels avec WAPT.
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 combinaisonsde 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).
Appuyez sur Importer pour charger les changements du serveur.
Appuyez sur Enregistrer pour sauvegarder vos changements.
Vous pouvez maintenant lancer vos requêtes avec ce nom standardisé.
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';