Em várias ocasiões, falamos sobre a escalabilidade que as distros Linux nos oferecem por ter milhares de aplicativos de código aberto que podem ser instalados neles e, assim, ampliar significativamente a capacidade de uso e desenvolvimento de serviços e funções.
Podemos encontrar aplicativos para todos os tipos de tarefas a nível pessoal ou corporativo e hoje a Solvetic irá analisar em detalhes um que é marcante devido ao seu potencial dinamismo quando se trata de coletar vários tipos de métricas e nos oferecer relatórios detalhados que serão muito úteis quando se trata de nossa gestão e suporte.
Este aplicativo se chama Prometheus e hoje veremos como instalá-lo no Ubuntu 17.04 de forma prática.
O que é PrometeuO Prometheus é um poderoso sistema de monitoramento de código aberto que coleta as métricas de nossos serviços e as armazena em um banco de dados de séries temporais. Oferece-nos um modelo de dados multidimensional, uma linguagem de consulta flexível e várias possibilidades de visualização através de ferramentas como o Grafana.
Por padrão, o Prometheus exporta apenas métricas sobre si mesmo, por exemplo, o número de pedidos recebidos, consumo de memória, entre outros. Porém, é possível estender o Prometheus instalando exportadores que são programas opcionais que geram métricas adicionais e detalhadas de outros aspectos a serem analisados.
Esses exportadores estão focados em infraestrutura, bancos de dados e servidores web em sistemas de mensagens, APIs e muitos mais.
Alguns dos exportadores que a Prometheus nos oferece são:
node_exporterEste exportador produz métricas na infraestrutura do equipamento, incluindo CPU atual, memória e uso de disco rígido, bem como estatísticas de E / S e de rede (como o número de bytes lidos de um disco ou a carga média em um disco). Servidor)
blackbox_exporterCom este exportador, poderemos gerar métricas derivadas de protocolos de navegação como HTTP e HTTPS para determinar a disponibilidade dos endpoints, o tempo de resposta e muito mais.
mysqld_exporterA função desse exportador é coletar métricas relacionadas a um servidor MySQL, como o número de consultas executadas, o tempo médio de resposta das consultas e o status de replicação do cluster.
rabbitmq_exporterEste exportador gera métricas sobre o sistema de mensagens RabbitMQ, incluindo detalhes como o número de mensagens publicadas, o número de mensagens prontas para serem entregues e o tamanho de todas as mensagens na fila.
nginx-vts-exporterCom este exportador obteremos métricas em um servidor web Nginx utilizando o módulo Nginx VTS, que inclui o número de conexões abertas, o número de respostas enviadas (agrupadas por códigos de resposta) e o tamanho total das solicitações enviadas ou recebidas em bytes.
Recursos do PrometheusAlgumas das características mais marcantes do Prometheus são:
- Dimensão de dados, pois o Prometheus armazena todos os dados como séries temporais usando fluxos de valores de tempo que pertencem à mesma métrica e ao mesmo conjunto de dimensões rotuladas. Além disso, o Prometheus pode gerar séries temporais derivadas de tempo como resultado de consultas.
- Consultas dinâmicas: Neste sentido, o Prometheus oferece uma linguagem de expressão funcional através da qual o usuário pode selecionar e agregar dados de séries temporais em tempo real. O resultado de uma expressão pode ser exibido como um gráfico, visto como dados tabulares no navegador de expressão do Prometheus ou executado por sistemas externos por meio da API HTTP.
- Várias opções de exibição, já que o Prometheus inclui o Grafana que está disponível a partir do Grafana 2.5.0 (2015-10-28).
- Armazenamento eficiente, porque o Prometheus possui um sofisticado subsistema de armazenamento local. Para índices, faz uso de LevelDB. Para dados de amostra em massa, ele tem sua própria camada de armazenamento customizada, que organiza os dados de amostra em blocos de tamanho constante (carga útil de 1024 bytes). Esses pedaços são armazenados no disco em um arquivo por série temporal.
- A operação simples, pois o Prometheus é configurado por meio de parâmetros de linha de comando e um arquivo de configuração. Enquanto os prompts da linha de comando configuram parâmetros imutáveis do sistema (como locais de armazenamento, quantidade de dados a serem salvos no disco e na memória), o arquivo de configuração define tudo relacionado aos trabalhos de scraping e suas instâncias, bem como os arquivos de regras carregados com o aplicativo .
- Alerta preciso, ao ter a opção de criar regras de alerta que nos permitem definir condições de alerta com base nos valores da linguagem de expressão do Prometheus e enviar notificações de alertas de disparo a um serviço externo num determinado momento e assim estar atentos a qualquer alteração.
- Múltiplas bibliotecas, graças ao fato de que o Prometheus nos oferece uma série de bibliotecas compatíveis como Java ou Scala, Python, Rubí, Bash, C ++, Common Lisp, Elixir, Erlang, Haskell, Lua para Nginx, Lua para Tarantool,. NET / C #, Node.js, PHP e Rust.
- Integração múltipla, já que temos várias bibliotecas e servidores que ajudam a exportar métricas existentes de sistemas de terceiros para métricas do Prometheus, alguns deles são exportador Aerospike, exportador ClickHouse, exportador Consul, exportador CouchDB, exportador ElasticSearch, exportador Memcached, exportador MongoDB, MSSQL exportador de servidor, exportador de servidor MySQL, exportador OpenTSDB, exportador PgBouncer, exportador PostgreSQL ou exportador ProxySQL.
Agora veremos como instalar o Prometheus no Ubuntu 17.04.
1. Instalação Nginx
Passo 1
O primeiro ponto a ter em conta é que o Nginx deve ser instalado no Ubuntu, caso não o tenha, executaremos o seguinte comando:
sudo apt install nginx
Passo 2
Lá inseriremos a letra S para confirmar o download e a instalação dos pacotes necessários. Uma vez instalado, será necessário definir as configurações do firewall do Ubuntu para permitir o acesso ao serviço Nginx, para isso executaremos a seguinte linha para listar as configurações dos aplicativos ufw:
lista de aplicativos sudo ufw
No nível Nginx, temos as seguintes opções
- Nginx Full: este perfil abre a porta 80 (tráfego da web normal e não criptografado) e a porta 443 (tráfego TLS / SSL criptografado)
- HTTP Nginx: este perfil abre apenas a porta 80 (tráfego da web normal, não criptografado)
- HTTPS Nginx: este perfil abre apenas a porta 443 (tráfego TLS / SSL criptografado)
etapa 3
Para este caso, iremos executar a seguinte linha:
sudo ufw allow 'Nginx HTTP'
Passo 4
Podemos ver que o estado do firewall é inativo, em alguns casos, e deve ser necessário ativá-lo, para isso executamos o seguinte:
sudo ufw enable
Depois de configurar esses parâmetros no firewall, continuamos com a instalação do Prometheus.
Login Junte-se!