Loading repository data…
Loading repository data…
glaubergf / repository
Este script testa a velocidade da conexão à internet utilizando o Speedtest CLI oficial da Ookla. A mudança em relação à versão anterior baseada no pacote speedtest-cli do repositório do Debian foi motivada por maior confiabilidade, consistência de métricas e redução de erros intermites.

A Speedtest by Ookla é uma ferramenta amplamente reconhecida para medir o desempenho e a qualidade de conexões de internet. O Speedtest CLI oficial da Ookla é um aplicativo nativo para Linux, mantido pela própria Ookla, oferecendo maior fidelidade nos testes, métricas mais completas e melhor compatibilidade com a infraestrutura atual dos servidores Speedtest.
Este projeto foi originalmente baseado no speedtest-cli disponível nos repositórios do Debian. No entanto, após análises e testes práticos, o script foi migrado para utilizar o Speedtest CLI oficial da Ookla, obtido diretamente do site do fornecedor.
Além disso, o projeto utiliza ferramentas clássicas de shell como awk, sed e grep para extração robusta de métricas a partir do log do Speedtest, armazenando os dados em tabelas MariaDB para posterior visualização e análise no Grafana.
A troca não foi apenas estética ou de preferência, mas técnica e operacional.
Projeto não oficial, mantido por terceiros.
Saída de texto inconsistente entre versões.
Erros recorrentes de execução em determinados horários (00 e 30 minutos).
Falhas frequentes como:
Unable to connect to servers to test latencyHTTP Error 403: ForbiddenDependência do campo Hosted by, que em diversos cenários não é retornado, causando:
Métricas limitadas, sem informações detalhadas de jitter, packet loss e latência por fase.
Ferramenta oficial mantida pela Ookla.
Formato de saída estável e previsível.
Métricas avançadas de qualidade de conexão:
Menor incidência de bloqueios e erros 403.
Melhor aderência a ambientes de monitoramento contínuo.
$ speedtest
Speedtest by Ookla
Server: MegaOnda Telecom - São Gonçalo (id: 47921)
ISP: Elevalink Telecomunicacoes LTDA - ME
Idle Latency: 6.95 ms (jitter: 0.26ms, low: 6.70ms, high: 7.17ms)
Download: 365.28 Mbps (data used: 267.2 MB)
23.97 ms (jitter: 1.29ms, low: 7.42ms, high: 39.92ms)
Upload: 351.78 Mbps (data used: 565.7 MB)
14.87 ms (jitter: 2.43ms, low: 6.04ms, high: 230.09ms)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/f70ee69b-b848-4f7f-af34-8c5aa171d4c2
speedtest-cli do repositorio Debian.sudo apt remove -y speedtest-cli
Realizar download e instalação do binário oficial da Ookla.
wget https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-x86_64.tgz
Descompacte o arquivo .tgz baixado.
tar -xvzf ookla-speedtest-1.2.0-linux-x86_64.tgz
sudo mv speedtest /usr/local/bin/
sudo install -m 0755 speedtest /usr/local/bin/speedtest
Requisitos para o script funcionar corretamente:
MySQL/MariaDB instalado e em execução
mariadb_install.sh disponível no repositório principal do projeto.sudo apt install -y mariadb-server mariadb-client
Com isso, o script realiza as seguintes ações:
Define variáveis de conexão com o MariaDB (MySQL).
Cria o banco de dados speedtest_grafana.
Cria tabelas separadas para:
speedtest_results)speedtest_errors)O scriopt ookla-speedtest.sh implementa:
Execução controlada do comando speedtest.
Captura de stdout e stderr em arquivos de log distintos.
Extração robusta de métricas utilizando awk e sed, evitando dependência de strings frágeis.
Registro detalhado no banco de dados, incluindo:
Com o resultado da tabela speedtest_errors, o script oferece via dashboard Grafana:

Um CronJob permite a execução automática do script em intervalos definidos.
*/5 * * * * /bin/bash /path/do/seu/projeto/ookla-speedtest.sh
sudo service cron restart
GNU General Public License v3.0
Este programa é um software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU GPL conforme publicada pela Free Software Foundation, seja a versão 3 da Licença, ou qualquer versão posterior.
Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM.
Consulte: https://www.gnu.org/licenses/gpl-3.0.html
Copyright (c) 2024 Glauber GF (mcnd2)