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:
- 12 exemplos de comando ‘df’ para verificar o uso do espaço em disco do Linux
- 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:
- sar (coletar, relatar ou salvar informações de atividade do sistema).
- sadf (exibe dados coletados pelo sar em vários formatos).
- mpstat (estatísticas relacionadas aos processadores de relatórios).
- iostat (relata estatísticas de CPU e estatísticas de E/S para dispositivos e partições).
- pidstat (relatar estatísticas para tarefas do Linux).
- nfsiostat (relatar estatísticas de entrada/saída para NFS).
- cifsiostat (relatar estatísticas CIFS) e
- sa1 (coleta e armazena dados binários no arquivo de dados diários de atividades do sistema.
- 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ê.