#ToolTip - ELK Stack
Descrição: ELK é um pack de ferramentas utilizadas largamente em vários cenários, que podem variar desde um simples syslog, passando por SIEM (Correlacionador de Logs e Eventos) e podendo chegar correlação de bancos de dados, BigData e servindo com seus Dashboards para as áreas de negócio e Marketing.
Workflow das Informações de LOG: - Logstash: É uma solução para gerenciamento e agregação de logs. Você consegue agregar logs de máquinas, sistemas operacionais e aplicações distintas em um único lugar. O Logstash permite pegar dados ou qualquer outro registro baseado em tempo, de onde quiser, processar e analisar exatamente como você quiser. O formato estruturado do JSON é o padrão, e também é a forma como o ElasticSearch vai tratá-lo. Existem diversas opções de filtros e funcionalidades similares. - Elasticsearch: É uma engine de busca com foco na análise de dados em tempo real. Ele possui compatibilidade com a funcionalidade de pesquisa de texto completo padrão, mas também diversas opções poderosas de realização de queries. O ElasticSearch é baseado em documentos orientados e você pode armazenar tudo o que quiser no formato JSON. - Kibana: É o frontend do nosso stack, que irá apresentar os dados armazenados pelo Logstash no ElasticSearch, em uma interface altamente customizável com histograma e outros painéis. Ele permite transformar os logs em informações úteis, pois permite realizar correlação de eventos, filtrar logs por origem, hosts, e N outras combinações.
Após a exemplicação acima, escolhemos o cenário de Syslog centralizado para: * Acesso a rede: Switches(tráfego) * Aplicações/Sistemas (Tomcat) * Monitoramento de comandos (Linux) * Auditoria Windows (AD, FileServer) (exemplificação dos arquivos de configuração nas outras partes)
Instalação e Configuração Básica do ELK:
Criar VM Linux CentOS básica: Template CentOS 7
Realizar as seguintes instalações:
Após essas ações os servidor deve ser rebootado e instalado o java na última versão.
[root@elk ~]# cd /opt/
[root@elk ~]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-[root@elk ~]# pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz"
[root@elk ~]# tar xzf jdk-8u151-linux-x64.tar.gz
[root@elk ~]#
[root@elk ~]# cd /opt/jdk1.8.0_151/
[root@elk ~]# alternatives --install /usr/bin/java java /opt/jdk1.8.0_151/bin/java 2
[root@elk ~]# alternatives --config java
[root@elk ~]#
[root@elk ~]# alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_151/bin/jar 2
[root@elk ~]# alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_151/bin/javac 2
[root@elk ~]# alternatives --set jar /opt/jdk1.8.0_151/bin/jar
[root@elk ~]# alternatives --set javac /opt/jdk1.8.0_151/bin/javac
[root@elk ~]#
[root@elk ~]# java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b09)
OpenJDK 64-Bit Server VM (build 25.151-b09, mixed mode)
[root@elk ~]# export JAVA_HOME=/opt/jdk1.8.0_151
[root@elk ~]# export JRE_HOME=/opt/jdk1.8.0_151/jre
[root@elk ~]# export PATH=$PATH:/opt/jdk1.8.0_151/bin:/opt/jdk1.8.0_151/jre/bin
Criar o arquivo com informações de repositório de todas as features instalada no serviço ELK.
[root@elk ~]# cat /etc/yum.repos.d/elasticsearch.repo
[elk-6.x]
name=Kibana repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Instalaremos as features do ELK.
[root@elk ~]# yum -y install elasticsearch logstash kibana
[root@elk ~]# firewall-cmd --permanent --add-port 9200/tcp # ElasticSearch
[root@elk ~]# firewall-cmd --permanent --add-port 5044/tcp # Logstash
[root@elk ~]# firewall-cmd --permanent --add-port 5601/tcp # Kibana
[root@elk ~]# firewall-cmd --permanent --add-port 80/tcp # Nginx
[root@elk ~]# firewall-cmd --reload
Efetuar a alteração abaixo e os seguintes comandos para o Logstash:
[root@elk ~]# cat /etc/logstash/logstash.yml | grep -v "#"
path.data: /var/lib/logstash
path.logs: /var/log/logstash
[root@elk ~]# systemctl enable logstash
[root@elk ~]# systemctl start logstash
Efetuar a alteração abaixo e os seguintes comandos para o ElasticSearch.
[root@elk ~]# cat /etc/elasticsearch/elasticsearch.yml|grep -v "#"
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: <IP da VM>
http.port: 9200
[root@elk ~]# systemctl enable elasticsearch
[root@elk ~]# systemctl start elasticsearch
Efetuar a alteração abaixo e os seguintes comandos para o Kibana.
[root@elk ~]# cat /etc/kibana/kibana.yml |grep -v "#"
elasticsearch.url: "http://<IP DO ELASTICSEARCH>:9200"
logging.dest: /var/log/kibana.log
[root@elk ~]# systemctl enable kibana
[root@elk ~]# systemctl start kibana
Realizar a instalação do NGinx e configuração conformes abaixo:
[root@elk ~]# yum -y install nginx
[root@elk ~]# vim /etc/nginx/conf.d/kibana.conf
server {
listen 80;
server_name elk;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
[root@elk ~]# htpasswd -m /etc/nginx/htpasswd.users <USER.NAME>
[root@elk ~]# systemctl enable nginx
[root@elk ~]# systemctl start nginx
Essa é a instalação base do ELK, nas outras partes teremos mais exemplificações de como utilizar.

