Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Tutorial para Medir Velocidade (Speedtest) no pfsense

    Scheduled Pinned Locked Moved Portuguese
    27 Posts 9 Posters 19.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • V
      victorfmaraujo
      last edited by

      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 python2

      Testes que realizei:

      Possuo 2 links de internet com nat

      192.168.25.254
      192.168.0.11

      Rodei 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.
      grafana.JPG
      grafana.JPG_thumb

      1 Reply Last reply Reply Quote 1
      • marcellocM
        marcelloc
        last edited by

        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.

        Treinamentos de Elite: http://sys-squad.com

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • V
          victorfmaraujo
          last edited by

          @marcelloc:

          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.

          1 Reply Last reply Reply Quote 0
          • V
            victorfmaraujo
            last edited by

            Atualizei o tutorial para quem utiliza na 2.2.x e gostaria de utilizar na 2.3

            1 Reply Last reply Reply Quote 0
            • A
              alandnc
              last edited by

              victorfmaraujo,

              Poderia descrever como fez para o zabbix verificar a velocidade? Estou tentando mas não funciona.

              Att,

              1 Reply Last reply Reply Quote 0
              • V
                victorfmaraujo
                last edited by

                @alandnc:

                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/$1

                Exemplo 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,
                
                1 Reply Last reply Reply Quote 0
                • A
                  alandnc
                  last edited by

                  Obrigado,

                  Estava imaginando que o próprio zabbiz ia fazer o comando diretamente no pfsense via ssh. Tentou isso?

                  1 Reply Last reply Reply Quote 0
                  • V
                    victorfmaraujo
                    last edited by

                    @alandnc:

                    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

                    1 Reply Last reply Reply Quote 0
                    • A
                      alandnc
                      last edited by

                      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

                      1 Reply Last reply Reply Quote 0
                      • A
                        alandnc
                        last edited by

                        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.

                        1 Reply Last reply Reply Quote 0
                        • A
                          alandnc
                          last edited by

                          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.

                          1 Reply Last reply Reply Quote 0
                          • V
                            victorfmaraujo
                            last edited by

                            @alandnc:

                            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.

                            Grafana.PNG
                            Grafana.PNG_thumb

                            1 Reply Last reply Reply Quote 0
                            • V
                              victorfmaraujo
                              last edited by

                              @alandnc:

                              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.

                              1 Reply Last reply Reply Quote 0
                              • G
                                gst.freitas
                                last edited by

                                Victor,

                                Publica no grupo do facebook do zabbix.. mas galera opinar.. essa é melhor maneira de medir o link ?

                                1 Reply Last reply Reply Quote 0
                                • V
                                  victorfmaraujo
                                  last edited by

                                  @gst.freitas:

                                  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.

                                  1 Reply Last reply Reply Quote 0
                                  • danilosv.03D
                                    danilosv.03
                                    last edited by

                                    @victorfmaraujo:

                                    @gst.freitas:

                                    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?


                                    :)
                                    |E-mail: danilosv.03@gmail.com
                                    |Skype: danilosv.03


                                    1 Reply Last reply Reply Quote 0
                                    • V
                                      victorfmaraujo
                                      last edited by

                                      @danilosv.03:

                                      @victorfmaraujo:

                                      @gst.freitas:

                                      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

                                      1 Reply Last reply Reply Quote 0
                                      • danilosv.03D
                                        danilosv.03
                                        last edited by

                                        Ele disse que os acesso remotos ficavam horrível etc. Dai perguntei se ele tinha conseguido resolver esse problema.


                                        :)
                                        |E-mail: danilosv.03@gmail.com
                                        |Skype: danilosv.03


                                        1 Reply Last reply Reply Quote 0
                                        • V
                                          victorfmaraujo
                                          last edited by

                                          @danilosv.03:

                                          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

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            aloisiobilck
                                            last edited by

                                            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 ?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.