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
01/06/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

Status das soluções Cisco em nuvem em tempo real
Fast Ping
Máximo de interfaces no roteador Cisco (IDB)

You must be logged in to post a comment.

POSTS RECENTES

  • DevNet evolui: novas certificações CCNA, CCNP e CCIE Automation
    DevNet evolui: novas certificações CCNA, CCNP e CCIE Automation
    30/05/2025
  • Novidades na Certificação CCNP Collaboration da Cisco
    Novidades na Certificação CCNP Collaboration da Cisco
    29/05/2025
  • Cisco atualiza nomes das certificações de cibersegurança
    Cisco atualiza nomes das certificações de cibersegurança
    28/05/2025
  • Criminosos Utilizam Site Fake de Antivírus para Propagar Malware
    Criminosos Utilizam Site Fake de Antivírus para Propagar Malware
    28/05/2025
  • Brasil na Operação RapTor: Ação Global na Dark Web
    Brasil na Operação RapTor: Ação Global na Dark Web
    24/05/2025

Tags

#Microsoft #CobaltStrike #Ransomware #AtaquesCibernéticos #SegurançaDigital #Hackers #Fortra #HealthISAC #ProteçãoDeDados #TI #CyberThreats #SegurançaNaNuvem #Tecnologia #MicrosoftSecurity #Broadcom 2324 2010 2015 2017 2022 2023 2024 2350 200-125 25 anos 2560C 2960C 2960X 2975 350-050 3560-X 200-301 2009 200-120 100-101 #Multicloud #VMwareTransformation 1 ano 1.1.1.100 10 anos 10 Gbps 100 empresas 200-101 100 Gigabit 1905 1921 1925 1941 2.0 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
Gerenciar o consentimento
Para fornecer as melhores experiências, usamos tecnologias como cookies para armazenar e/ou acessar informações do dispositivo. O consentimento para essas tecnologias nos permitirá processar dados como comportamento de navegação ou IDs exclusivos neste site. Não consentir ou retirar o consentimento pode afetar negativamente certos recursos e funções.
Funcional Sempre ativo
O armazenamento ou acesso técnico é estritamente necessário para a finalidade legítima de permitir a utilização de um serviço específico explicitamente solicitado pelo assinante ou utilizador, ou com a finalidade exclusiva de efetuar a transmissão de uma comunicação através de uma rede de comunicações eletrónicas.
Preferências
O armazenamento ou acesso técnico é necessário para o propósito legítimo de armazenar preferências que não são solicitadas pelo assinante ou usuário.
Estatísticas
O armazenamento ou acesso técnico que é usado exclusivamente para fins estatísticos. O armazenamento técnico ou acesso que é usado exclusivamente para fins estatísticos anônimos. Sem uma intimação, conformidade voluntária por parte de seu provedor de serviços de Internet ou registros adicionais de terceiros, as informações armazenadas ou recuperadas apenas para esse fim geralmente não podem ser usadas para identificá-lo.
Marketing
O armazenamento ou acesso técnico é necessário para criar perfis de usuário para enviar publicidade ou para rastrear o usuário em um site ou em vários sites para fins de marketing semelhantes.
Gerenciar opções Gerenciar serviços Manage {vendor_count} vendors Leia mais sobre esses propósitos
Ver preferências
{title} {title} {title}