Pesquisa de site

Como produzir e entregar relatórios de atividades do sistema usando conjuntos de ferramentas Linux - Parte 3


Como engenheiro de sistemas, muitas vezes você precisará produzir relatórios que mostrem a utilização dos recursos do seu sistema para garantir que: 1) eles estejam sendo utilizados de maneira ideal, 2) evitem gargalos e 3) garantam escalabilidade, entre outros motivos.

Além das conhecidas ferramentas nativas do Linux que são usadas para verificar o uso de disco, memória e CPU – para citar alguns exemplos, o Red Hat Enterprise Linux 7 fornece dois conjuntos de ferramentas adicionais para aprimorar os dados que você pode coletar para seus relatórios: sysstat e dstat.

Neste artigo descreveremos ambos, mas primeiro começaremos revisando o uso das ferramentas clássicas.

Ferramentas nativas do Linux

Com df, você poderá relatar o espaço em disco e o uso de inodes por sistema de arquivos. Você precisa monitorar ambos porque a falta de espaço impedirá que você salve mais arquivos (e pode até causar a falha do sistema), assim como ficar sem inodes significará que você não poderá vincular mais arquivos aos dados correspondentes. estruturas, produzindo assim o mesmo efeito: você não poderá salvar esses arquivos no disco.


df -h 		[Display output in human-readable form]
df -h --total         [Produce a grand total]


df -i 		[Show inode count by filesystem]
df -i --total 	[Produce a grand total]

Com du, você pode estimar o uso do espaço de arquivo por arquivo, diretório ou sistema de arquivos.

Por exemplo, vamos ver quanto espaço é usado pelo diretório /home, que inclui todos os arquivos pessoais do usuário. O primeiro comando retornará o espaço total atualmente usado por todo o diretório /home, enquanto o segundo também exibirá uma lista desagregada por subdiretório:


du -sch /home
du -sch /home/*

Não perca:

  1. 12 exemplos de comando ‘df’ para verificar o uso do espaço em disco do Linux
  2. 10 exemplos de comando ‘du’ para encontrar o uso de arquivos/diretórios no disco

Outro utilitário que não pode faltar no seu conjunto de ferramentas é o vmstat. Ele permitirá que você veja rapidamente informações sobre processos, uso de CPU e memória, atividade de disco e muito mais.

Se executado sem argumentos, vmstat retornará médias desde a última reinicialização. Embora você possa usar esta forma de comando de vez em quando, será mais útil coletar uma certa quantidade de amostras de utilização do sistema, uma após a outra, com uma separação de tempo definida entre as amostras.

Por exemplo,


vmstat 5 10

retornará 10 amostras coletadas a cada 5 segundos:

Como você pode ver na imagem acima, a saída do vmstat é dividida por colunas: procs (processos), memória, swap, >io, sistema e cpu. O significado de cada campo pode ser encontrado nas seções DESCRIÇÃO DO CAMPO na página de manual do vmstat.

Onde o vmstat pode ser útil? Vamos examinar o comportamento do sistema antes e durante uma atualização do yum:


vmstat -a 1 5

Observe que à medida que os arquivos são modificados no disco, a quantidade de memória ativa aumenta, assim como o número de blocos gravados no disco (bo) e o tempo de CPU necessário. dedicado aos processos do usuário (nós).

Ou durante o processo de salvar um arquivo grande diretamente no disco (causado por dsync):


vmstat -a 1 5
dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

Neste caso, podemos ver um número ainda maior de blocos sendo gravados no disco (bo), o que era de se esperar, mas também um aumento na quantidade de tempo de CPU que ele tem que esperar Operações de E/S a serem concluídas antes do processamento das tarefas (wa).

Não perca: Vmstat – Monitoramento de desempenho do Linux

Outras ferramentas Linux

Como mencionado na introdução deste capítulo, existem outras ferramentas que você pode usar para verificar o status e a utilização do sistema (elas não são fornecidas apenas pela Red Hat, mas também por outras distribuições importantes de seus sistemas oficialmente suportados. repositórios).

O pacote sysstat contém os seguintes utilitários:

  1. sar (coletar, relatar ou salvar informações de atividade do sistema).
  2. sadf (exibe dados coletados pelo sar em vários formatos).
  3. mpstat (estatísticas relacionadas aos processadores de relatórios).
  4. iostat (relata estatísticas de CPU e estatísticas de E/S para dispositivos e partições).
  5. pidstat (relatar estatísticas para tarefas do Linux).
  6. nfsiostat (relatar estatísticas de entrada/saída para NFS).
  7. cifsiostat (relatar estatísticas CIFS) e
  8. sa1 (coleta e armazena dados binários no arquivo de dados diários de atividades do sistema.
  9. Ferramentas sa2 (escrever um relatório diário no diretório /var/log/sa).

enquanto dstat adiciona alguns recursos extras à funcionalidade fornecida por essas ferramentas, juntamente com mais contadores e flexibilidade. Você pode encontrar uma descrição geral de cada ferramenta executando yum info sysstat ou yum info dstat, respectivamente, ou verificando as páginas man individuais após a instalação.

Para instalar os dois pacotes:


yum update && yum install sysstat dstat

O arquivo de configuração principal do sysstat é /etc/sysconfig/sysstat. Você encontrará os seguintes parâmetros nesse arquivo:


How long to keep log files (in days).
If value is greater than 28, then log files are kept in
multiple directories, one for each month.
HISTORY=28
Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
Parameters for the system activity data collector (see sadc manual page)
which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
Compression program to use.
ZIP="bzip2"

Quando o sysstat é instalado, dois cron jobs são adicionados e ativados em /etc/cron.d/sysstat. A primeira tarefa executa a ferramenta de contabilidade de atividades do sistema a cada 10 minutos e armazena os relatórios em /var/log/sa/saXX onde XX é o dia do mês.

Assim, /var/log/sa/sa05 conterá todos os relatórios de atividades do sistema a partir do dia 5 do mês. Isso pressupõe que estamos usando o valor padrão na variável HISTORY no arquivo de configuração acima:


*/10 * * * * root /usr/lib64/sa/sa1 1 1

A segunda tarefa gera um resumo diário da contabilidade do processo às 23h53 todos os dias e o armazena em arquivos /var/log/sa/sarXX, onde XX tem o mesmo significado do exemplo anterior:


53 23 * * * root /usr/lib64/sa/sa2 -A

Por exemplo, você pode querer gerar estatísticas do sistema das 9h30 até as 17h30 do sexto dia do mês em um arquivo .csv arquivo que pode ser facilmente visualizado usando o LibreOffice Calc ou o Microsoft Excel (esta abordagem também permitirá que você crie tabelas ou gráficos):


sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

Alternativamente, você poderia usar o sinalizador -j em vez de -d no comando sadf acima para gerar as estatísticas do sistema em JSON. forte>, que pode ser útil caso você precise consumir os dados em uma aplicação web, por exemplo.

Finalmente, vamos ver o que dstat tem a oferecer. Observe que se for executado sem argumentos, dstat assume -cdngy por padrão (abreviação de CPU, disco, rede, páginas de memória e estatísticas do sistema, respectivamente) e adiciona um linha a cada segundo (a execução pode ser interrompida a qualquer momento com Ctrl + C):


dstat

Para enviar as estatísticas para um arquivo .csv, use o sinalizador –output seguido por um nome de arquivo. Vamos ver como isso fica no LibreOffice Calc:

Eu recomendo fortemente que você verifique a página de manual do dstat junto com a página de manual do sysstat em formato PDF para sua conveniência de leitura. Você encontrará várias outras opções que o ajudarão a criar relatórios de atividades do sistema personalizados e detalhados.

Não perca: Sysstat – Ferramenta de monitoramento de atividades de uso do Linux

Resumo

Neste guia explicamos como usar ferramentas nativas do Linux e utilitários específicos fornecidos com o RHEL 7 para produzir relatórios sobre a utilização do sistema. Em um momento ou outro, você passará a confiar nesses relatórios como melhores amigos.

Você provavelmente já usou outras ferramentas que não abordamos neste tutorial. Em caso afirmativo, sinta-se à vontade para compartilhá-los com o resto da comunidade junto com quaisquer outras sugestões/dúvidas/comentários que você possa ter - usando o formulário abaixo.

Estamos ansiosos para ouvir de você.