Monitoramento
Esta é uma questão bastante aberta. Existem vários aplicativos que você pode usar para monitorar a carga da CPU, do tráfego de rede, da E / S de arquivos do servidor, etc.
No nível mais básico, começaria monitorando a carga da CPU das VMs. Você pode monitorar isso de duas maneiras, seja nas próprias VMs ou externamente nos hosts da VM.
Monitorando pelo host KVM
Como uma VM no seu nível mais básico é apenas uma aplicação, você pode simplesmente monitorar cada VM em um servidor KVM, observando o processo qemu correspondente.
$ ps -C qemu-kvm -o pid,time,etime,pcpu,args|perl -lane 'printf "%-7s %-12s %-12s %-5s %-5s %-s\n", @F[0..3,9,13]'
PID TIME ELAPSED %CPU
3860 11:37:32 85-10:32:43 0.5 512 mungr
4005 3-22:34:33 85-10:32:25 4.6 512 cobbler
4447 4-20:11:27 85-10:31:14 5.6 2048 mercury
6788 02:28:58 54-08:59:04 0.1 1024 xwiki
23916 1-03:46:02 80-09:51:47 1.4 512 fan
32539 02:17:48 1-08:50:54 6.9 1024 visualstudio
Algo parecido com o acima, por exemplo, exibiria o nome do KVM (6ª coluna) com o% CPU sendo usado (4ª coluna), juntamente com o tempo real de CPU que eles usaram até agora (2ª coluna) e o tempo decorrido que eles estão correndo (3ª coluna). A quinta coluna mostra a quantidade de RAM alocada para o KVM.
Monitorando através dos convidados do KVM
Se você quiser uma visualização com mais detalhes, será necessário realmente pesquisar cada VM e coletar os dados dentro deles. Uma maneira de obter bons dados é através da ferramenta sar
. A maioria dos sistemas operacionais RHEL, CentOS e Fedora tem esse pacote instalado por padrão.
NOTA: sar
faz parte do pacote sysstat!
Sem nenhum argumento, o comando básico sar
retornará a utilização da CPU para o dia atual, das 00:00 até a hora atual.
Por exemplo:
$ date
Tue May 7 21:31:54 EDT 2013
$ sar
Linux 2.6.35.14-106.fc14.x86_64 (grinchy) 05/07/2013 _x86_64_ (4 CPU)
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 24.86 0.00 3.98 6.01 0.00 65.16
12:20:01 AM all 25.12 0.00 3.98 5.98 0.00 64.93
...
...
09:20:01 PM all 36.06 0.00 5.00 4.95 0.00 54.00
09:30:01 PM all 35.40 0.00 4.97 4.66 0.00 54.97
Average: all 22.29 0.08 4.37 4.80 0.00 68.46
A última linha mostra as médias gerais para cada medida correspondente. Observe também que os dados são amostrados a cada 10 minutos. Isto é claro configurável.
A ferramenta sar
pode fazer muito mais do que apenas a utilização da CPU. É um pacote completo e permite que você monitore E / S de arquivos, rede, paginação de memória, etc.
Além disso, ele pode gerar os dados em formatos CSV ou XML (entre outros) e também gerar relatórios também!
O pacote é instalado
A ideia de usar chkconfig --list
é como eu começaria a determinar quais serviços estão configurados em uma determinada caixa. Dependendo de como a caixa é configurada, a nossa normalmente é configurada para executar no nível de execução 3, eu usaria este comando:
$ chkconfig --list |grep 3:on
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
...
...
vboxdrv 0:off 1:off 2:on 3:on 4:on 5:on 6:off
vboxweb-service 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
Login do usuário
Você pode usar a ferramenta ac
para determinar se as pessoas estão fazendo login em um sistema e por quanto tempo.
Por exemplo:
$ ac -pd
sam 0.15
Apr 28 total 0.15
sam 0.32
Apr 29 total 0.32
sam 0.00
Apr 30 total 0.00
sam 0.01
joeuser 0.00
May 3 total 0.01
sam 1.54
May 5 total 1.54
sam 0.01
Today total 0.01
Mostra um detalhamento diário de quantas horas um determinado usuário fez login em um sistema.
Contabilidade do processo
Se você realmente quiser acompanhar o que está acontecendo em uma caixa do Linux, pode ativar a conta de processo. Este é o serviço /etc/init.d/psacct
. Isso lhe dará detalhes completos sobre quando um serviço foi executado pela última vez, quais comandos um dado usuário executou pela última vez, etc. É praticamente o total de nove jardas.
exemplos
comandos executados pela última vez pelo usuário vivek
$ lastcomm vivek
userhelper S X vivek pts/0 0.00 secs Mon Nov 13 23:58
userhelper S vivek pts/0 0.00 secs Mon Nov 13 23:45
rpmq vivek pts/0 0.01 secs Mon Nov 13 23:45
rpmq vivek pts/0 0.00 secs Mon Nov 13 23:45
rpmq vivek pts/0 0.01 secs Mon Nov 13 23:45
gcc vivek pts/0 0.00 secs Mon Nov 13 23:45
última vez que o rm foi executado
$ lastcomm rm
rm S root pts/0 0.00 secs Tue Nov 14 00:39
rm S root pts/0 0.00 secs Tue Nov 14 00:39
rm S root pts/0 0.00 secs Tue Nov 14 00:38
Por exemplo, esta última técnica pode ser usada para ver a última vez que o Apache foi executado (httpd).
O pacote psacct
tem muitas outras ferramentas também. Isso é só para dar algumas idéias e começar.