InfluxDB
InfluxDB é um banco de dados para armazenamento de séries temporais. Ele possui o código fonte aberto e disponível em: https://github.com/influxdata/influxdb
O InfluxDB inclui APIs para armazenar e consultar dados, processando-os em segundo plano para fins de monitoramento, geração de alertas, exibição de dashboards, exploração dos dados e muito mais. Ele também possui outros componentes, tais como: Kapacitor (processamento de dados em segundo plano) e Chronograf (a interface web). Tudo isso está disponível em um único binário, desenvolvido utilizando a linguagem Go (https://golang.org).
A documentação oficial do InfluxDB está disponível em:
https://docs.influxdata.com
https://docs.influxdata.com/influxdb/v1.7/introduction/getting-started
Instalação do InfluxDB 1.x com Docker:
Apenas com HTTP:
sudo mkdir -p /docker/influxdb1/
Iniciando o InfluxDB com HTTP:
VERSION=1.8 docker run -d --name influxdb -p 8086:8086 \ --restart=always \ --log-opt max-size=5m --log-opt max-file=2 \ -e INFLUXDB_DATA_INDEX_VERSION="tsi1" \ -v /docker/influxdb1/data:/var/lib/influxdb influxdb:$VERSION
Acessando o conteiner do InfluxDB para gerenciamento na linha de comando.
docker exec -it influxdb bash
Acessando o prompt de comandos do InfluxDB dentro do conteiner.
influx
Apenas com HTTPS:
sudo mkdir -p /docker/influxdb1/certs
sudo mkdir -p /docker/influxdb1/conf/
Criando um certificado auto-assinado com validade para 30 anos:
sudo openssl req -x509 -nodes -newkey rsa:2048 \
-keyout /docker/influxdb1/certs/influxdb-selfsigned.key \
-out /docker/influxdb1/certs/influxdb-selfsigned.crt \
-days 10800
Obtendo o arquivo de configuração padrão do InfluxDB:
sudo docker run --rm influxdb influxd config > /docker/influxdb1/conf/influxdb.conf
Altere os seguintes parâmetros de configuração
https-enabled = true
https-certificate = "/etc/ssl/influxdb-selfsigned.crt"
https-private-key = "/etc/ssl/influxdb-selfsigned.key"
Iniciando o InfluxDB com HTTPS:
docker run -d --name influxdb -p 8086:8086 \
--restart=always \
--log-opt max-size=5m --log-opt max-file=2 \
-e INFLUXDB_DATA_INDEX_VERSION="tsi1" \
-v /docker/influxdb1/conf/influxdb.conf:/etc/influxdb/influxdb.conf \
-v /docker/influxdb1/certs/influxdb-selfsigned.key:/etc/ssl/influxdb-selfsigned.key \
-v /docker/influxdb1/certs/influxdb-selfsigned.crt:/etc/ssl/influxdb-selfsigned.crt \
-v /docker/influxdb1/data:/var/lib/influxdb influxdb:$VERSION
Acessando o conteiner do InfluxDB para gerenciamento na linha de comando.
docker exec -it influxdb bash
Acessando o prompt de comandos do InfluxDB dentro do conteiner.
influx --ssl --unsafeSsl
Comandos para gerenciar o InfluxDB.
Criando o usuário admin.
CREATE USER admin WITH PASSWORD 'adminadmin' WITH ALL PRIVILEGES
Criando o usuário prometheus.
CREATE USER prometheus WITH PASSWORD 'prometheus123' WITH ALL PRIVILEGES
SHOW USERS
Criando o banco de dados do prometheus e influxdb_metrics
CREATE DATABASE prometheus CREATE DATABASE influxdb_metrics SHOW DATABASES QUIT
Fonte: https://hub.docker.com/_/influxdb
Opcionalmente, altere a seguintes linhas no arquivo /docker/influxdb1/conf/influxdb.conf
# Habilitando a autenticação na API do InfluxDB auth-enabled = true # Desabilitando o limite de séries na base de dados max-series-per-database = 0 # Aumentando o cache do InfluxDB para 10 GB de memória (veja se o hardware tem essa quantidade de memória) cache-max-memory-size = 100073741824 # Desabilitando o log de acesso a API do InfluxDB log-enabled = false # Habilitando o registro de log de apenas error e não info (padrão) level = "error" # Alterando a forma de armazenamento das métricas # Essa alteração proporciona uma melhora significativa no uso da memória. Veja este link: # https://thenewstack.io/how-to-overcome-memory-usage-challenges-with-the-time-series-index/ index-version = "tsi1"
Mais informações sobre o InfluxDB podem ser encontradas nos links a seguir.
Slides: https://www.percona.com/live/e17/sessions/using-prometheus-with-influxdb-for-metrics-storage
https://devconnected.com/how-to-setup-telegraf-influxdb-and-grafana-on-linux/
https://docs.influxdata.com/influxdb/v1.7/introduction/getting-started
https://dzone.com/articles/getting-started-with-influxdb-20
https://dzone.com/articles/how-to-query-influxdb
https://github.com/influxdata/telegraf/blob/master/plugins/inputs/prometheus/README.md
https://docs.influxdata.com/influxdb/v1.7/supported_protocols/prometheus/
https://docs.openstack.org/developer/performance-docs/methodologies/monitoring/influxha.html
https://www.slant.co/versus/1489/6000/~prometheus_vs_influxdb
https://v2.docs.influxdata.com/v2.0/security/enable-tls/
https://docs.influxdata.com/influxdb/v1.7/administration/https_setup/
https://monitoring-portal.org/t/ssl-with-influxdb-on-grafana/5005/7
https://dev.to/influxdata/spinning-up-influxdb-2-0-alpha-with-docker-14k8
Prometheus
Informações sobre o Prometheus e instruções de instalação via Docker podem ser encontradas nos links a seguir.
Apenas com HTTP:
Abaixo está o arquivo de configuração do Prometheus para se conectar ao InfluxDB para armazenamento das métricas.
Apenas com HTTPS entre o Prometheus e o InfluxDB.
sudo mkdir -p /docker/prometheus/
Conteúdo do arquivo /docker/prometheus/prometheus.yml. Altere as informações de acordo com o seu ambiente e configurações
de acesso definidas no InfluxDb (token e bucket).
global: # Intervalo de raspagem de métricas. O padrão é a cada 60s scrape_interval: 10s # Intervalo para avaliação de regras. O padrão é a cada 60s evaluation_interval: 10s # scrape_timeout é definido como o padrão global (10s). alerting: alertmanagers: static_configs: - targets: # - alertmanager:9093 rule_files: # - "first_rules.yml" # - "second_rules.yml" scrape_configs: - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['172.17.0.1:9090'] #Output metrics for InfluxDB 2.0 remote_write: - url: "https://172.17.0.1:8086/api/v1/prom/read?db=prometheus&u=prometheus&p=prometheus123" # name: send_to_influxdb tls_config: insecure_skip_verify: true
Iniciando o Prometheus:
VERSION_PROMETHEUS=v2.17.1 docker run -d -p 9090:9090 \ --name prometheus \ -v /docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus:$VERSION_PROMETHEUS
Grafana
Informações sobre o Grafana e instruções de instalação via Docker podem ser encontradas nos links a seguir.
http://blog.aeciopires.com/instalando-o-grafana-via-docker/
http://blog.aeciopires.com/configurando-o-grafana-para-funcionar-sobre-https/
1 comentário em “InfluxDB 1.x, Prometheus 2.x e Grafana 6.x”