GROK_EXPORTER usa expressões regulares para analisar diferentes dados de arquivos de log. Os arquivos de log são correspondentes linha por linha usando uma expressão regular e os dados correspondentes são armazenados em diferentes variáveis. Então, os dados dessas variáveis são exportados via GROK_EXPORTER.
Depois de adicionar o GROK_EXPORTER servidor para Prometeu como alvo, Prometeu pode monitorar os arquivos de log desejados via GROK_EXPORTER.
Neste artigo, mostrarei como instalar Grok_exporter no Linux (Ubuntu 20.04 LTS No meu caso), gerar arquivos de log dummy, configurar Grok_exporter para monitorar o arquivo de log dummy e monitor. Então vamos começar.
Índice:
Coisas que você precisará:
Você deve ter o Prometheus instalado no seu computador para poder monitorar arquivos de log com Prometheus.
Se você precisar de assistência para instalar o Prometeu no seu computador, leia o artigo como instalar o Prometeu no Ubuntu 20.04 LTS.
Baixando e instalando GROK_EXPORTER:
Nesta seção, mostrarei como baixar e instalar Grok_exporter no seu computador.
Primeiro, navegue para o ~/Downloads diretório da seguinte maneira:
$ CD ~/Downloads
Baixe a versão mais recente do GROK_EXPORTER Arquive com o seguinte comando:
$ wget https: // github.com/fstab/grok_exporter/liberações/download/v1.0.0.RC5/GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.fecho eclair
GROK_EXPORTER Arquivo está sendo baixado. Pode demorar um pouco para completar.
Neste ponto, o GROK_EXPORTER Arquivo deve ser baixado.
Uma vez o GROK_EXPORTER O arquivo é baixado, você deve encontrar um novo arquivo GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.fecho eclair no ~/Downloads diretório marcado na captura de tela abaixo.
$ ls -lh
Extraia o arquivo GROK_EXPORTER GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.fecho eclair com o seguinte comando:
$ UNZIP GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.fecho eclair
O arquivo Grok_exporter deve ser extraído.
Um novo diretório GROK_EXPORTER-1.0.0.RC5.Linux-amd64/ deve ser criado no ~/Downloads diretório.
$ ls -lh
Agora, renomeie o GROK_EXPORTER-1.0.0.RC5.Linux-amd64/ diretório para Grok-exporter/ e movê -lo no /optar diretório da seguinte maneira:
$ sudo mv -v Grok_exporter -1.0.0.RC5.Linux-AMD64 /Opt /Grok-Exporter
Agora, crie um arquivo de serviço Systemd Grok-exporter.serviço no /opt/grok-exporter diretório da seguinte maneira:
$ sudo nano/opt/grok-exporter/grok-exporter.serviço
Digite as seguintes linhas no Grok-exporter.serviço arquivo.
[Unidade]
Descrição = Prometheus Grok_exporter Server
[Serviço]
Reinicie = sempre
WorkingDirectory =/Opt/Grok-Exporter
Execstart =/opt/grok-exporter/grok_exporter--config =/opt/grok-exporter/config.yml
Execreload =/bin/kill -hup $ mainpid
Timeoutstopsec = 20s
Sendsigkill = não
[Instalar]
WantedBy = MultiUser.alvo
Depois de terminar, pressione + X seguido pela Y e Para salvar o Grok-exporter.serviço arquivo.
Para instalar o Grok-exporter.serviço Arquivo de serviço Systemd no seu computador, crie um link simbólico do /opt/grok-exporter/grok-exporter.serviço arquivo no /etc/Systemd/System diretório da seguinte maneira:
$ sudo ln -s/opt/grok-exporter/grok-exporter.Serviço/etc/Systemd/System/Grok-Exporter.serviço
Copie o Config.yml arquivo do /opt/grok-exporter/exemplo diretório para o /opt/grok-exporter diretório da seguinte maneira:
$ sudo cp -v/opt/grok -exporter/exemplo/config.yml/opt/grok-exporter/
OBSERVAÇÃO: O Config.yml O arquivo é usado para configurar GROK_EXPORTER. O exemplo (padrão) Config.yml O arquivo é bom para testar se GROK_EXPORTER está funcionando. Vou mostrar como configurar GROK_EXPORTER em uma seção posterior deste artigo.
Para que as mudanças do Systemd entrem em vigor, execute o seguinte comando:
$ sudo systemctl daemon -load
Agora, comece o Grok-exporter Serviço Systemd com o seguinte comando:
$ sudo SystemCtl Start Grok-Exporter.serviço
O Grok-exporter O serviço Systemd deve ser ativo/em execução, Como você pode ver na captura de tela abaixo. Isso significa GROK_EXPORTER está funcionando muito bem.
$ sudo Systemctl Status Grok-Exporter.serviço
Gerando um arquivo de log dummy com Fakedata:
Para gerar arquivos de log falsos, usarei Lucapette/Fakedata neste artigo. Existem muitas outras ferramentas que você pode usar para gerar arquivos de log falsos. Você pode usar qualquer um deles se quiser.
Primeiro, navegue para o ~/Downloads diretório da seguinte maneira:
$ CD ~/Downloads
Baixar Fakedata, Execute o seguinte comando:
$ wget https: // github.com/lucapette/fakedata/liberações/download/v1.1.2/Fakedata_1.1.2_LINUX_AMD64.alcatrão.gz
Fakedata Archive deve ser baixado.
Uma vez que o arquivo Fakedata for baixado, você deverá ver um novo Fakedata_1.1.2_LINUX_AMD64.alcatrão.gz no ~/Downloads diretório.
$ ls -lh
Extraia o arquivo Fakedata Fakedata_1.1.2_LINUX_AMD64.alcatrão.gz com o seguinte comando:
$ tar xvzf fakedata_1.1.2_LINUX_AMD64.alcatrão.gz
Você deve encontrar um novo executável Fakedata no ~/Downloads diretório marcado na captura de tela abaixo.
$ ls -lh
Mova o Fakedata binário para /usr/local/bin diretório da seguinte maneira:
$ sudo mv -v fakedata/usr/local/bin/
Agora, você deve poder acessar Fakedata Da linha de comando.
$ fakedata -Versão
Crie um novo script de shell Hello-http no /usr/local/bin diretório da seguinte maneira:
$ sudo nano/usr/local/bin/hello-http
Digite as seguintes linhas de códigos no Hello-http roteiro.
#!/BIN/BASH
Logfile =/tmp/hello-http.registro
enquanto é verdade
fazer
Fakedata Nome de usuário http.método enum:/,/login,/logout,/mensagens ipv4 - -limit 1 >> $ logfile
sono 1
feito
saída 0
Depois de terminar, pressione + X seguido pela Y e Para salvar o script hello-http.
Adicionar permissão de execução ao script do shell /usr/local/bin/hello-http do seguinte modo:
$ sudo chmod +x/usr/local/bin/hello-http
Para testar o Hello-http Script, execute o seguinte:
$ hello-http
Um arquivo de log /tmp/hello-http.registro deve ser gerado. Uma nova entrada deve ser adicionada ao arquivo de log a cada segundo.
$ cauda -f /tmp /hello -http.registro
Cada linha do /tmp/hello-http.registro O arquivo deve estar no seguinte formato,
Configurando GROK_EXPORTER:
Nesta seção, mostrarei como configurar GROK_EXPORTER Para monitorar o arquivo de log gerado /tmp/hello-http.registro.
Abra o GROK_EXPORTER arquivo de configuração /opt/grok-exporter/config.yml Com o editor de texto Nano da seguinte forma:
$ sudo nano/opt/grok-exporter/configuração.yml
O arquivo de configuração padrão deve parecer o seguinte.
No entrada Seção, você especifica o caminho do arquivo de log que você deseja monitorar.
Nesse caso, quero monitorar o arquivo de log /tmp/hello-http.registro.
Leia tudo deveria estar verdadeiro Se você deseja monitorar todo o arquivo de log e adicionar linhas recém -adicionadas do arquivo de log.
Leia tudo deveria estar falso Se você deseja monitorar apenas as linhas recém -adicionadas do arquivo de log.
Para extrair dados do arquivo de log /tmp/hello-http.registro, modificar a seção de métricas do Config.yml Arquivo o seguinte:
Aqui, o tipo métrico é contador. Grok_exporter suporta outros tipos métricos de Prometheus também. Se você deseja usar um tipo de métrica de Prometheus diferente, verifique a documentação oficial de Grok_exporter. Os links são dados abaixo.
GROK_EXPORTER - TIPO DE METRICA
Grok_exporter - tipo métrico de medidor
Grok_exporter - tipo métrico de histograma
GROK_EXPORTER - Tipo métrico de resumo
O nome da métrica será hello_http_total.
O ajuda Propriedade é uma breve descrição do que a métrica faz.
O corresponder A propriedade é usada para combinar dados diferentes de cada linha de arquivo de log e armazená -los em suas respectivas variáveis.
A primeira coluna do /tmp/hello-http.registro arquivo é o . O
Da mesma maneira, a segunda coluna é e também é do tipo de padrão PALAVRA, e os dados extraídos serão armazenados no http_method variável.
A terceira coluna do arquivo de log é o caminho da URL. É do tipo de padrão Uripathparam, e será armazenado no http_path variável.
A quarta coluna do arquivo de log é o endereço IP. É do tipo de padrão IP, e será armazenado na variável ip_addr.
Existem muitos outros tipos de padrões que você pode usar para extrair dados do arquivo de log. Você pode encontrar todos os tipos de padrões suportados no /opt/Grok-Exporter/Patterns/Grok-Patterns arquivo.
$ sudo gato/opt/grok-exporter/padrões/grok-padrinhos
Depois que os dados são extraídos e armazenados em diferentes variáveis, você pode escolher as variáveis que deseja exportar via GROK_EXPORTER.
As variáveis que você deseja exportar via GROK_EXPORTER deve ser listado no Rótulos Seção marcada na captura de tela abaixo.
Você também pode criar novos tipos de padrões e combinar dados de cada linha de arquivo de log usando os tipos de padrões recém -criados.
Para criar novos tipos de padrões, você adiciona os tipos de padrões no Grok_patterns seção do Config.yml arquivo.
Por padrão, um tipo de padrão personalizado Exim_message é definido e pode ser usado para corresponder aos dados dos arquivos de log usando a expressão regular [A-ZA-Z]*.
Para corresponder ao status HTTP (i.e., Pegue, poste, coloque), você pode definir um novo tipo de padrão Http_status [a-z] 3,4 e use -o para corresponder aos dados do arquivo de log da seguinte forma. Espero que você tenha a idéia.
A versão final do Config.yml O arquivo é fornecido na captura de tela abaixo.
Depois de terminar de fazer alterações no Config.yml Arquivo, pressione + X seguido pela Y e para salvá -lo.
Para que as mudanças entrem em vigor, reinicie o Grok-exporter Serviço Systemd da seguinte maneira:
$ sudo systemctl reinicie.serviço
Se tudo estiver bem (você não cometeu nenhum erro no arquivo de configuração Config.yml), o Grok-exporter O serviço Systemd deve ser ativo/em execução.
$ sudo Systemctl Status Grok-Exporter.serviço
Adicionando Grok_exporter a Prometheus:
Agora, você tem que adicionar GROK_EXPORTER Prometheus como um alvo.
Primeiro, você precisa saber o endereço IP do computador onde você instalou GROK_EXPORTER.
No meu caso, o endereço IP é 192.168.3.149. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.
$ hostname -i
Em seguida, abra o arquivo de configuração do Prometheus Prometeu.yml Com o editor de texto Nano da seguinte forma:
$ sudo nano/opt/prometheus/prometheus.yml
No scrape_configs seção do Prometeu.yml Arquivo, adicione as linhas marcadas na captura de tela abaixo.
OBSERVAÇÃO: Não se esqueça de substituir o endereço IP alvo do Grok-exporter trabalho com o endereço IP do computador onde você tem GROK_EXPORTER instalado.
Para que as mudanças entrem em vigor, reinicie o Prometeu Serviço Systemd da seguinte maneira:
$ sudo systemctl reinicie prometeus.serviço
OBSERVAÇÃO: Eu instalei Prometeu no mesmo computador que GROK_EXPORTER. Portanto, o endereço IP do computador onde eu instalei o PromeTheus é o mesmo que Grok_exporter. No meu caso, é 192.168.3.149. Certifique -se de substituí -lo por seu a partir de agora.
Agora, visite a página de alvos de Prometheus no URL http: // 192.168.3.149: 9090/alvos, e você deve ver que o Grok-exporter O alvo está no ACIMA estado.
Métricas de raspagem de Grok_exporter com Prometheus:
Antes de começar a raspar métricas de GROK_EXPORTER Com Prometheus, inicie o gerador de arquivos de log dummy Hello-http com o seguinte comando:
$ hello-http
Agora, visite a página do gráfico de Prometheus em http: // 192.168.3.149: 9090/gráfico e execute a expressão hello_http_total.
Como você pode ver, os dados são extraídos do arquivo de log /tmp/hello-http.registro. Cada linha do arquivo de log é uma entrada separada em Prometheus.
Você pode filtrar os dados também. Por exemplo, digamos que você queira listar apenas as entradas onde o http_method é Get. Para fazer isso, execute a expressão hello_http_total http_method = "get".
Você também pode contar o número de entradas que correspondem a determinados critérios. Por exemplo, para contar o número de solicitações HTTP, você pode executar a expressão count (hello_http_total http_method = "get".
Como você pode ver, o número de solicitações HTTP é 30.
Se você executar a mesma expressão após alguns segundos, o número de solicitações HTTP GET deve aumentar.
Para onde ir a seguir?
Para saber mais sobre como configurar GROK_EXPORTER, Leia a página oficial de documentação de configuração GROK_EXPORTER.
Conclusão:
Neste artigo, mostrei como instalar Grok_exporter no Ubuntu 20.04 LTS. Eu também mostrei como gerar arquivos de log dummy com Fakedata e configurar GROK_EXPORTER para monitorar o arquivo de log gerado. Eu mostrei como adicionar Grok_exporter como um alvo no Prometheus e monitorar arquivos de log com Prometheus também.
Referências: