Na era da computação em nuvem, as máquinas virtuais (VMs) tornaram-se muito comuns, enquanto o uso de máquinas físicas começou a diminuir gradualmente. Neste post, apresentaremos as ferramentas ‘vnStat’ e ‘iftop,’ que podemos usar para monitorar o consumo de dados em uma VM.
Primeiro, estou criando uma máquina com os seguintes recursos:
20 GHz CPU
16 GB RAM
20 GB SSD
Estou montando o disco com a imagem do Ubuntu 18.04 que está disponível na biblioteca da CloudSigma’s.
Ubuntu 18.04 : Pré-instalado de 64 bits com drivers VirtIO, superusuário, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init e atualizações mais recentes até 2018-09-30.
Em seguida, estou atualizando todos os repositórios e pacotes existentes na máquina.
|
1 2 |
sudo apt update sudo apt upgrade |
Agora que nosso sistema está atualizado, passarei para as nossas ferramentas, ‘vnStat’ e ‘iftop’.
VNSTAT
De acordo com humdi, o vnStat é um monitor de tráfego de rede baseado em console para Linux e BSD que mantém um registro do tráfego de rede para a(s) interface(s) selecionada(s). Ele usa as estatísticas de interface de rede fornecidas pelo kernel como fonte de informação. Isso significa que o vnStat não estará realmente farejando nenhum tráfego e também garante um uso leve dos recursos do sistema.
Alguns dos recursos do vnStat são:
- Mesmo que o sistema seja reiniciado, os dados ainda persistem.
- Ele pode monitorar várias interfaces ao mesmo tempo.
- Existem várias opções de saída, por exemplo, por dia, por semana, etc.
- As políticas de retenção de dados podem ser configuradas pelo usuário.
- Os meses podem ser configurados de acordo com o ciclo de faturamento.
- A ferramenta em si é muito leve e o uso de recursos é mínimo.
- O uso de CPU será o mesmo, independentemente do tráfego.
Instalação
Use o seguinte comando para instalar o vnStat:
|
1 |
sudo apt install vnstat |
Ele deve detectar automaticamente a interface de rede. Caso não detecte, posso verificar a interface com o comando:
|
1 |
ip addr |
No meu caso, posso ver duas interfaces:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 22:af:d1:32:d2:0b brd ff:ff:ff:ff:ff:ff inet XXX.XXX.XX.XXX/24 brd XXX.XXX.XX.XXX scope global dynamic ens3 valid_lft 1853sec preferred_lft 1853sec inet6 fe80::20af:d1ff:fe32:d20b/64 scope link valid_lft forever preferred_lft forever |
Posso ignorar a interface de loopback. A interface que quero monitorar é ‘ens3’. Posso atualizar isso no vnStat usando o comando:
|
1 |
sudo vnstat -u -i ens3 |
Guia de Uso
O guia de uso pode ser visto usando o comando: vnStat –help
O uso será descrito assim:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 por Teemu Toivola <tst em iki ponto fi> -q, --query consultar banco de dados -h, --hours mostrar horas -d, --days mostrar dias -m, --months mostrar meses -w, --weeks mostrar semanas -t, --top10 mostrar top 10 dias -s, --short usar saída curta -u, --update atualizar banco de dados -i, --iface selecionar interface (padrão: ens3) -?, --help ajuda curta -v, --version mostrar versão -tr, --traffic calcular tráfego -ru, --rateunit trocar unidade de taxa configurada -l, --live mostrar taxa de transferência em tempo real Veja também "--longhelp" para a lista completa de opções e "man vnstat". |
Com a ajuda desses comandos, podemos obter as métricas de uso de dados.
Para monitorá-lo de forma fácil e intuitiva, podemos instalar o painel do vnStat. A seguir estão as etapas para instalar o painel:
Instale as seguintes dependências necessárias:
|
1 |
sudo apt install apache2 php wget unzip -y |
Após a instalação das dependências necessárias, buscaremos o painel no repositório do GitHub, o descompactaremos e o colocaremos no diretório do nosso servidor web.
|
1 2 3 |
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/ |
Em seguida, precisamos editar a configuração.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
As seguintes linhas precisarão de alteração. Estou marcando as alterações necessárias em negrito.
|
1 2 3 4 5 6 7 |
$use_predefined_interfaces = <strong>true</strong>; if ($use_predefined_interfaces == <strong>true</strong>) { $interface_list = <strong>["ens3"]</strong>; $interface_name<strong>['ens3']</strong> = "Interface de Teste"; } |
Posso nomear a interface para facilitar o monitoramento. É possível ter múltiplas interfaces para monitorar. Podemos adicioná-las aqui.
Depois de fazer as alterações, abra <<IP-ADDRESS>>/vnstat
Agora consigo ver os dados de uma forma elegante.


IFTOP
O iftop escuta o tráfego de rede em uma interface nomeada, ou na primeira interface que encontrar que pareça uma interface externa se nenhuma for especificada. Ele exibe uma tabela do uso atual de largura de banda por pares de hosts. Devemos executar o iftop com permissões suficientes para monitorar todo o tráfego de rede na interface.
Instalação
Podemos instalar o Iftop usando o seguinte comando:
|
1 |
sudo apt install iftop |
Guia de Uso
O guia de uso pode ser visualizado usando o comando: iftop -h
O uso será descrito assim:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
iftop: exibe largura de banda uso em uma interface por host Sinopse: iftop -h | [-npblNBP] [-i interface] [-f filtro código] [-F rede/máscara] [-G rede6/máscara6]   -h exibe esta mensagem   -n não faz buscas de nomes de host -N nãot converte números de porta em serviços -p executar em modo promíscuo (mostrar tráfego entre outros hosts no mesmo segmento de rede) -b não'exibir um gráfico de barras de tráfego -B Exibir largura de banda em bytes -i interface escutar na interface nomeada -f filtro código usar código de filtro para selecionar pacotes contar (padrão: nenhum, mas apenas IP pacotes são contados) -F rede/máscara mostrar fluxos de tráfego /entrando/saindo da rede IPv4 -G rede6/máscara6 mostrar fluxos de tráfego /entrando/saindo da rede IPv6 -l exibir e contar tráfego -IPv6 link local (padrão: desativado) -P mostrar portas bem como os hosts -m limite define o limite superior para a escala de largura de banda -c configuração arquivo especifica um arquivo de configuração alternativo -t usar interface de texto sem ncurses Ordenação ordens: -o 2s Ordenar pela média de tráfego de (2s da primeira coluna) -o 10s Ordenar pela média de tráfego de (10s da segunda coluna) [padrão] -o 40s Ordenar pela média de tráfego de (40s da terceira coluna) -o origem Ordenar por endereço de origem -o destino Ordenar por endereço de destino As seguintes opções estão disponíveis apenas em combinação com -t -s num imprimir uma única saída de texto após num segundos, e depois sair -L num número de linhas a imprimir iftop, versão 1.0pre4 copyright (c) 2002 Paul Warren <pdw@ex-parrot.com> e colaboradores |
Ele precisa de permissão de root para funcionar. Estou simplesmente usando o sudo, já que meu usuário cloudsigma é um usuário sudoer. Também posso usar o comando ‘sudo su’ e então executar todos os comandos como usuário root.
O seguinte comando me daria uma exibição de todas as conexões na interface ‘ens3’ e as transações de dados:
|
1 2 |
sudo su iftop |
Uma maneira mais simples se o requisito for capturar o tráfego de dados por um determinado período de tempo:
|
1 |
iftop -t -s 30 |
O comando acima resumiria as transações de tráfego de dados para os próximos 30 segundos e, após a conclusão do tempo, forneceria uma tabela listando todo o uso de dados e taxas de transferência.
Embora o iftop forneça taxas de transferência em tempo real, ele não armazena os dados nem possui um painel para visualizarmos e vermos os padrões de forma intuitiva. Portanto, se quisermos ver as taxas de transferência de dados em tempo real, recomendamos o iftop. Para monitoramento de tráfego de dados por um período mais longo, recomendamos o vnStat.
Esperamos que você possa usar este guia a seu favor e aplicar os conceitos básicos de como usar o vnStat e o iftop para monitorar o consumo de dados dentro de uma VM.
Comentários
Nenhum comentário ainda. Seja o primeiro.