chapter4
Instalando o OpenTelemetry Collector Contrib via gerenciador de pacotes
Temos 2 opções de instalação do collector
- OpenTelemetry Collector: Versão core e mantida pela equipe do OpenTelemetry
- OpenTelemetry Collector Contrib: Versão mais completa e mantida pela comunidade
No curso utilizaremos a versão contrib.
Versão utilizada no curso: 0.121.0
Outras versões podem ser encontradas na página de release
Baixar o pacote .deb e instalar
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.121.0/otelcol-contrib_0.121.0_linux_amd64.deb
sudo dpkg -i otelcol-contrib_0.121.0_linux_amd64.deb
Podemos verificar a instalação com o comando systemctl status otelcol-contrib.service
Vamos dar uma olhada no arquivo de configuração default cat /etc/otelcol-contrib/config.yaml
Acessando endpoints das extensions que vieram no arquivo de configuração na instalação:
- health_check http://localhost:13133/
- pprof http://localhost:1777/debug/pprof/
- zpages http://localhost:55679/debug/tracez
para ver os logs do podemos usar journalctl -u otelcol-contrib -f
Sucesso, Otel Collector Contrib instalado com sucesso.
Instalando OpenTelemetry Collector via Docker
Vamos utilizar mapeando o arquivo de configuração de fora do container.
Vamos criar um arquivo de configuração mais enxuto para um teste rápido
vim otel-config.yaml
Adicionar a configuração abaixo:
receivers:
prometheus:
config:
scrape_configs:
- job_name: 'otel-collector'
scrape_interval: 10s
static_configs:
- targets: ['0.0.0.0:8888']
processors:
batch:
exporters:
prometheus:
endpoint: "0.0.0.0:9090"
service:
pipelines:
metrics:
receivers: [prometheus]
processors: [batch]
exporters: [prometheus]
E então iniciar nosso container do OpenTelemetry Colllector Contrib
docker run -d --name otel-collector -p 9090:9090 -v /home/ubuntu/otel-config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.121.0
Verificamos com docker ps. E sucesso container rodando
Podemos checar as métricas com o comando curl localhost:9090/metrics
Maravilha. Open Telemetry Collector contrib up and running via docker.
Agora sabemos como instalar o Otel Collector também via Docker. Durante nosso curso iremos utilizar das 2 formas. Dependendo de cada cénario.
Linux monitoramento métricas
Iremos utilizar o OtelCollector instalado via pacote para a coleta de métricas do host.
Vamos editar o arquivo
sudo vim /etc/otelcol-contrib/config.yaml

E vamos reiniciar o serviço
sudo systemctl restart otelcol-contrib.service
Sucesso. Agora vamos fazer o load do dashboards no SigNoz.

Uhul, fizemos o load do nosso primeiro dashboard exclusivo do curso.
Vamos continuar nossar jornada em observabilidade e vamos coletar os logs deste servidor linux
Repo do receiver: Lista de métricas completas:
Linux monitoramento logs
Para coletar os logs vamos precisar que o otelcol-contrib tenha acesso a pasta /var/log
sudo vim /lib/systemd/system/otelcol-contrib.service
Precisamos trocar o usuário de otelcol-contrib para root
User=root
Group=root
Pronto, agora podemos editar nosso arquivo de configuração do OtelCollector

Após vamos precisar executar 2 comandos para fazer efeito
sudo systemctl daemon-reload
sudo systemctl restart otelcol-contrib.service
Sucesso! Temos métricas e logs sendo enviados para o SigNoz.
Repo do receiver: Lista de métricas completas:
Docker monitoramento métricas
Monitoramento Docker é a nossa próxima missão.
Vamos editar nosso arquivo de configuração do OtelCollector vim otel-config.yaml

Agora vamos rodar o container
docker run -d --name otel-collector -u0 -v /var/run/docker.sock:/var/run/docker.sock -v /home/ubuntu/otel-config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.121.0
Sucesso. Métricas já estão sendo enviadas ao SigNoz. Então vamos fazer o load do nosso segundo dashboard exclusivo

Legal!!
Já sabemos como coletar as métricas do host e logs do host, correto? Então vamos usar os conhecimentos da aula anterior e somar a esta configuração.
Para isto vamos usar o otel-collector via serviço do linux.
Remover o container que estava coletando as métricas docker docker rm -f otel-collector
Editar o arquivo de configuração e reiniciar o serviço.

sudo vim /etc/otelcol-contrib/config.yaml
systemctl restart otelcol-contrib.service
Sucesso! Nosso Otelcollector está coletando Métricas dos container docker e também métricas e logs do host. E para fecharmos uma monitoração completa, vamos coletar os logs docker.
Docker monitoramento logs
O logspout é um projeto feito para capturar logs docker. E vamos utiliza-lo
Vamos configurar o OtelCollector

E iniciar o container do logspout
docker run -d \
--name docker-logspout \
-v /etc/hostname:/etc/host_hostname:ro \
-v /var/run/docker.sock:/var/run/docker.sock \
gliderlabs/logspout:v3.2.14 \
syslog+tcp://192.168.3.221:2255
Sucesso!! Saimos da aula com o monitoramento completo de um host linux com docker.
Com métricas e logs de ambos os serviços, usando apenas 1 collector.
Agora vamos aprender a monitorar o kuberentes.
Kubernetes monitoramento métricas e logs
Para adicionar observabilidade com signoz ao kuberetes é bem tranquilo.
https://artifacthub.io/packages/helm/signoz/k8s-infra https://github.com/SigNoz/charts/tree/main/charts/k8s-infra
Vamos instalar o chart
helm repo add signoz https://charts.signoz.io
helm repo update
helm install signoz-k8s-monitoring signoz/k8s-infra --set otelCollectorEndpoint=192.168.3.220:4317 --set otelInsecure=true --set clusterName=kubernetes-rawdevops -n kube-system
Chart instalado! Métricas e logs do kubernetes já estão no SigNoz.
Agora vamos fazer download do nosso dashboard exclusivo para o K8s

Windows monitoramentos métricas e logs
Para o monitoramento windows vamos precisar instalar o Otel Collector no máquina.
Baixar o otelcol-contrib.exe das releases do open telemetry collector contrib
https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.121.0/otelcol-contrib_0.121.0_windows_amd64.tar.gz
Após o download vamos criar a pasta
C:\Program Files\OpenTelemetry Collector Contrib
E descompactar o arquivo tar.gz dentro da pasta.
Agora vamos criar nosso arquivo de configuração do Otel Collector
C:\Program Files\OpenTelemetry Collector Contrib\config.yaml

E agora pela linha de comando vamos iniciar o Otel Collector Contrib
otelcol-contrib.exe --config config.yaml
Para deixar o otel collector contrib rodando como serviço:
$params = @{
Name = "OpenTelemetry Collector Contrib"
BinaryPathName = "C:\Program Files\OpenTelemetry Collector Contrib\otelcol-contrib.exe --config config.yaml"
DisplayName = "OTel Collector Contrib"
StartupType = "Automatic"
Description = "OpenTelemetry Collector Contrib"
}
Maravilha pessoal! Métricas e logs do windows no SigNoz. Concluimos mais uma missão.
Concluimos o nosso capitulo de infraestrutura agora vamos a próxima missao:
Monitoramento de Banco de Dados! Vamos la