SIGN IN YOUR ACCOUNT TO HAVE ACCESS TO DIFFERENT FEATURES

FORGOT YOUR PASSWORD?

FORGOT YOUR DETAILS?

AAH, WAIT, I REMEMBER NOW!
GET SOCIAL
  • BLOG
  • SECURITY ALERTS
  • CONTATO
  • PRIVACIDADE
  • SOBRE
  • LOGIN

Brainwork

  • Certificação
  • Cisco
  • Informação
  • Linux
  • Microsoft
  • Network
  • Security
  • UC
  • Virtualização
  • Wireless
  • Home
  • Linux
  • Monitorando o Home Office
10/05/2025

Monitorando o Home Office

Monitorando o Home Office

by André Ortega / quinta-feira, 08 abril 2021 / Published in Linux, Network

Depois de um ano trabalhando de casa e aproveitando o último fim de semana prolongado, resolvi monitorar a conectividade do home office.

Temos muitas opções disponíveis (MUITAS) para esse tipo de monitoramento, mas como o objetivo era usar um Raspberry Pi, um dos requisitos era que os softwares fossem leves. Além disso as métricas seriam baseadas em ICMP e DNS (posteriormente acabei adicionando verificação HTTP e dados sobre o WiFi, pois o Telegraf tinha esses plugins prontos) então não tinha porque usar soluções mais elaboradas/pesadas.

Com isso em mente, escolhi o combo Telegraf (para coletar as métricas), Prometheus (banco de dados) e Grafana (dashboard com os gráficos).

Instalando as aplicações

Vou descrever de forma geral pois a) muda a sintaxe de acordo com a distribuição Linux b) é possível encontrar tutoriais detalhados para cada aplicação. Espero que sirva de roteiro, ao menos.

Livro CCNA

Estou usando Raspberry Pi OS, que é baseado no Debian, mas funciona em outras plataformar (a primeira versão montei em uma máquina virtual com CentOs).

1) Instale o Telegraf.

sudo apt-get update && sudo apt-get install apt-transport-https
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -source /etc/os-release
test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update && sudo apt-get install telegraf
sudo systemctl start telegraf

2) Instale o Prometheus (baixe a versão adequada para seu sistema, e opcionalmente mude o nome do diretório).

sudo wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-arm64.tar.gz
tar xvfz prometheus-2.26.0.linux-arm64.tar.gz
cd prometheus-*

Pode transformar o Prometheus em serviço (recomendado), ou executar com o comando  ./prometheus.

3) Temos opção de instalar o Grafana localmente ou usar o Grafana Cloud (preferi usar na nuvem). Se for usar local, instale a aplicação.

apt install gnupg2 apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | tee -a /etc/apt/sources.list.d/grafana.list
apt update
apt install grafana
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server

4) Libere o Prometheus e o Grafana no firewall, caso esteja usando. O Grafana usa a porta 3000 e o Prometheus a porta 9090.

sudo ufw allow ssh
sudo ufw allow 3000/tcp
sudo ufw allow 9090/tcp

Configurando Telegraf

O Telegraf funciona baseado em plugins de input e output. Para input (coleta dos dados) usei os plugins Ping, DNS, HTTP e Wireless (não funciona no CentOS). Para output o plugin Prometheus (para onde os dados serão enviados).

As configurações são feitas no arquivo telegraf.conf.

## Input plugins
#Ping plugin
[[inputs.ping]]
urls = ["192.168.15.1", "1.1.1.1", "8.8.8.8", "208.67.222.222", "201.10.207.83", "186.230.16.42", "189.86.140.98", "google.com", "twitter.com", "amazon.in", "facebook.com"]
count = 4
ping_interval = 5.0
timeout = 2.0

#DNS plugin
[[inputs.dns_query]]
servers = ["208.67.222.222"]
domains = ["www.uol.com.br", "google.com", "twitter.com", "amazon.in", "facebook.com"]

#HTTP request
[[inputs.http_response]]
urls = ["https://site.desk.ms/?Login","https://cisco.com","https://outlook.live.com/owa/","https://site.pipedrive.com/auth/login?return"]
response_timeout = "3s"
method = "GET"
follow_redirects = true
insecure_skip_verify = false

#Wifi signal
[[inputs.wireless]]
## Sets 'proc' directory path
## If not specified, then default is /proc
## host_proc = "/proc"

## Output format plugins
#Prometheus
[[outputs.prometheus_client]]
listen = ":9283"
metric_version = 2

Depois de configurar reinicie o telegraf (service telegraf restart) e verifique o status.

pi@raspy:/etc/telegraf $ service telegraf status
* telegraf.service - The plugin-driven server agent for reporting metrics into InfluxDB
Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-04-07 17:03:34 -03; 29min ago
Docs: https://github.com/influxdata/telegraf
Main PID: 9375 (telegraf)
Tasks: 35 (limit: 4915)
CGroup: /system.slice/telegraf.service
|- 9375 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d

Configurando o Prometheus

A configuração do Prometheus é feita no arquivo prometheus.yml. Basicamente definimos o tempos de consulta, criamos um job e target para o telegraf (porta 9283) e definimos o Grafana Cloud como destino (para Grafana local não é necessário nenhuma configuração).

# my global config
global:
scrape_interval: 30s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 30s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
- job_name: 'ispmonitor'

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ['localhost:9090']
- targets: ['localhost:9283'] #telegraf

# Send metrics to Grafana Cloud
remote_write:
- url: https://prometheus-blocks-prod-us-central1.grafana.net/api/prom/push
basic_auth:
username: 11111
password: eyJrIjoiN2E2NWNiZTY1ZTZjMjg5MTVjZGI4NWEyNjZlNSIsxxxxxxxxxaWQiOjQ30NX0=

Se não tiver convertido o Prometheus em serviço, pode usar o netstat e o ps para verificar o status (e ./prometheus para iniciar o serviço).

pi@raspy:/etc/telegraf $ netstat -an | grep 9090
tcp6       0      0 :::9090                 :::*                    LISTEN

pi@raspy:/etc/telegraf $ ps -ef | grep prometheus
root      3418     1  0 Apr05 ?        00:00:00 sudo ./prometheus
root      3419  3418  4 Apr05 ?        01:39:13 ./prometheus
pi        4934  2405  0 11:49 pts/1    00:00:00 grep --color=auto prometheus

Neste ponto podemos acessar a interface gráfica do Prometheus (http://ip:9090) e ver os dados sendo populados. Procure por ping ou dns para ver as opções, selecione uma e clique em Execute.

Prometheus

Se não aparecer nada, verifique se os serviços estão rodando, se as portas (9283 e 9090) estão abertas (listen) e se o Telegraf está fazendo os pings.

Configurando o Grafana

No caso de instalação local, acesse a interface gráfica (http://ip:3000) e adicione o Prometheus como Data Source. Aponte o IP e porta do Prometheus, use Access = Server e HTTP Method = Get.

Grafana e Prometheus

Caso esteja usando o Grafana Cloud, acesse a sua conta e gere um token para o Prometheus (necessário adicionar o remote_write na config do Prometheus).

Grafama Cloud Token

E então faça a integração.

Grafana Cloud e Prometheus

Dashboard no Grafana

Finalmente a parte legal. Cada um pode montar sua dashboard da forma que preferir.

A minha ficou dividida em 5 blocos, onde:

  • Web Apps: Tenho a verficação HTTP (GET) de 4 URLs.
  • WiFi: Mostra a potência e qualidade do sinal do Raspberry Pi para meu roteador.
  • Availability: Monitora a disponibilidade de alguns serviços populares, usando ICMP.
  • ICMP: Tempo de reposta para serviços populares e links/serviços da empresa que trabalho. Também tem o gráfico de perda de pacotes.
  • DNS Reponse: Gráfico com o tempo de resposta para resolução de nome para algumas URLs populares.

Dashboard Home Office Connectivity

É possível baixar essa (e outras) dashboard do repositório Grafana. Note que após baixar e adicionar ao seu Grafana é necessário editar o data source, apontando para o seu Prometheus.

Referências:

  • Telegraf
  • Prometheus
  • Grafana

Até a próxima.

Relacionado

Tagged under: CiscoChampion, Grafana, HomeOffice, Monitoração, Prometheus, Telegraf

About André Ortega

Formando em Processamento de Dados e Ciência da Computação. Especialista Cisco (CCNP Enterprise e CCNP Security). Dezenove anos de experiência com redes e segurança.

What you can read next

VPN IPSec – Parte 3
VMware NSX: Configurando Logical Switches e Distributed Logical Routers
End Of Sales para o 4500

You must be logged in to post a comment.

POSTS RECENTES

  • Campanha de Spam no Brasil Abusa de Ferramentas RMM: Como Proteger Sua Empresa
    Campanha de Spam no Brasil Abusa de Ferramentas RMM: Como Proteger Sua Empresa
    09/05/2025
  • Vulnerabilidade CVE-2025-20188 no Cisco IOS XE Wireless LAN Controller: Como se Proteger
    Vulnerabilidade CVE-2025-20188 no Cisco IOS XE Wireless LAN Controller: Como se Proteger
    09/05/2025
  • LockBit Hackeado: Novo Ataque ao Grupo de Ransomware
    LockBit Hackeado: Novo Ataque ao Grupo de Ransomware
    07/05/2025
  • Protegendo a Tecnologia Operacional: Mitigações Primárias Contra Ameaças Cibernéticas
    Protegendo a Tecnologia Operacional: Mitigações Primárias Contra Ameaças Cibernéticas
    07/05/2025
  • Parâmetro VPN IPSec – Fase 1 e Fase 2
    Parâmetro VPN IPSec – Fase 1 e Fase 2
    06/05/2025

Tags

2024 #Broadcom 2324 #Multicloud 2015 2017 2022 2023 2350 200-301 25 anos 2560C 2960C 2960X 2975 350-050 3560-X 2009 2010 200-125 100-101 #VMwareTransformation 1 ano 1.1.1.100 10 anos 10 Gbps 100 empresas 200-120 100 Gigabit 1905 1921 1925 1941 2.0 200-101 3750-X 1900 2800 2900 2013 2011 1800 2960 3750 2960S

Arquivo

Login

  • Acessar
  • Feed de posts
  • Feed de comentários
  • WordPress.org

Acesse Também

  • Blog LabCisco
  • Café com Redes
  • Cisco IOS hints and tricks
  • Cisco Redes
  • Cisco Support Community
  • Coruja de TI
  • Homelaber Brasil
  • Internetwork Expert´s
  • Netfinders Brasil
  • Rota Default
  • TechRebels
  • The Cisco Learning Network

X

Blog: Verificando MD5 (hash) de um arquivo no Windows e Linux brainwork.com.br/2023/05/11/v… #Checksum #CiscoChampion #Hash

Hahahahah Muito bom twitter.com/TracketPacer/s…

Blog: Trocar ícone (favicon) da página guest no Cisco ISE brainwork.com.br/2023/04/24/t… #Cisco_Champion #Customização #Favicon

Blog: Cisco Champion 2023 brainwork.com.br/2023/04/10/c… #CiscoChampion

Blog: RFC 2324 (HTCPCP), conhece? brainwork.com.br/2023/04/01/r… #2324 #CiscoChampion #HTCPCP

Seguir @brainworkblog
  1. ./fernando em Aprenda Python e ganhe pontos para renovar as certificações CCNA, CCNP e CCIE
  2. André Ortega em Reset Cisco FTD (zerar FTD sem reinstalar)
  3. ALEX LIRA CAMACHO em Reset Cisco FTD (zerar FTD sem reinstalar)
  4. André Ortega em Atualizando Cisco 9300 (Install Mode)
  5. Dominique em Atualizando Cisco 9300 (Install Mode)

Entre em contato:

  • Web: www.brainwork.com.br
  • Facebook: fb.com/brainworkblog
  • Twitter: twitter.com/brainworkblog
  • Youtube: youtube.com/brainworkblog
  • Instagram: instagram.com/brainwork.blog
  • GET SOCIAL
Brainwork

© 2008 - 2022 Brainwork. Todos os direitos reservados.
Customização da página por Brainwork.

TOP