Instalação de Software · 26 min read · Nov 24, 2025
Como Instalar o TIG Stack (Telegraf, InfluxDB e Grafana) no Debian 12

O TIG (Telegraf, InfluxDB e Grafana) Stack é um acrônimo para uma plataforma de ferramentas de código aberto que facilita a coleta, armazenamento, graficação e alerta de métricas do sistema. Você pode monitorar e visualizar métricas como memória, espaço em disco, usuários logados, carga do sistema, uso de swap, tempo de atividade, processos em execução, etc. de um só lugar. As ferramentas usadas no stack são as seguintes:
- Telegraf - é um agente de coleta de métricas de código aberto para coletar e enviar dados e eventos de bancos de dados, sistemas e sensores IoT. Ele suporta vários plugins de saída, como InfluxDB, Graphite, Kafka, etc., para os quais pode enviar os dados coletados.
- InfluxDB - é um banco de dados de séries temporais de código aberto escrito na linguagem Go. Ele é otimizado para armazenamento rápido e de alta disponibilidade e é adequado para qualquer coisa que envolva grandes quantidades de dados com carimbo de data/hora, incluindo métricas, eventos e análises em tempo real.
- Grafana - é um conjunto de visualização e monitoramento de dados de código aberto. Ele suporta vários plugins de entrada, como Graphite, ElasticSearch, InfluxDB, etc. Ele fornece um belo painel e análises de métricas, permitindo que você visualize e monitore qualquer tipo de métricas do sistema e dados de desempenho.
Neste tutorial, você aprenderá como instalar e configurar o TIG Stack em um único servidor Debian 12.
Pré-requisitos
- Um servidor executando Debian 12 com um mínimo de 1 GB de RAM.
- Um usuário não-sudo com privilégios de root.
- O Firewall sem complicações (UFW) está habilitado e em execução.
- Um Nome de Domínio Qualificado (FQDN) como
grafana.example.comapontando para seu servidor. - Uma conta SMTP com um serviço de e-mail como Amazon SES ou Mailgun para receber notificações por e-mail para alertas de serviço.
- Certifique-se de que tudo está atualizado.
$ sudo apt update && sudo apt upgrade - Alguns pacotes essenciais são necessários para o tutorial e para o Craft CMS funcionar. Alguns deles já estarão no seu servidor.
$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
Passo 1 - Configurar o Firewall
Antes de instalar qualquer pacote, o primeiro passo é configurar o firewall para abrir portas para InfluxDB e Grafana.
Verifique o status do firewall.
$ sudo ufw status
Você deve ver algo como o seguinte.
Status: ativo
Para Ação De
-- ------ ----
OpenSSH PERMITIR Em qualquer lugar
OpenSSH (v6) PERMITIR Em qualquer lugar (v6)
Abra a porta 8086 para InfluxDB e 3000 para o servidor Grafana.
$ sudo ufw allow 8086
$ sudo ufw allow 3000
Permita as portas HTTP e HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Verifique o status novamente para confirmar.
$ sudo ufw status
Status: ativo
Para Ação De
-- ------ ----
OpenSSH PERMITIR Em qualquer lugar
8086 PERMITIR Em qualquer lugar
3000 PERMITIR Em qualquer lugar
80/tcp PERMITIR Em qualquer lugar
443 PERMITIR Em qualquer lugar
OpenSSH (v6) PERMITIR Em qualquer lugar (v6)
8086 (v6) PERMITIR Em qualquer lugar (v6)
3000 (v6) PERMITIR Em qualquer lugar (v6)
80/tcp (v6) PERMITIR Em qualquer lugar (v6)
443 (v6) PERMITIR Em qualquer lugar (v6)
Passo 2 - Instalar o InfluxDB
Usaremos o repositório oficial do InfluxDB para instalá-lo.
Baixe a chave GPG do InfluxDB.
$ wget -q https://repos.influxdata.com/influxdata-archive_compat.key
Importe a chave GPG para o servidor.
$ echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
influxdata-archive_compat.key: OK
Importe o repositório do InfluxDB.
$ echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
Atualize a lista de repositórios do sistema.
$ sudo apt update
Você tem a opção de instalar o InfluxDB 1.8.x ou 2.0.x. No entanto, é melhor usar a versão mais recente. Instale o InfluxDB.
$ sudo apt install influxdb2
Inicie o serviço do InfluxDB.
$ sudo systemctl start influxdb
Verifique o status do serviço.
$ sudo systemctl status influxdb
? influxdb.service - InfluxDB é um banco de dados de séries temporais de código aberto e distribuído
Carregado: carregado (/lib/systemd/system/influxdb.service; habilitado; preset: habilitado)
Ativo: ativo (em execução) desde Ter 2024-01-02 02:39:41 UTC; 1s atrás
Docs: https://docs.influxdata.com/influxdb/
Processo: 5584 ExecStart=/usr/lib/influxdb/scripts/influxd-systemd-start.sh (código=exited, status=0/SUCCESS)
PID Principal: 5585 (influxd)
Tarefas: 8 (limite: 2299)
Memória: 53.1M
CPU: 735ms
CGroup: /system.slice/influxdb.service
??5585 /usr/bin/influxd
........
Passo 3 - Criar Banco de Dados e Credenciais de Usuário do InfluxDB
Para armazenar os dados do Telegraf, você precisa configurar o banco de dados Influx e o usuário.
O InfluxDB vem com uma ferramenta de linha de comando chamada influx para interagir com o servidor InfluxDB. Pense no influx como a ferramenta de linha de comando mysql.
Execute o seguinte comando para realizar a configuração inicial do Influx.
$ influx setup
> Bem-vindo ao InfluxDB 2.0!
? Por favor, digite seu nome de usuário principal navjot
? Por favor, digite sua senha *************
? Por favor, digite sua senha novamente *************
? Por favor, digite o nome da sua organização principal howtoforge
? Por favor, digite o nome do seu bucket principal tigstack
? Por favor, digite seu período de retenção em horas, ou 0 para infinito 360
? Configurar com esses parâmetros?
Nome de usuário: navjot
Organização: howtoforge
Bucket: tigstack
Período de Retenção: 360h0m0s
Sim
Usuário Organização Bucket
navjot howtoforge tigstack
Você precisa configurar seu nome de usuário inicial, senha, nome da organização, o nome do bucket principal para armazenar dados e o período de retenção em horas para esses dados. Seus detalhes são armazenados no arquivo /home/username/.influxdbv2/configs.
Você também pode realizar essa configuração lançando a URL http:// em seu navegador. Depois de realizar a configuração inicial, você pode fazer login na URL com as credenciais criadas acima.

Você deve ser recebido com o seguinte painel.

O processo de configuração inicial cria um token padrão que tem acesso total de leitura e gravação a todas as organizações no banco de dados. Você precisa de um novo token por motivos de segurança que se conectará apenas à organização e ao bucket que desejamos conectar.
Para criar um novo token, clique no seguinte ícone na barra lateral esquerda e clique no link Tokens da API para prosseguir.
Você será levado à página Tokens da API. Aqui, você verá o token padrão que criamos no momento da configuração inicial.

Clique no botão Gerar Token da API e selecione a opção Token da API Personalizado para lançar um novo popup de sobreposição. Dê um nome ao Token (telegraf) e expanda a seção Recursos e selecione o bucket padrão que criamos em ambas as seções Leitura e Gravação.

Clique em Gerar para finalizar a criação do token. Clique no botão COPIAR PARA A AREA DE TRANSFERÊNCIA para copiar o token. O botão pode não funcionar em alguns casos, então certifique-se de confirmar antes de dispensar o popup.

Salve-o por enquanto, pois precisaremos dele mais tarde.
Isso conclui a instalação e configuração do InfluxDB. Em seguida, precisamos instalar o Telegraf.
Passo 4 - Instalar o Telegraf
Telegraf e InfluxDB compartilham o mesmo repositório. Isso significa que você pode instalar o Telegraf diretamente.
$ sudo apt install telegraf
O serviço do Telegraf é habilitado e iniciado automaticamente durante a instalação.
Telegraf é um agente orientado a plugins e possui 4 tipos de plugins:
- Plugins de entrada coletam métricas.
- Plugins de processador transformam, decoram e filtram métricas.
- Plugins de agregação criam e agregam métricas.
- Plugins de saída definem os destinos para onde as métricas são enviadas, incluindo o InfluxDB.
Telegraf armazena sua configuração para todos esses plugins no arquivo /etc/telegraf/telegraf.conf. O primeiro passo é conectar o Telegraf ao InfluxDB habilitando o plugin de saída influxdb_v2. Abra o arquivo /etc/telegraf/telegraf.conf para edição.
$ sudo nano /etc/telegraf/telegraf.conf
Encontre a linha [[outputs.influxdb_v2]] e descomente removendo o # na frente dela. Edite o código abaixo dela da seguinte maneira.
# # Configuração para enviar métricas para o InfluxDB 2.0
[[outputs.influxdb_v2]]
# ## As URLs dos nós do cluster InfluxDB.
# ##
# ## Múltiplas URLs podem ser especificadas para um único cluster, apenas UMA das
# ## urls será escrita em cada intervalo.
# ## ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
urls = ["http://127.0.0.1:8086"]
#
# ## Token para autenticação.
token = "$INFLUX_TOKEN"
#
# ## A organização é o nome da organização que você deseja escrever.
organization = "howtoforge"
#
# ## Bucket de destino para escrever.
bucket = "tigstack"
Cole o valor do token do InfluxDB salvo anteriormente no lugar da variável $INFLUX_TOKEN no código acima.
Pesquise pela linha INPUT PLUGINS e você verá os seguintes plugins de entrada habilitados por padrão.
# Ler métricas sobre uso de cpu
[[inputs.cpu]]
## Se deve relatar estatísticas por cpu ou não
percpu = true
## Se deve relatar estatísticas totais do sistema de cpu ou não
totalcpu = true
## Se verdadeiro, coleta métricas de tempo de CPU brutas
collect_cpu_time = false
## Se verdadeiro, compute e relatar a soma de todos os estados de CPU não ociosos
report_active = false
## Se verdadeiro e a informação estiver disponível, então adicione tags core_id e physical_id
core_tags = false
# Ler métricas sobre uso de disco por ponto de montagem
[[inputs.disk]]
## Por padrão, as estatísticas serão coletadas para todos os pontos de montagem.
## Definir mount_points restringirá as estatísticas apenas aos pontos de montagem especificados.
# mount_points = ["/"]
## Ignorar pontos de montagem por tipo de sistema de arquivos.
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
## Ignorar pontos de montagem por opções de montagem.
## O comando 'mount' relata opções de todos os montagens entre parênteses.
## Montagens bind podem ser ignoradas com a opção especial 'bind'.
# ignore_mount_opts = []
# Ler métricas sobre IO de disco por dispositivo
[[inputs.diskio]]
....
....
# Obter estatísticas do kernel de /proc/stat
[[inputs.kernel]]
# sem configuração
# Ler métricas sobre uso de memória
[[inputs.mem]]
# sem configuração
# Obter o número de processos e agrupá-los por status
[[inputs.processes]]
# sem configuração
# Ler métricas sobre uso de memória swap
[[inputs.swap]]
# sem configuração
# Ler métricas sobre carga do sistema e tempo de atividade
[[inputs.system]]
# sem configuração
Você pode configurar plugins de entrada adicionais dependendo de sua necessidade, incluindo Apache Server, contêineres Docker, Elasticsearch, firewall iptables, Kubernetes, Memcached, MongoDB, MySQL, Nginx, PHP-fpm, Postfix, RabbitMQ, Redis, Varnish, Wireguard, PostgreSQL, etc.
Uma vez que você tenha terminado, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie o serviço do Telegraf uma vez que você tenha terminado de aplicar as alterações.
$ sudo systemctl restart telegraf
Passo 5 - Verificar se as estatísticas do Telegraf estão sendo armazenadas no InfluxDB
Antes de prosseguir, você precisa verificar se as estatísticas do Telegraf estão sendo coletadas corretamente e alimentadas no InfluxDB. Abra a interface do usuário do InfluxDB em seu navegador, clique no segundo ícone da barra lateral esquerda e selecione o menu Buckets.

Clique em tigstack e você deve ser recebido com a seguinte página.

Clique no nome do bucket e depois clique em um dos valores no filtro _measurement, e continue clicando em outros valores à medida que eles aparecem. Uma vez que você tenha terminado, clique no botão Enviar. Você deve ver um gráfico na parte superior. Você pode precisar esperar um pouco para que os dados apareçam. Nós mudamos o intervalo de tempo de Última 1 h para Últimos 5m para gerar um gráfico em uma área maior.

Isso deve confirmar que os dados estão sendo passados corretamente.
Passo 6 - Instalar o Grafana
Usaremos o repositório oficial do Grafana para instalá-lo. Importe a chave GPG do Grafana.
$ sudo mkdir -p /etc/apt/keyrings/
$ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Adicione o repositório ao seu sistema.
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Se você quiser instalar a versão beta do Grafana, adicione o seguinte repositório em vez disso.
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Atualize a lista de repositórios do sistema.
$ sudo apt update
Instale o Grafana.
$ sudo apt install grafana
Inicie e habilite o serviço do Grafana.
$ sudo systemctl enable grafana-server --now
Verifique o status do serviço.
$ sudo systemctl status grafana-server
? grafana-server.service - Instância do Grafana
Carregado: carregado (/lib/systemd/system/grafana-server.service; habilitado; preset: habilitado)
Ativo: ativo (em execução) desde Ter 2024-01-02 03:48:01 UTC; 3s atrás
Docs: http://docs.grafana.org
PID Principal: 8769 (grafana)
Tarefas: 7 (limite: 2299)
Memória: 42.6M
CPU: 1.804s
CGroup: /system.slice/grafana-server.service
??8769 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana cfg:default.paths...
.......
Passo 7 - Configurar a Fonte de Dados do Grafana
Lance a URL http:// em seu navegador e a seguinte página de login do Grafana deve recebê-lo.

Faça login com o nome de usuário padrão admin e a senha admin. Em seguida, você precisa configurar uma nova senha padrão.

Você será recebido com a seguinte página inicial do Grafana. Clique no botão Adicionar sua primeira fonte de dados.

Clique no botão InfluxDB.

Na próxima página, selecione Flux no menu suspenso como a linguagem de consulta. Você pode usar InfluxQL como a linguagem de consulta, mas é mais complicado de configurar, pois suporta apenas InfluxDB v1.x por padrão. Flux suporta InfluxDB v2.x e é mais fácil de configurar.

Insira os seguintes valores.
URL: http://localhost:8086 Detalhes de Autenticação Básica Usuário: navjot Senha:
Detalhes do InfluxDB Organização: howtoforge Token: Bucket Padrão: tigstack

Clique no botão Salvar e testar e você deve ver uma mensagem de confirmação verificando que a configuração foi bem-sucedida.

Passo 8 - Configurar Painéis do Grafana
O próximo passo é configurar os Painéis do Grafana. Clique no menu de hambúrguer à esquerda de Início e clique em Painéis para abrir a tela de Criação de Painéis.

Clique no botão Criar Painel para prosseguir.

Na próxima página, clique no botão Adicionar visualização para lançar a sobreposição e clique em influxdb-1 para selecioná-lo como a fonte de dados.

Você será levado à seguinte página Editar Painel.

Cole o seguinte código no Editor de Consultas.
from(bucket: "NAMEOFYOUBUCKET")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "cpu")
|> filter(fn: (r) => r["_field"] == "usage_idle")
|> filter(fn: (r) => r["cpu"] == "cpu-total")
|> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> map(fn: (r) => ({ r with _value: r._value * -1.0 + 100.0 }))
|> toFloat()
|> yield(name: "mean")
Use o nome do bucket que usamos acima. E o nome do host que você pode recuperar do arquivo /etc/hostname.
O código acima calculará o Uso da CPU e gerará um gráfico para ele. Dê um Título ao Painel.

Clique no botão Inspetor de Consultas e depois clique no botão Atualizar para verificar se sua consulta está funcionando corretamente. Clique no ícone de cruz para fechar o inspetor.

Você também pode nomear o eixo usando o campo Rótulo à direita na seção Eixo.

Clique no botão Aplicar para salvar o painel. Clique no botão Salvar Painel, uma vez terminado.

Dê um nome ao painel e clique em Salvar para finalizar.

Ele abrirá o painel e depois clique no botão Adicionar Visualização para criar outro painel.

Repita o processo criando outro painel para o Uso de RAM.
from(bucket: "NAMEOFYOUBUCKET")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "mem")
|> filter(fn: (r) => r["_field"] == "used_percent")
|> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> yield(name: "mean")
Use o seguinte código para exibir o Uso do HDD.
from(bucket: "NAMEOFYOURBUCKET")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "disk")
|> filter(fn: (r) => r["_field"] == "used")
|> filter(fn: (r) => r["path"] == "/")
|> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> map(fn: (r) => ({ r with _value: r._value / 1000000.0 }))
|> toFloat()
|> yield(name: "mean")
Você pode criar um número ilimitado de painéis.
O código acima é baseado na linguagem de script Flux. Felizmente, você não precisa aprender a linguagem para escrever consultas. Você pode gerar a consulta a partir da URL do InfluxDB. Embora aprender a linguagem possa beneficiar na otimização das consultas.
Você precisa voltar ao painel do InfluxDB e abrir a página Explorar para obter a consulta.
Clique no nome do bucket e depois clique em um dos valores no filtro _measurement, e continue clicando em outros valores à medida que eles aparecem. Uma vez que você tenha terminado, clique no botão Editor de Script e você deve ver a seguinte página. O gráfico também deve ser atualizado.


Copie a consulta mostrada e agora você pode usá-la no painel do Grafana para construir seus gráficos.
Passo 9 - Configurar Alertas e Notificações
O uso principal de configurar monitores é receber alertas a tempo quando o valor ultrapassa um certo limite.
O primeiro passo é definir o destino onde você deseja receber alertas. Você pode receber notificações via E-mail, Slack, Kafka, Google Hangouts Chat, Microsoft Teams, Telegram, etc.
Nós habilitaremos notificações por e-mail para nosso tutorial. Para configurar notificações por e-mail, precisamos configurar primeiro o serviço SMTP. Abra o arquivo /etc/grafana/grafana.ini para configurar o SMTP.
$ sudo nano /etc/grafana/grafana.ini
Encontre a seguinte linha [smtp] nele. Descomente as seguintes linhas e insira os valores para o servidor SMTP personalizado.
[smtp]
enabled = true
host = email-smtp.us-west-2.amazonaws.com:587
user = SEU NOME DE USUÁRIO
# Se a senha contiver # ou ; você deve envolvê-la com três aspas. Ex """#senha;"""
password = SUA SENHA DE USUÁRIO
;cert_file =
;key_file =
;skip_verify = false
from_address = [email protected]
from_name = HowtoForge Grafana
# Identidade EHLO no diálogo SMTP (padrão é instance_name)
;ehlo_identity = dashboard.example.com
# Política startTLS do SMTP (padrão é 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie o servidor Grafana para aplicar as configurações.
$ sudo systemctl restart grafana-server
Abra a página do Grafana, clique no ícone de Alerta e clique em Pontos de contato.

O Grafana cria e configura automaticamente um ponto de contato de e-mail padrão que deve ser configurado com o endereço de e-mail correto. Clique no botão de edição ao lado do ponto de contato grafana-default-email.

Insira os detalhes para configurar o canal de notificação por e-mail.

Se você quiser enviar uma mensagem adicional, clique no link Configurações Opcionais de E-mail e insira a mensagem.

Clique em Testar para abrir o popup e depois clique no botão Enviar notificação de teste para ver se as configurações de e-mail estão funcionando. Clique em Salvar ponto de contato quando terminar.
Você deve receber o seguinte e-mail confirmando as configurações.

Agora que configuramos os canais de notificação, precisamos configurar alertas sobre quando receber esses e-mails. Para configurar os alertas, você precisa voltar aos painéis do dashboard.
Volte para a tela de Painéis. Clique no painel que acabamos de criar e você verá sua página inicial com diferentes painéis. Para editar o painel, clique no nome do painel e um menu suspenso aparecerá. Clique no link Editar para prosseguir.

Clique no Painel de Alerta e clique no botão Nova regra de alerta para configurar um novo alerta. Estamos criando um alerta para o painel de uso da CPU.

Agora você pode configurar as condições sob as quais o Grafana enviará o alerta. Clique no link de menu suspenso Opções e selecione o intervalo de tempo padrão (agora-6h até agora) para alterar o intervalo de tempo para os Últimos 15 minutos, o que significa que ele verificará desde 15 minutos atrás até agora.

Por padrão, o tipo de alerta selecionado é o alerta gerenciado pelo Grafana. Existem duas expressões selecionadas por padrão. Exclua-as pressionando o botão de lixo contra elas. Selecione o menu suspenso Adicionar expressão e selecione a Condição Clássica como o tipo de expressão.


Clique em Definir como condição de alerta para selecionar a expressão escolhida para enviar os alertas. Fazer isso mudará a caixa de expressão como mostrado abaixo.

Condições
O Grafana funciona com uma consulta do seguinte formato para determinar quando lançar um alerta.
avg() DA consulta(A) ESTÁ ACIMA 0.8
avg() controla como o valor para cada série deve ser reduzido a um valor comparável em relação ao limite. Você pode clicar no nome da função para selecionar uma função diferente, como avg(), min(), max(), sum(), count(), etc.
query(A) A letra entre parênteses define qual consulta executar na aba Métricas.
ESTÁ ABAIXO 14 Define o tipo de limite e o valor do limite. Você pode clicar em ESTÁ ABAIXO para selecionar um tipo de limite diferente.
Você pode adicionar uma segunda condição abaixo dela clicando no botão + abaixo da primeira condição. Atualmente, você pode usar apenas os operadores E e OU entre várias condições.
Em seguida, configuraremos o comportamento de avaliação. Clique no botão Nova pasta para criar uma pasta para armazenar suas regras. Clique no botão Novo grupo de avaliação para criar um grupo para agrupar regras que serão avaliadas após o mesmo intervalo de tempo. Defina o intervalo de tempo como 5m ao criar o grupo.

Uma vez terminado, a página deve parecer com a seguinte. Defina o Estado de Alerta se erro de execução ou timeout para Alertando.

Regra
- Nome - Insira um nome descritivo para o alerta
- Pasta - Crie ou selecione uma pasta pré-existente para armazenar sua regra de notificação.
- Grupo - Insira um nome para seu grupo de alerta. Alertas em um único grupo são avaliados após o mesmo intervalo de tempo.
- Pendente - Especifique com que frequência o Grafana deve avaliar o alerta. Isso também é chamado de intervalo de avaliação. Você pode definir qualquer valor que desejar aqui.
Sem Dados e Tratamento de Erros
Você pode configurar como o Grafana deve lidar com consultas que retornam nenhum dado ou apenas valores nulos usando as seguintes condições:
- Sem Dados - Defina o estado da regra como
SemDados - Alertando - Defina o estado da regra como Alertando
- Ok - Defina o estado da regra de alerta como Ok, pois você receberá um alerta mesmo que as coisas estejam bem.
Você pode dizer ao Grafana como lidar com erros de execução ou timeout.
- Alertando - Defina o estado da regra como Alertando
- Ok - Defina o estado da regra de alerta como Ok, pois você receberá um alerta mesmo que as coisas estejam bem.
- Erro - Defina o estado da regra de alerta como Erro para indicar que há um problema.
Uma vez que você tenha terminado, clique no botão Visualizar alertas para ver se tudo está funcionando bem. Clique no botão Salvar regra e sair no canto superior direito para finalizar a adição do alerta. Você deve começar a receber alertas em seu e-mail. A seguir está um exemplo de um desses e-mails.

Passo 10 - Instalar o Nginx
O Debian 12 vem com uma versão mais antiga do Nginx. Você precisa baixar o repositório oficial do Nginx para instalar a versão mais recente.
Importe a chave de assinatura do Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Adicione o repositório para a versão principal do Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Atualize os repositórios do sistema.
$ sudo apt update
Instale o Nginx.
$ sudo apt install nginx
Verifique a instalação. Em sistemas Debian, o seguinte comando funcionará apenas com sudo.
$ sudo nginx -v
nginx version: nginx/1.25.3
Inicie o servidor Nginx.
$ sudo systemctl start nginx
Verifique o status do serviço.
$ sudo systemctl status nginx
? nginx.service - nginx - servidor web de alto desempenho
Carregado: carregado (/lib/systemd/system/nginx.service; habilitado; preset: habilitado)
Ativo: ativo (em execução) desde Ter 2024-01-02 09:21:10 UTC; 5s atrás
Docs: https://nginx.org/en/docs/
Processo: 12964 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (código=exited, status=0/SUCCESS)
PID Principal: 12965 (nginx)
Tarefas: 3 (limite: 2299)
Memória: 2.9M
CPU: 86ms
CGroup: /system.slice/nginx.service
??12965 "nginx: processo mestre /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??12966 "nginx: processo trabalhador"
??12967 "nginx: processo trabalhador"
Jan 02 09:21:10 grafana systemd[1]: Iniciando nginx.service - nginx - servidor web de alto desempenho...
Jan 02 09:21:10 grafana systemd[1]: Iniciado nginx.service - nginx - servidor web de alto desempenho.
Passo 11 - Instalar SSL
Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Debian ou pegar a versão mais recente usando a ferramenta Snapd. Nós usaremos a versão Snapd.
O Debian 12 não vem com o Snapd instalado. Instale o pacote Snapd.
$ sudo apt install snapd
Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.
$ sudo snap install core && sudo snap refresh core
Instale o Certbot.
$ sudo snap install --classic certbot
Use o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Verifique se o Certbot está funcionando corretamente.
$ certbot --version
certbot 2.8.0
Execute o seguinte comando para gerar um Certificado SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d grafana.example.com
O comando acima fará o download de um certificado para o diretório /etc/letsencrypt/live/grafana.example.com em seu servidor.
Gere um certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Verifique o serviço do agendador de renovação do Certbot.
$ systemctl list-timers
Você encontrará snap.certbot.renew.service como um dos serviços agendados para ser executado.
NEXT LEFT LAST PASSED UNIT ACTIVATES
-----------------------------------------------------------------------------------------------------------------------------------------
Ter 2024-01-02 15:24:52 UTC 6h left Seg 2024-01-01 15:24:52 UTC 17h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Ter 2024-01-02 20:05:29 UTC 10h left Ter 2024-01-02 09:02:47 UTC 21min ago apt-daily.timer apt-daily.service
Ter 2024-01-02 20:35:00 UTC 11h left - - snap.certbot.renew.timer snap.certbot.renew.service
Faça um teste do processo para verificar se a renovação do SSL está funcionando bem.
$ sudo certbot renew --dry-run
Se você não vir erros, está tudo pronto. Seu certificado será renovado automaticamente.
Passo 12 - Configurar o Nginx para Grafana e InfluxDB
Abra o arquivo /etc/nginx/nginx.conf para edição.
$ sudo nano /etc/nginx/nginx.conf
Adicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Crie e abra o arquivo /etc/nginx/conf.d/grafana.conf para edição.
$ sudo nano /etc/nginx/conf.d/grafana.conf
Cole o seguinte código nele. Substitua grafana.example.com pelo seu nome de domínio.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl reuseport;
listen [::]:443 ssl reuseport;
http2 on;
server_name grafana.example.com;
access_log /var/log/nginx/grafana.access.log;
error_log /var/log/nginx/grafana.error.log;
ssl_certificate /etc/letsencrypt/live/grafana.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/grafana.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/grafana.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] valid=60s;
resolver_timeout 2s;
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /api/live {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /influxdb/ {
access_log /var/log/nginx/influx.access.log;
error_log /var/log/nginx/influx.error.log;
rewrite ^/influxdb$ /influxdb/ permanent;
rewrite ^/influxdb/(.*)$ /$1 break;
proxy_cookie_path ~*^/api /influxdb/api;
proxy_connect_timeout 600s;
proxy_http_version 1.1;
proxy_pass http://localhost:8086;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_set_header Authorization $http_authorization;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
sub_filter ' ' ' ';
sub_filter 'src="/' 'src="/influxdb/';
sub_filter 'href="/' 'href="/influxdb/';
sub_filter 'data-basepath="' 'data-basepath="/influxdb/';
sub_filter 'n.p="/' 'n.p="/influxdb/';
sub_filter 'o.p="/' 'o.p="/influxdb/';
sub_filter '/api/' '/influxdb/api/';
sub_filter 'api/v2/query' 'influxdb/api/v2/query';
sub_filter '/health`' '/influxdb/health`';
sub_filter_types text/css text/javascript application/javascript application/json;
sub_filter_once off;
}
}
# forçar HTTPS
server {
listen 80;
listen [::]:80;
server_name grafana.example.com;
return 301 https://$host$request_uri;
}
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Verifique sua configuração do Nginx.
$ sudo nginx -t
Reinicie o servidor Nginx.
$ sudo systemctl restart nginx
Configurar Telegraf para HTTPS
Abra o arquivo /etc/telegraf/telegraf.conf para edição.
$ sudo nano /etc/telegraf/telegraf.conf
Pesquise pela seção [[outputs.influxdb_v2]] e altere o valor da URL para https://grafana.nspeaks.com/influxdb para que os dados entre InfluxDB e Telegraf sejam seguros.
urls = ["https://grafana.example.com/influxdb"]
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie o serviço do Telegraf.
$ sudo systemctl restart telegraf
Configurar Grafana para HTTPS
Em seguida, precisamos configurar o Grafana para acesso HTTPS. Abra o arquivo /etc/grafana/grafana.ini para edição.
$ sudo nano /etc/grafana/grafana.ini
Encontre a seção [server] e altere a variável domain, e root_url da seguinte forma.
# O nome de domínio público usado para acessar o grafana a partir de um navegador
;domain = localhost
domain = grafana.example.com
# Redirecionar para o domínio correto se o cabeçalho do host não corresponder ao domínio
# Impede ataques de reatribuição de DNS
;enforce_domain = true
# A URL completa pública que você usa no navegador, usada para redirecionamentos e e-mails
# Se você usar proxy reverso e sub caminho, especifique a URL completa (com sub caminho)
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
root_url = %(protocol)s://%(domain)s
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie o servidor Grafana.
$ sudo systemctl restart grafana-server
Fechar Portas do Firewall para InfluxDB e Grafana
Você também deve fechar as portas do InfluxDB e Grafana.
$ sudo ufw delete allow 8086
$ sudo ufw delete allow 3000
O Grafana deve ser acessível em https://grafana.example.com e a interface e API do InfluxDB devem ser acessíveis na URL https://grafana.example.com/influxdb.
Conclusão
Isso conclui o tutorial sobre como instalar e configurar o TIG Stack em um servidor Debian 12. Se você tiver alguma dúvida, poste nos comentários abaixo.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.