Tutorial para Medir Velocidade (Speedtest) no pfsense
-
Pessoal, boa tarde
Recurso importante para medirmos a velocidade individual de nossos links WAN diretamente no pfsense e sem a necessidade de acessar uma estação e criarmos regras de firewall, direcionando o tráfego por determinado Gateway.
Obs: quem não quiser instalar o wget, pode fazer o download dos arquivos manualmente no github e criar o script através do pacote filer, a vantagem está no fato desse arquivo ficar no backup do pfsense.
Abaixo o necessário.
No terminal (Pode ser no command prompt ou putty obviamente).
##############Versão 2.2.x##############
pkg install wget
pkg install python
pkg install unzip
rehash
mkdir /root/temp
cd /root/temp
wget https://github.com/sivel/speedtest-cli/archive/master.zip
unzip master.zip
cd speedtest-cli-master/
chmod 755 speedtest_cli.py
mv speedtest_cli.py /usr/bin
##############Versão 2.3##############verifique se possui o python com pkg version | grep python. Caso tenha feito uma instalação limpa do pfsense, um amigo me informou que a instalação dele que é limpa não possuia e teve que instalar o mesmo
mkdir /root/temp
cd /root/temp
fetch https://github.com/sivel/speedtest-cli/archive/master.zip
unzip master.zip
cd speedtest-cli-master/
chmod 755 speedtest_cli.py
mv speedtest_cli.py /usr/bin
editar o arquivo /usr/bin/speedtest_cli.py e alterar a primeira linha #!/usr/bin/env python para #!/usr/bin/env python2Testes que realizei:
Possuo 2 links de internet com nat
192.168.25.254
192.168.0.11Rodei o comando /usr/bin/speedtest_cli.py
Me retorna o download e Upload do meu Link default
para selecionar o link de internet, basta adicionar o parâmetro –source IP_INTERFACE
/usr/bin/speedtest_cli.py --source 192.168.25.254
[2.2.6-RELEASE][admin@fw1.compore.intra]/root: /usr/bin/speedtest_cli.py --source 192.168.25.254 Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from Global Village Telecom (177.xx.xx.xx)... Selecting best server based on latency... Hosted by TIM Brasil (Rio de Janeiro) [4.09 km]: 11.427 ms Testing download speed........................................ Download: 16.34 Mbit/s Testing upload speed.................................................. Upload: 0.86 Mbit/s
[2.2.6-RELEASE][admin@fw1.corporate.intra]/root/temp/speedtest-cli-master: /usr/bin/speedtest_cli.py --source 192.168.0.11 Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from NET Virtua (179.xx.xx.xx)... Selecting best server based on latency... Hosted by Claro (Rio de Janeiro) [13.50 km]: 12.524 ms Testing download speed........................................ Download: 52.22 Mbit/s Testing upload speed.................................................. Upload: 2.98 Mbit/s
Obs: Funciona se colocar –source IP da Interface VIP do HA
Explorando as possibilidades.
Utilizando Zabbix, é possível filtrar esses dados e gerar de tempos em tempos (Não muito frequentemente já que o script no momento de execução faz um download) esses dados e armazenar em banco de dados utilizando UserParameter.
Exemplo de representação
Depois estarei postando aqui a criação dos ítens.
-
Obrigado pela contribuição. Tópico fixado nos tutorias
https://forum.pfsense.org/index.php?topic=44267.msg239896#msg239896
Só uma observação.
Quando se mede um link em uso, dependendo da utilização, você vai "medir" um valor menor que o realmente utilizado no momento já que o trafego do speedtest está competindo com o resto da navegação.
-
Obrigado pela contribuição. Tópico fixado nos tutorias
https://forum.pfsense.org/index.php?topic=44267.msg239896#msg239896
Só uma observação.
Quando se mede um link em uso, dependendo da utilização, você vai "medir" um valor menor que o realmente utilizado no momento já que o trafego do speedtest está competindo com o resto da navegação.
Exatamente Marcelo, Observação bem lembrada.
-
Atualizei o tutorial para quem utiliza na 2.2.x e gostaria de utilizar na 2.3
-
victorfmaraujo,
Poderia descrever como fez para o zabbix verificar a velocidade? Estou tentando mas não funciona.
Att,
-
victorfmaraujo,
Poderia descrever como fez para o zabbix verificar a velocidade? Estou tentando mas não funciona.
UserParameter
coloco uma tarefa no cron para cada Link e no zabbix, utilizo um UserParameter para coletar o conteúdo desse log.
Ex do Userparameter
UserParameter=velocidade* ,cat /var/speedtest/$1Exemplo do Cron (Rodando a cada 10 minutos) /usr/local/bin/python /usr/bin/speedtest_cli.py –source 192.168.25.254 --simple > /var/speedtest/link1.log /usr/local/bin/python /usr/bin/speedtest_cli.py --source 192.168.0.11 --simple > /var/speedtest/link2.log E no Zabbix Server, crie um ítem(Para cada Link) do tipo Zabbix Agent onde a key seja: velocidade[link1.log] velocidade[link2.log] Tipo Texto (Ainda me falta tempo para coletar em modo Octal para gerar gráficos em bytes). Os exemplos acima são um CTRL + C CTRL + V das minhas confs Att,
-
Obrigado,
Estava imaginando que o próprio zabbiz ia fazer o comando diretamente no pfsense via ssh. Tentou isso?
-
Obrigado,
Estava imaginando que o próprio zabbiz ia fazer o comando diretamente no pfsense via ssh. Tentou isso?
Tentei, o problema é que o script faz um teste que pode demorar um pouco para retornar o resultado.
não é igual rodar um ls -l | wc -l rs
-
victorfmaraujo,
Valeu ai pela dica, poderia me tirar outra duvida? Tenho 3 interface WAN(OI - 20MB e NET 120MB) e duas redes LAN (01 - 192.168.10.1 e 10.30.0.1) quando executo o comando:
/usr/local/bin/python /usr/bin/speedtest_cli.py –source 192.168.10.1
/usr/local/bin/python /usr/bin/speedtest_cli.py --source 10.30.0.1
Qualquer dos dois a medição fica pela wan da OI, mesmo a rede 10.30.0.1 está com uma regra para sair pela NET. Observo que quando mudo lá em gateway padrão ele muda.Att
-
victorfmaraujo,
Poderia me ajudar na finalização do tutorial? Estou postando um print com as configurações no pfsens e o item no zabbix, via comando funciona normal mas o item não é suportado.
-
Vctor,
Até agora já consigo coletar os dados da conexão lá no zabbix, porém não consigo gerar os gráficos uma vez que as informações são em texto, e os gráficos são apenas para valores numéricos, como fez para gerar o gráfico?
grato ai pela dica.
-
Vctor,
Até agora já consigo coletar os dados da conexão lá no zabbix, porém não consigo gerar os gráficos uma vez que as informações são em texto, e os gráficos são apenas para valores numéricos, como fez para gerar o gráfico?
grato ai pela dica.
No grafana? Olhe a imagem em anexo que estou mandando agora.
-
victorfmaraujo,
Valeu ai pela dica, poderia me tirar outra duvida? Tenho 3 interface WAN(OI - 20MB e NET 120MB) e duas redes LAN (01 - 192.168.10.1 e 10.30.0.1) quando executo o comando:
/usr/local/bin/python /usr/bin/speedtest_cli.py –source 192.168.10.1
/usr/local/bin/python /usr/bin/speedtest_cli.py --source 10.30.0.1
Qualquer dos dois a medição fica pela wan da OI, mesmo a rede 10.30.0.1 está com uma regra para sair pela NET. Observo que quando mudo lá em gateway padrão ele muda.Att
Nunca passei por isso, realmente é estrnaho.
-
Victor,
Publica no grupo do facebook do zabbix.. mas galera opinar.. essa é melhor maneira de medir o link ?
-
Victor,
Publica no grupo do facebook do zabbix.. mas galera opinar.. essa é melhor maneira de medir o link ?
Melhor maneira não é, porém pode ser que o sysadmin queira ter um Histórico de como está o seu link de internet de tempos em tempos, comparando a utilização da interface com a velocidade do link já que fica em histórico com data e hora.
Já me ajudou quando um de meus clientes usava FailOver de WAN e sempre reclamava que quando o segundo link assumia (Possuía a mesma velocidade do principal) a navegação ficava extremamente lenta. Olhando nos logs de texto armazenados no zabbix que o link secundário (Estando em Standby) nunca alcançava a velocidade contratada, então o responsável pelo contrato ligou para o provedor e descobriu que simplesmente MUDARAM o plano dele.
Eu mesmo já precisei por várias vezes testar a velocidade dos links, porém remotamente (E a conexão remota via RDP ou Team viewer era horível), entretanto por SSH estava satisfatório.
-
Victor,
Publica no grupo do facebook do zabbix.. mas galera opinar.. essa é melhor maneira de medir o link ?
Melhor maneira não é, porém pode ser que o sysadmin queira ter um Histórico de como está o seu link de internet de tempos em tempos, comparando a utilização da interface com a velocidade do link já que fica em histórico com data e hora.
Já me ajudou quando um de meus clientes usava FailOver de WAN e sempre reclamava que quando o segundo link assumia (Possuía a mesma velocidade do principal) a navegação ficava extremamente lenta. Olhando nos logs de texto armazenados no zabbix que o link secundário (Estando em Standby) nunca alcançava a velocidade contratada, então o responsável pelo contrato ligou para o provedor e descobriu que simplesmente MUDARAM o plano dele.
Eu mesmo já precisei por várias vezes testar a velocidade dos links, porém remotamente (E a conexão remota via RDP ou Team viewer era horível), entretanto por SSH estava satisfatório.
Mais neste caso para o acesso remoto você conseguiu encontrar alguma solução?
-
Victor,
Publica no grupo do facebook do zabbix.. mas galera opinar.. essa é melhor maneira de medir o link ?
Melhor maneira não é, porém pode ser que o sysadmin queira ter um Histórico de como está o seu link de internet de tempos em tempos, comparando a utilização da interface com a velocidade do link já que fica em histórico com data e hora.
Já me ajudou quando um de meus clientes usava FailOver de WAN e sempre reclamava que quando o segundo link assumia (Possuía a mesma velocidade do principal) a navegação ficava extremamente lenta. Olhando nos logs de texto armazenados no zabbix que o link secundário (Estando em Standby) nunca alcançava a velocidade contratada, então o responsável pelo contrato ligou para o provedor e descobriu que simplesmente MUDARAM o plano dele.
Eu mesmo já precisei por várias vezes testar a velocidade dos links, porém remotamente (E a conexão remota via RDP ou Team viewer era horível), entretanto por SSH estava satisfatório.
Mais neste caso para o acesso remoto você conseguiu encontrar alguma solução?
não entendi sua dúvida
-
Ele disse que os acesso remotos ficavam horrível etc. Dai perguntei se ele tinha conseguido resolver esse problema.
-
Ele disse que os acesso remotos ficavam horrível etc. Dai perguntei se ele tinha conseguido resolver esse problema.
isso é problema do link ser muito ruim para acesso remoto (estabelecimento de conexão criptografada, renderização de tela, saturação do link etc), nada à ser feito quanto à isso
-
Bom dia,
Eu tenho DOIS link de Internet, VIVO e NET,
Ao executar o comando para sair pela NET, ele sai pelo link Default que é a VIVO,/root/speedtest-cli-master/speedtest.py –source 172.16.0.14
Retrieving speedtest.net configuration...
Testing from Vivo (XXXXXXXX)...
Retrieving speedtest.net server list...Alguma sugestão ?