Retornando com o tema do Bladecenter com RaspberryPI do LHC.
Estou configurando alguns equipamentos para ativar um novo cenário no Hackerspace, junto com alguns amigos. Estamos iniciando instalações de alguns sensores no local, em fase de escolhas dos sensores e dispositivos, logo estaremos ativando com as ferramentas de monitoramentos e dashboards.
Inicialmente estou configurando o ambiente com Prometheus, em seguida estarei publicando como criar Dashboard utilizando a ferramenta Grafana, posteriormente outra publicação mostrando a instalação da ferramenta ZABBIX em outro dispositivo.
Mais detalhes sobre o Cluster com Raspberry PI
Deixo aqui o meu Disclaimer, não tenho responsabilidade se você utilizar todos os procedimentos exemplos em seus ambiente de produção. Lembrando que é para fins de estudos e apresentações, estarei utilizando recursos específicos, não tenho como objetivo neste primeiro momento, executar todas as rotinas que envolve seguranças do dispositivos, além dos itens citados, também das diferentes especificações para cada tipo de cenário.
Vamos para o Mão na massa.
Segue alguns comandos executados na distribuição Linux para o Raspian utilizada na Raspberry PI
Comandos para ser utilizado via terminal.
$ useradd -m -s /bin/false prometheus
$ id prometheus
$ mkdir /etc/prometheus
$ mkdir /var/lib/prometheus
chown prometheus /var/lib/prometheus/
Recomendo verificar se existe uma versão nova da ferramente direto na página oficial, conforme o dia de sua instalação, para o dia que gerei o material peguei a versão recente da página oficial do prometheus.io/download.
Versão liberada para o dia da criação do material é 2.20.1
$ wget https://github.com/prometheus/prometheus/releases/download/v2.20.1/prometheus-2.20.1.linux-armv7.tar.gz -P /tmp
$ cd /tmp
$ tar -zxpvf prometheus-2.20.1.linux-armv7.tar.gz
$ cd /tmp/prometheus-2.20.1.linux-armv7
$ cp prometheus /usr/local/bin
$ cp promtool /usr/local/bin
$ vim /etc/prometheus/prometheus.yml
Verifique também se o seu arquivo prometheus.yml está configurado com as seguintes informações e parâmetros:
# Global config
global:
scrape_interval: 15s #Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s #Evaluate rules every 15 seconds. The default is every 1 minute.
scrape_timeout: 15s #scrape_timeout is set to the global default (10s).
# 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'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
Criando o arquivo serviço prometheus.
$ vim /etc/systemd/system/prometheus.service
Adicionando o conteúdo no arquivo.
[Unit]
Description=Prometheus Time Series Collection and Processing Server
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
–config.file /etc/prometheus/prometheus.yml \
–storage.tsdb.path /var/lib/prometheus/ \
–web.console.templates=/etc/prometheus/consoles \
–web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
Recarregando as configurações e inicialização do processo.
$ systemctl daemon-reload
$ systemctl start prometheus
$ systemctl enable prometheus
Verificando o status do serviço.
$ systemctl status prometheus
$ netstat -tunlp
Instalando e configurando o node_explorer
$ useradd -m -s /bin/false node_exporter
$ wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-armv7.tar.gz -P /tmp
$ cd /tmp
$ tar -zxpvf node_exporter-1.0.1.linux-armv7.tar.gz
$ tree node_exporter-1.0.1.linux-armv7
$ cp node_exporter-1.0.1.linux-amd64/node_explorer /usr/local/bin
$ chown node_exporter:node_exporter /usr/local/bin/node_exporter
Criando o arquivo de serviço node_exporter.
$ vim /etc/systemd/system/node_exporter.service
Adicionando o conteúdo no arquivo.
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Habilitando e verificando status do serviço
$ systemctl daemon-reload
$ systemctl start node_exporter
$ systemctl enable node_exporter
$ systemctl status node_exporter
$ netstat -pnltu | grep 9100
Editando o arquivo para adicionar o novo serviço do node_exporter.
$ vim /etc/prometheus/prometheus.yml
Adicionar no final do arquivo as seguintes linhas.
- job_name: 'node_explorer'
static_configs:
`
- targets: ['localhost:9100']
Reiniciando o processo e verificando o status.
$ systemctl restart prometheus
$ systemctl status prometheus
$ curl http://localhost:9100/metrics
$ curl localhost:9100/metrics
Acessando o dashboard do prometheus via navegador.
- IP-do-raspberry:9090
Referências
- https://www.linuxtechi.com/install-prometheus-monitoring-tool-centos-8-rhel-8/
- https://github.com/prometheus/prometheus
- https://prometheus.io/download/
- https://blog.alexellis.io/prometheus-nodeexporter-rpi/
Até mais.