
Rendre compte de la consommation de chaque utilisateur dans Nextcloud
Si nous voulons toujours exploiter davantage notre installation Nextcloud et que nous voulons savoir combien chaque utilisateur consomme… Ceci est votre message! Ça va avoir l’air génial parce que nous allons le voir directement depuis notre Grafana!
Nous allons utiliser un script appelé « rapport d’utilisation de l’utilisateur »’ que l’on peut télécharger depuis le Site web de Nextcloud Apps, nous téléchargerons la version qui correspond à notre installation Nextcloud, dans cet article, nous utilisons Nextcloud 13. Nous le laissons dans le répertoire des applications de notre serveur Nextcloud, pour cela, Quelque chose comme ça nous aidera, À la fin, nous accédons au répertoire où se trouve le binaire OCC et le rendons exécutable:
[Code source]MV user_usage_report-1.0.1.tar.gz /VAR/www/NextCloud/Apps/
cd /var/www/nextcloud/apps
tar zxfv user_usage_report-1.0.1.tar.gz
RM user_usage_report-1.0.1.tar.gz
cd /var/www/nextcloud
sudo chmod +x occ[/Code source]
Après cela, Nous pouvons essayer directement de voir ce que ce merveilleux scénario nous donne. Pour voir le rapport d’utilisation des données de l’utilisateur admin, nous pouvons exécuter la commande suivante et voir son résultat:
[Code source]sudo -u www-data ./rapport-d’utilisation occ:générer admin
« admin »,« 2018-08-20T20:35:50+00:00",-2,7518695,20,0,0,0[/Code source]
Ole! Nous voyons déjà d’une certaine manière l’utilisation d’un seul utilisateur, bien, Et si on veut voir tout le monde? Eh bien, supprimer l’utilisateur 🙂
[Code source]sudo -u www-data ./rapport-d’utilisation occ:générer
« admin »,« 2018-08-20T20:36:32+00:00",-2,7518695,20,0,0,0
« 88133B49-A6A5-4035-83EB-3193BDD19E3B »,« 2018-08-20T20:36:32+00:00",-2,7952664,32,1,0,16
« 57D0CD27-A319-4A36-92D3-E541B7DD84C9 »,« 2018-08-20T20:36:32+00:00",-2,"",,0,0,0
« 5BA5460C-FF2F-4DAC-8C1F-5427729DDD4D »,« 2018-08-20T20:36:32+00:00",-2,7435791,12,0,0,0
« 61F42891-B220-43AB-9568-4390753DDBF5 »,« 2018-08-20T20:36:32+00:00",-2,"",,0,0,0
« 272407CC-6361-49F4-A3B5-F8A26FDDDE18 »,« 2018-08-20T20:36:32+00:00",-2,"",,0,0,0
« 755784D0-F0AE-4DF9-BD88-E3A5B5BDD374 »,« 2018-08-20T20:36:32+00:00",-2,7435791,12,0,0,0
« BA886970-5134-45FD-8D42-D11DCDDE57A »,« 2018-08-20T20:36:32+00:00",-2,"",,0,0,0
« A6E28617-BB75-4080-A7B3-9F22E4DD184A »,« 2018-08-20T20:36:32+00:00",-2,"",,0,0,0
"3009D13B-0236-48D4-B771-604932DD47F1 »,« 2018-08-20T20:36:32+00:00",-2,"",,0,0,0[/Code source]
Ce que j’en retire, ce sont les identifiants des utilisateurs de Nextcloud, Je les ai synchronisés avec l’Active Directory. Tout cela peut être exporté en CSV et s’arrêter ici et le post. Vous faites les graphiques comme vous le souhaitez avec un Excel et c’est tout. Puisque ce que nous voyons est un format CSV avec les champs suivants:
- Identifiant.
- Date du rapport.
- Si vous avez activé les quotas (-3 Ce serait illimité, -2 Non fixe).
- Espace consommé dans votre dossier.
- Nombre de fichiers sur votre page d’accueil.
- Nombre d’éléments partagés.
- Nombre de fichiers créés.
- Nombre de fichiers consultés ou téléchargés.
Dans le cas qui nous concerne, Si vous savez où je vais tourner… mon intention est de créer un script qui exporte ces informations vers un serveur MySQL, enregistrer toutes ces données dans une table, puis travailler avec Grafana de manière plus simple.
Dans mon cas, je crée ce script qui fera le travail pour moi, Je l’appelle “/racine/nextcloud_uso_a_mysql.sh” avec le contenu suivant:
[Code source]cd /var/www/nextcloud/
sudo -u www-data ./rapport-d’utilisation occ:générer > /TMP/nextcloud_uso1.csv
aw '{GSUB(/\"/,"")};1’ /TMP/nextcloud_uso1.csv > /TMP/nextcloud_uso.csv
sed -i -e 's/88133B49-A6A5-4035-83EB-3193B4DD9D3B/Hector Herrero/g’ /TMP/nextcloud_uso.csv
sed -i -e 's/755784D0-F0AE-4DF9-BD88-E3A5B5DDD74/Seila Fernandez/g’ /TMP/nextcloud_uso.csv
sed -i -e 's/A6E28617-BB75-4080-A7B3-9F22E4DD8DA/David Guerrero/g’ /TMP/nextcloud_uso.csv
SCP /TMP/nextcloud_uso.csv pi@192.168.1.197:/Accueil/PI
mysqlimport -h SERVIDOR_MYSQL -uroot -pPASSWORD NOMBRE_BD –champs-terminés-par=',’ /Accueil/PI/nextcloud_uso.csv[/Code source]
Comme nous pouvons le voir, je peux difficilement exporter les données vers un CSV, J’enlève tous les guillemets doubles qui le dérangent, et remplacer les identifiants qui me crachent par les noms corrects de mes utilisateurs AD. À la fin, je télécharge le fichier csv sur le serveur MySQL avec scp et l’importe, Il prendra le nom de la table à partir du nom du fichier que nous avons importé. Nous enregistrons le script et le rendons exécutable 🙂
Et on peut le programmer directement en cron, Dans mon cas, s’il est exécuté une fois par jour, cela me suffit et j’en ai plus qu’assez, Donc, dans cet exemple, je le programme pour le 00:01 Je dirais. Chaque jour, vous importerez de nouvelles données dans la table MySQL!
[Code source]crontab -e
1 0 * * * /racine/nextcloud_uso_a_mysql.sh[/Code source]
La table que j’utilise dans MySQL s’appelle 'nextcloud_uso’ et est composé de, Fils d’un, quota, espace, Fichiers, Partagé, Créé, Déplacé et date, comme vous le verrez, ce sont plus que des données juteuses à traiter ensuite avec Grafana… Je vous laisse le script au cas où vous voudriez créer le tableau avec la même structure que moi:
[Code source]CRÉATION DE LA TABLE 'nextcloud_uso' (
CHAR 'utilisateur'(40) NULL VALEUR PAR DÉFAUT NULL,
CHAR 'fetxa'(10) NULL VALEUR PAR DÉFAUT NULL,
'quota' FLOAT NULL DEFAULT NULL,
'space' FLOAT NULL DEFAULT NULL,
'files' FLOAT NULL DEFAULT NULL,
'shared' FLOAT NULL VALEUR PAR DÉFAUT NULL,
'created' FLOAT NULL DEFAULT NULL,
'moved' FLOAT NULL VALEUR PAR DÉFAUT NULL,
'date' horodatage non null CURRENT_TIMESTAMP PAR DÉFAUT LORS DE LA MISE À JOUR CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
MOTEUR=InnoDB
ROW_FORMAT=COMPACT
;[/Code source]
Et maintenant, il ne reste plus qu’à visualiser les données! En voici quelques exemples, où dans le premier, Avec un peu de fromage, nous verrons les données qui utilisent actuellement nos données, de manière graphique et d’un coup d’œil rapide, nous saurons qui est la canaille qui aspire tout l’espace 🙂 Et à droite, je vous laisse un graphique de la façon dont l’utilisation des données de nos utilisateurs augmenterait. Mais attention! Que dans le tableau, nous avons d’autres faits curieux! Comment savoir qui partage le plus, Qui travaille le plus, etc, etc…
Je vous laisse un aperçu des requêtes que j’ai utilisées dans Grafana pour qu’il ait la même apparence, Ou wow, vous mieux! Sur un tableau de bord, Créer:
- Fromage ou camembert: Il s’agirait d’ajouter les séries qui nous intéressent à notre Source de Données MySQL, Exemple de l’un d’entre eux:
[Code source]Sélectionnez la date comme time_sec, Utilisateur en tant que métrique, espacio comme valeur de nextcloud_uso où user = 'Hector Herrero’ Trier par Date DESC LIMIT 1[/Code source]
- Gráfica o Graph: De même, Ajouter la série que l’on veut peindre, exemple:
[Code source]SELECT espacio comme valeur, « Hector Herrero" en tant que métrique, UNIX_TIMESTAMP(date) COMME time_sec DE nextcloud_uso OÙ __timeFilter $(date) et utilisateur = 'Hector Herrero’ Trier par date de repos[/Code source]
Si vous êtes un peu perdu avec Grafana et que vous avez besoin de savoir comment l’installer, Vérifier Cet article qui peuvent vous aider, puis tout au plus vous devrez faire un connecteur ou une Source de Données contre votre serveur MySQL! Puits, J’espère que vous l’avez aimé! Celui qui n’a pas son environnement sous contrôle, c’est parce qu’il ne veut pas!!! Là, je le laisse! Maquereau, maquereau…