Splunk - Guia rápido
Splunk é um software que processa e traz informações de dados de máquina e outras formas de big data. Esses dados de máquina são gerados pela CPU que executa um servidor web, dispositivos IOT, logs de aplicativos móveis, etc. Não é necessário fornecer esses dados aos usuários finais e não tem nenhum significado comercial. No entanto, são extremamente importantes para entender, monitorar e otimizar o desempenho das máquinas.
O Splunk pode ler esses dados não estruturados, semiestruturados ou raramente estruturados. Após a leitura dos dados, permite pesquisar, marcar, criar relatórios e painéis sobre esses dados. Com o advento do big data, o Splunk agora é capaz de ingerir big data de várias fontes, que podem ou não ser dados de máquina e executar análises em big data.
Portanto, a partir de uma ferramenta simples para análise de log, o Splunk percorreu um longo caminho para se tornar uma ferramenta analítica geral para dados de máquina não estruturados e várias formas de big data.
Categorias de Produtos
O Splunk está disponível em três categorias de produtos diferentes, como segue -
Splunk Enterprise- É utilizado por empresas que possuem grande infraestrutura de TI e negócios voltados para TI. Ajuda na coleta e análise de dados de sites, aplicativos, dispositivos e sensores, etc.
Splunk Cloud- É a plataforma hospedada em nuvem com os mesmos recursos da versão corporativa. Ele pode ser obtido no próprio Splunk ou por meio da plataforma de nuvem AWS.
Splunk Light- Permite pesquisar, relatar e alertar sobre todos os dados de log em tempo real de um só lugar. Possui funcionalidades e recursos limitados em comparação com as outras duas versões.
Recursos do Splunk
Nesta seção, discutiremos os recursos importantes da edição empresarial -
Ingestão de Dados
O Splunk pode ingerir uma variedade de formatos de dados como JSON, XML e dados de máquina não estruturados como web e logs de aplicativos. Os dados não estruturados podem ser modelados em uma estrutura de dados conforme a necessidade do usuário.
Indexação de dados
Os dados ingeridos são indexados pelo Splunk para pesquisas e consultas mais rápidas em diferentes condições.
Pesquisa de dados
A pesquisa no Splunk envolve o uso de dados indexados com o propósito de criar métricas, prever tendências futuras e identificar padrões nos dados.
Usando Alertas
Os alertas do Splunk podem ser usados para acionar e-mails ou feeds RSS quando alguns critérios específicos são encontrados nos dados sendo analisados.
Dashboards
Os painéis Splunk podem mostrar os resultados da pesquisa na forma de gráficos, relatórios e pivôs, etc.
Modelo de dados
Os dados indexados podem ser modelados em um ou mais conjuntos de dados baseados em conhecimento de domínio especializado. Isso facilita a navegação dos usuários finais que analisam os casos de negócios sem aprender os detalhes técnicos da linguagem de processamento de pesquisa usada pelo Splunk.
Neste tutorial, nosso objetivo é instalar a versão corporativa. Esta versão está disponível para avaliação gratuita por 60 dias com todos os recursos habilitados. Você pode baixar a configuração usando o link abaixo, que está disponível para plataformas Windows e Linux.
https://www.splunk.com/en_us/download/splunk-enterprise.html.
Versão Linux
A versão do Linux é baixada do link de download fornecido acima. Escolhemos o tipo de pacote .deb, pois a instalação será feita em uma plataforma Ubuntu.
Devemos aprender isso com uma abordagem passo a passo -
Passo 1
Baixe o pacote .deb conforme mostrado na imagem abaixo -
Passo 2
Vá para o diretório de download e instale o Splunk usando o pacote baixado acima.
etapa 3
Em seguida, você pode iniciar o Splunk usando o seguinte comando com o argumento de aceitação de licença. Ele solicitará o nome de usuário e a senha do administrador, que você deve fornecer e lembrar.
Passo 4
O servidor Splunk é iniciado e menciona o URL onde a interface do Splunk pode ser acessada.
Etapa 5
Agora, você pode acessar o URL do Splunk e inserir o ID de usuário administrador e a senha criada na etapa 3.
Versão Windows
A versão do Windows está disponível como um instalador msi, conforme mostrado na imagem abaixo -
Clicar duas vezes no instalador msi instala a versão do Windows em um processo direto. As duas etapas importantes em que devemos fazer a escolha certa para uma instalação bem-sucedida são as seguintes.
Passo 1
Como estamos instalando em um sistema local, escolha a opção de sistema local conforme fornecido abaixo -
Passo 2
Digite a senha do administrador e lembre-se dela, pois ela será usada nas configurações futuras.
etapa 3
Na etapa final, vemos que o Splunk foi instalado com sucesso e pode ser iniciado a partir do navegador da web.
Passo 4
Em seguida, abra o navegador e digite o url fornecido, http://localhost:8000e faça login no Splunk usando a ID de usuário e senha de administrador.
A interface da web do Splunk consiste em todas as ferramentas de que você precisa para pesquisar, relatar e analisar os dados ingeridos. A mesma interface da web fornece recursos para administrar os usuários e suas funções. Ele também fornece links para ingestão de dados e os aplicativos embutidos disponíveis no Splunk.
A imagem abaixo mostra a tela inicial após seu login no Splunk com as credenciais de administrador.
Link do administrador
O menu suspenso Administrador oferece a opção de definir e editar os detalhes do administrador. Podemos redefinir o ID de e-mail do administrador e a senha usando a tela abaixo -
Além do link do administrador, também podemos navegar até a opção de preferências, onde podemos definir o fuso horário e o aplicativo inicial no qual a página de destino será aberta após o seu login. Atualmente, ele é aberto na página inicial conforme mostrado abaixo -
Link de configurações
Este é um link que mostra todos os recursos básicos disponíveis no Splunk. Por exemplo, você pode adicionar os arquivos de pesquisa e definições de pesquisa escolhendo o link de pesquisa.
Discutiremos as configurações importantes desses links nos capítulos subsequentes.
Link de pesquisa e relatório
O link de pesquisa e relatórios nos leva aos recursos onde podemos encontrar os conjuntos de dados que estão disponíveis para pesquisar os relatórios e alertas criados para essas pesquisas. É mostrado claramente na imagem abaixo -
A ingestão de dados no Splunk ocorre por meio do Add Datarecurso que faz parte do aplicativo de pesquisa e relatórios. Após fazer o login, a tela inicial da interface do Splunk mostra oAdd Data ícone como mostrado abaixo.
Ao clicar neste botão, é apresentada a tela para selecionar a fonte e o formato dos dados que planejamos enviar ao Splunk para análise.
Coletando os dados
Podemos obter os dados para análise no site oficial do Splunk. Salve este arquivo e descompacte-o em sua unidade local. Ao abrir a pasta, você encontrará três arquivos de diferentes formatos. Eles são os dados de log gerados por alguns aplicativos da web. Também podemos coletar outro conjunto de dados fornecidos pelo Splunk que está disponível na página oficial do Splunk.
Usaremos dados de ambos os conjuntos para compreender o funcionamento de vários recursos do Splunk.
Carregando dados
Em seguida, escolhemos o arquivo, secure.log da pasta, mailsvque mantivemos em nosso sistema local, conforme mencionado no parágrafo anterior. Depois de selecionar o arquivo, passamos para a próxima etapa usando o botão próximo de cor verde no canto superior direito.
Seleção do tipo de fonte
O Splunk possui um recurso embutido para detectar o tipo de dados que estão sendo ingeridos. Também dá ao usuário a opção de escolher um tipo de dados diferente do escolhido pelo Splunk. Ao clicar no menu suspenso de tipo de fonte, podemos ver vários tipos de dados que o Splunk pode ingerir e habilitar para pesquisa.
No exemplo atual dado abaixo, escolhemos o tipo de fonte padrão.
Configurações de entrada
Nesta etapa da ingestão de dados, configuramos o nome do host a partir do qual os dados estão sendo alimentados. A seguir estão as opções para escolher, para o nome do host -
Valor constante
É o nome completo do host onde residem os dados de origem.
regex no caminho
Quando você deseja extrair o nome do host com uma expressão regular. Em seguida, insira a regex do host que deseja extrair no campo Expressão regular.
segmento no caminho
Quando você deseja extrair o nome do host de um segmento no caminho de sua fonte de dados, insira o número do segmento no campo Número do segmento. Por exemplo, se o caminho para a fonte for / var / log / e você quiser que o terceiro segmento (o nome do servidor host) seja o valor do host, digite "3".
Em seguida, escolhemos o tipo de índice a ser criado nos dados de entrada para pesquisa. Escolhemos a estratégia de índice padrão. O índice de resumo cria apenas um resumo dos dados por meio de agregação e cria um índice sobre ele, enquanto o índice de histórico é para armazenar o histórico de pesquisa. Está claramente representado na imagem abaixo -
Revisar configurações
Após clicar no botão seguinte, vemos um resumo das configurações que escolhemos. Nós o revisamos e escolhemos Avançar para terminar o upload dos dados.
Ao terminar o carregamento, a tela abaixo aparece, mostrando a ingestão de dados bem-sucedida e outras ações possíveis que podemos realizar nos dados.
Todos os dados que chegam ao Splunk são primeiro julgados por sua unidade de processamento de dados embutida e classificados em certos tipos e categorias de dados. Por exemplo, se for um log do servidor web apache, o Splunk é capaz de reconhecer isso e criar campos apropriados a partir dos dados lidos.
Este recurso no Splunk é chamado de detecção de tipo de fonte e usa seus tipos de fonte embutidos que são conhecidos como tipos de fonte "pré-treinados" para conseguir isso.
Isso torna as coisas mais fáceis para a análise, pois o usuário não precisa classificar manualmente os dados e atribuir quaisquer tipos de dados aos campos dos dados recebidos.
Tipos de fontes suportados
Os tipos de fonte suportados no Splunk podem ser vistos carregando um arquivo através do Add Datarecurso e, em seguida, selecionando a lista suspensa para Tipo de fonte. Na imagem abaixo, carregamos um arquivo CSV e depois verificamos todas as opções disponíveis.
Subcategoria de tipo de fonte
Mesmo nessas categorias, podemos clicar ainda mais para ver todas as subcategorias que são suportadas. Portanto, ao escolher a categoria de banco de dados, você pode encontrar os diferentes tipos de bancos de dados e seus arquivos compatíveis que o Splunk pode reconhecer.
Tipos de fonte pré-treinados
A tabela abaixo lista alguns dos tipos de fonte pré-treinados importantes que o Splunk reconhece -
Nome do tipo de fonte | Natureza |
---|---|
access_combined | Logs de servidor web http em formato combinado NCSA (podem ser gerados por apache ou outros servidores web) |
access_combined_wcookie | Logs de servidor web http em formato combinado NCSA (podem ser gerados por apache ou outros servidores web), com campo de cookie adicionado no final |
apache_error | Log de erro do servidor da web Apache padrão |
linux_messages_syslog | Syslog padrão do Linux (/ var / log / messages na maioria das plataformas) |
log4j | Saída padrão Log4j produzida por qualquer servidor J2EE usando log4j |
mysqld_error | Registro de erro padrão do mysql |
O Splunk possui uma funcionalidade de pesquisa robusta que permite pesquisar todo o conjunto de dados que é ingerido. Este recurso é acessado por meio do aplicativo denominadoSearch & Reporting que pode ser visto na barra lateral esquerda após o login na interface da web.
Ao clicar no search & Reporting aplicativo, somos apresentados a uma caixa de pesquisa, onde podemos iniciar nossa pesquisa nos dados de log que carregamos no capítulo anterior.
Digitamos o nome do host no formato mostrado abaixo e clicamos no ícone de pesquisa presente no canto direito. Isso nos dá o resultado destacando o termo de pesquisa.
Combinando termos de pesquisa
Podemos combinar os termos usados para pesquisa, escrevendo-os um após o outro, mas colocando as strings de pesquisa do usuário entre aspas duplas.
Usando Wild Card
Podemos usar curingas em nossa opção de pesquisa combinada com o AND/ORoperadores. Na busca abaixo, obtemos o resultado onde o arquivo de log contém os termos contendo falha, falha, falha, etc., junto com o termo senha na mesma linha.
Refinando os resultados da pesquisa
Podemos refinar ainda mais o resultado da pesquisa selecionando uma string e adicionando-a à pesquisa. No exemplo abaixo, clicamos sobre a string3351 e selecione a opção Add to Search.
Depois de 3351é adicionado ao termo de pesquisa, obtemos o resultado abaixo que mostra apenas as linhas do log que contém 3351 nelas. Marque também como a linha do tempo do resultado da pesquisa mudou à medida que refinamos a pesquisa.
Quando o Splunk lê os dados da máquina carregados, ele interpreta os dados e os divide em muitos campos que representam um único fato lógico sobre todo o registro de dados.
Por exemplo, um único registro de informações pode conter o nome do servidor, carimbo de data / hora do evento, tipo de evento sendo registrado, seja tentativa de login ou resposta http, etc. Mesmo no caso de dados não estruturados, o Splunk tenta dividir os campos em valores-chave pares ou separe-os com base nos tipos de dados que eles possuem, numéricos e string, etc.
Continuando com os dados carregados no capítulo anterior, podemos ver os campos do secure.logclicando no link mostrar campos que abrirá a seguinte tela. Podemos notar os campos que o Splunk gerou a partir deste arquivo de log.
Escolhendo os Campos
Podemos escolher quais campos serão exibidos, selecionando ou desmarcando os campos da lista de todos os campos. Clicando emall fieldsabre uma janela mostrando a lista de todos os campos. Alguns desses campos têm marcas de seleção, mostrando que já estão selecionados. Podemos usar as caixas de seleção para escolher nossos campos para exibição.
Além do nome do campo, mostra a quantidade de valores distintos que os campos possuem, seu tipo de dados e em que porcentagem de eventos este campo está presente.
Resumo do Campo
Estatísticas muito detalhadas para cada campo selecionado tornam-se disponíveis clicando no nome do campo. Ele mostra todos os valores distintos para o campo, sua contagem e suas porcentagens.
Usando campos na pesquisa
Os nomes dos campos também podem ser inseridos na caixa de pesquisa junto com os valores específicos para a pesquisa. No exemplo a seguir, pretendemos encontrar todos os registros para a data, 15 de outubro para o host nomeadomailsecure_log. Obtemos o resultado para esta data específica.
A interface da web do Splunk exibe a linha do tempo que indica a distribuição de eventos em um intervalo de tempo. Existem intervalos de tempo predefinidos a partir dos quais você pode selecionar um intervalo de tempo específico ou pode personalizar o intervalo de tempo de acordo com sua necessidade.
A tela abaixo mostra várias opções predefinidas de cronograma. A escolha de qualquer uma dessas opções irá buscar os dados apenas para aquele período de tempo específico, que você também pode analisar mais, usando as opções de linha do tempo personalizadas disponíveis.
Por exemplo, escolher a opção do mês anterior nos dá o resultado apenas para o mês anterior, como você pode ver a propagação do gráfico de linha do tempo abaixo.
Selecionando um Subconjunto de Horário
Ao clicar e arrastar pelas barras na linha do tempo, podemos selecionar um subconjunto do resultado que já existe. Isso não causa a reexecução da consulta. Ele apenas filtra os registros do conjunto de resultados existente.
A imagem abaixo mostra a seleção de um subconjunto do conjunto de resultados -
Mais antigo e mais recente
Os dois comandos, o mais antigo e o mais recente, podem ser usados na barra de pesquisa para indicar o intervalo de tempo entre o qual você filtra os resultados. É semelhante a selecionar o subconjunto de tempo, mas é por meio de comandos em vez da opção de clicar em uma barra de linha de tempo específica. Portanto, ele fornece um controle mais preciso sobre o intervalo de dados que você pode escolher para sua análise.
Na imagem acima, fornecemos um intervalo de tempo entre os últimos 7 dias e os últimos 15 dias. Portanto, os dados entre esses dois dias são exibidos.
Eventos próximos
Também podemos localizar eventos próximos de um horário específico, mencionando o quão perto queremos que os eventos sejam filtrados. Temos a opção de escolher a escala do intervalo, como - segundos, minutos, dias e semana etc.
Quando você executa uma consulta de pesquisa, o resultado é armazenado como um trabalho no servidor Splunk. Embora este trabalho tenha sido criado por um usuário específico, ele pode ser compartilhado com outros usuários para que eles possam começar a usar este conjunto de resultados sem a necessidade de construir a consulta para ele novamente. Os resultados também podem ser exportados e salvos como arquivos que podem ser compartilhados com usuários que não usam o Splunk.
Compartilhando o resultado da pesquisa
Assim que uma consulta for executada com sucesso, podemos ver uma pequena seta para cima no meio à direita da página da web. Clicar neste ícone fornece um URL onde a consulta e o resultado podem ser acessados. É necessário conceder permissão aos usuários que utilizarão este link. A permissão é concedida por meio da interface de administração do Splunk.
Encontrando os resultados salvos
Os trabalhos que são salvos para serem usados por todos os usuários com as permissões apropriadas podem ser localizados procurando o link de trabalhos no menu de atividades na barra superior direita da interface do Splunk. Na imagem abaixo, clicamos no link destacado chamado jobs para encontrar os jobs salvos.
Após clicar no link acima, obtemos a lista de todos os trabalhos salvos, conforme mostrado abaixo. Ele, temos que observar que há uma postagem com data de expiração onde o trabalho salvo será automaticamente removido do Splunk. Você pode ajustar esta data selecionando o trabalho e clicando em Editar selecionados e, em seguida, escolhendo Estender Vencimento.
Exportando o resultado da pesquisa
Também podemos exportar os resultados de uma pesquisa para um arquivo. Os três formatos diferentes disponíveis para exportação são: CSV, XML e JSON. Clicar no botão Exportar após escolher os formatos baixa o arquivo do navegador local para o sistema local. Isso é explicado na imagem abaixo -
O Splunk Search Processing Language (SPL) é uma linguagem que contém muitos comandos, funções, argumentos, etc., que são escritos para obter os resultados desejados dos conjuntos de dados. Por exemplo, quando você obtém um conjunto de resultados para um termo de pesquisa, pode ainda desejar filtrar alguns termos mais específicos do conjunto de resultados. Para isso, você precisa de alguns comandos adicionais a serem adicionados ao comando existente. Isso é feito aprendendo o uso de SPL.
Componentes do SPL
O SPL possui os seguintes componentes.
Search Terms - Estas são as palavras-chave ou frases que você está procurando.
Commands - A ação que você deseja realizar no conjunto de resultados, como formatar o resultado ou contá-los.
Functions- Quais são os cálculos que você vai aplicar nos resultados. Como soma, média etc.
Clauses - Como agrupar ou renomear os campos no conjunto de resultados.
Vamos discutir todos os componentes com a ajuda de imagens na seção abaixo -
Termos de pesquisa
Estes são os termos que você menciona na barra de pesquisa para obter registros específicos do conjunto de dados que atendem aos critérios de pesquisa. No exemplo abaixo, estamos procurando por registros que contêm dois termos destacados.
Comandos
Você pode usar muitos comandos embutidos que o SPL fornece para simplificar o processo de análise dos dados no conjunto de resultados. No exemplo a seguir, usamos o comando head para filtrar apenas os 3 principais resultados de uma operação de pesquisa.
Funções
Junto com os comandos, o Splunk também fornece muitas funções embutidas que podem obter a entrada de um campo sendo analisado e fornecer a saída após a aplicação dos cálculos naquele campo. No exemplo abaixo, usamos oStats avg() função que calcula o valor médio do campo numérico sendo tomado como entrada.
Cláusulas
Quando queremos obter resultados agrupados por algum campo específico ou queremos renomear um campo na saída, usamos o group bycláusula e a cláusula as respectivamente. No exemplo a seguir, obtemos o tamanho médio de bytes de cada arquivo presente noweb_applicationregistro. Como você pode ver, o resultado mostra o nome de cada arquivo, bem como a média de bytes de cada arquivo.