Relatório sobre o consumo de cada usuário no Nextcloud

Se ainda quisermos explorar mais a nossa instalação Nextcloud e queremos saber quanto cada utilizador está a consumir… Esta é a sua postagem! Vai ficar ótimo porque vamos vê-lo diretamente do nosso Grafana!

 

Usaremos um script chamado 'relatório de uso do usuário'’ que podemos baixar do Site Nextcloud Apps, vamos baixar a versão que corresponde com a nossa instalação Nextcloud, neste post usamos Nextcloud 13. Deixamo-lo no diretório App dentro do nosso servidor Nextcloud, por isso, Algo assim nos ajudará, No final, acessamos o diretório onde está o binário OCC e o tornamos executável:

[Código-fonte]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[/Código-fonte]

 

Depois disso, podemos tentar ver diretamente o que este maravilhoso roteiro nos dá. Para ver o relatório de uso de dados do usuário administrador, podemos executar o seguinte comando e ver sua saída::

[Código-fonte]sudo -u www-data ./occ usage-report:gerar admin
"administrador","2018-08-20T20:35:50+00:00",-2,7518695,20,0,0,0[/Código-fonte]

 

Ole! já vemos de alguma forma o uso de um único usuário, Nada mau, E se quisermos ver toda a gente? Bem, removendo o usuário 🙂

[Código-fonte]sudo -u www-data ./occ usage-report:gerar
"administrador","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[/Código-fonte]

 

O que eu recebo dele são os identificadores dos usuários do Nextcloud, Tenho-os sincronizados com o Ative Directory. Tudo isso pode ser exportado em CSV e parar aqui e no post. Você faz os gráficos como quiser com um Excel e pronto.. Uma vez que o que vemos é um formato CSV com os seguintes campos:

  • ID de utilizador.
  • Data do relatório.
  • Se tiver quotas ativadas (-3 Seria ilimitado, -2 Não corrigido).
  • Espaço consumido na pasta.
  • Número de ficheiros na sua página inicial.
  • Número de itens compartilhados.
  • Número de ficheiros criados.
  • Número de ficheiros visualizados ou descarregados.

 

No caso que nos diz respeito, Se você sabe onde eu vou filmar… minha intenção é criar um script que exporte essas informações para um servidor MySQL, guardar todos estes dados numa tabela e depois trabalhar com o Grafana de uma forma mais simples.

No meu caso eu crio este script que vai fazer o trabalho para mim, Eu chamo isso “/raiz/nextcloud_uso_a_mysql.sh” com o siguiente contenido:

[Código-fonte]cd /var/www/nextcloud/
sudo -u www-data ./occ usage-report:gerar > /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:/Início/PI
mysqlimport -h SERVIDOR_MYSQL -uroot -pPASSWORD NOMBRE_BD –campos-terminated-by=',’ /início/pi/nextcloud_uso.csv[/Código-fonte]

 

Como podemos ver, dificilmente posso exportar os dados para um CSV, Retiro todas as aspas duplas que o incomodam, e substitua os identificadores que me cospem pelos nomes corretos dos meus utilizadores do AD. No final, carrego o arquivo csv para o servidor MySQL com scp e importo-o, ele tomará o nome da tabela do nome do arquivo que importamos. Guardamos o script e tornamo-lo executável 🙂

E podemos programá-lo diretamente em cron, No meu caso, se for executado uma vez por dia é o suficiente para mim e eu tenho mais do que suficiente, Então, neste exemplo, eu programá-lo para o 00:01 Eu diria. Todos os dias você vai importar novos dados para a tabela MySQL!

[Código-fonte]crontab -e
1 0 * * * /raiz/nextcloud_uso_a_mysql.sh[/Código-fonte]

 

A tabela que estou usando no MySQL é chamada 'nextcloud_uso’ e é composto por usuário, Filho de um, quota, espaço, Limas, Compartilhada, Criado, Movido e Data, como você verá estes são dados mais do que suculentos para então lidar com eles com Grafana… Deixo-lhe o guião caso queira criar a tabela com a mesma estrutura que eu:

[Código-fonte]CRIAR TABELA 'nextcloud_uso' (
CHAR 'utilizador'(40) NULL DEFAULT NULL,
'fetxa' CHAR(10) NULL DEFAULT NULL,
'quota' FLOAT NULL DEFAULT NULL,
'espaço' FLOAT NULL DEFAULT NULL,
'arquivos' FLOAT NULL DEFAULT NULL,
'compartilhado' FLOAT NULL DEFAULT NULL,
'criado' FLOAT NULL DEFAULT NULL,
'movido' FLOAT NULL DEFAULT NULL,
'date' TIMESTAMP NOT NULL PADRÃO CURRENT_TIMESTAMP NA ATUALIZAÇÃO CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
ENGINE=InnoDB
ROW_FORMAT=COMPACTO
;[/Código-fonte]

 

E agora só resta visualizar os dados! Eis alguns exemplos:, em que no primeiro, Com um pouco de queijo veremos os dados que estão usando nossos dados atualmente, de forma gráfica e com um rápido olhar saberemos quem é o que suga todo o espaço 🙂 E à direita deixo-vos um gráfico de como cresceria a utilização de dados dos nossos utilizadores.. Mas cuidado! Que na tabela temos fatos mais curiosos! Como saber quem partilha mais, Quem trabalha mais, etc, etc…

 

Deixo-vos uma dica das consultas que usei no Grafana para que fique igual, Ou uau, você melhor! Em um painel, Criar:

  • Gráfico de queijo ou torta: Seria uma questão de adicionar a série que nos interessa contra a nossa fonte de dados MySQL, exemplo de um deles:

[Código-fonte]Selecione Data como time_sec, Usuário como métrica, espacio como valor de nextcloud_uso onde user = 'Hector Herrero’ Encomendar por Data DESC LIMIT 1[/Código-fonte]

  • Gráfica o Graph: O mesmo, adicionar a série que queremos pintar, Exemplo:

[Código-fonte]SELECT espacio como valor, "Heitor Herrero" como métrica, UNIX_TIMESTAMP(data) COMO time_sec DE nextcloud_uso ONDE $__timeFilter(data) e usuário = 'Hector Herrero’ Encomendar por Data de Desconto[/Código-fonte]

 

Se você está um pouco perdido com Grafana e precisa saber como instalá-lo, Fazer Check-out Este post que pode ajudá-lo, então, no máximo, você terá que fazer um conector ou fonte de dados contra o seu servidor MySQL! Poço, Espero que tenham gostado! Aquele que não tem seu ambiente sob controle é porque não quer!!! Lá deixo! Pimp, chulo

 

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!