Elasticsearch: O que é? Como usar?
Tags: elasticsearch, elastic, infra, devops
Published: 2020-05-31 22:56:49

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/3cyotd11ogl7a66lv0kq.png)

Artigo publicado originalmente no Medium {% medium https://medium.com/sysadminas/elasticsearch-o-que-%C3%A9-como-usar-c35e9b773b8a %}

Comecei a utilizar o Elastic à 1 ano atrás e o diferencial dele em relação as outras ferramentas era o fato de que eu tinha as informações que eu precisava em tempo real.

Nessa época, eu tive meu primeiro contato com aplicações de larga escala, com milhões de acessos simultâneos e eu e minha equipe tínhamos como objetivo manter o ambiente operando com o máximo de disponibilidade possível, porém era comum acontecer problemas e nós precisávamos descobrir o que estava acontecendo com muita agilidade. A primeira coisa que fazíamos era iniciar o nosso troubleshooting através da leitura de logs que estavam centralizados no Elastic. Isso facilitava muito a nossa vida, pois seria inviável em um momento de crise entrar em 20 servidores e olhar todos os logs que estavam em cada um deles.

A partir desse momento comecei a conhecer e a estudar sobre o assunto, encontrei alguns artigos, livros e o próprio material do site da Elastic vem me ajudando bastante, por isso escrevi esse breve artigo para simplificar tudo que venho lendo e aprendendo, pois acredito que pode ajudar quem está começando sua jornada com o Elastic assim como eu.

## O que é o ElasticSearch?
O Elasticsearch é uma ferramenta open source para buscas desenvolvida em Java e também é uma solução NoSQL de armazenamento de dados que tem capacidade para tratar de grandes quantidades de dados em tempo real.

O desenvolvimento do Elastic tem como base a biblioteca [Lucene](https://github.com/apache/lucene-solr), que é um motor de buscas open source bem conhecido e usado até pela [Wikipédia](https://pt.wikipedia.org/wiki/Apache_Lucene) para buscas textuais.

Para fazer buscas e visualizar os logs que ficam armazenados no Elastic, utilizamos o Kibana, com ele é possível criar dashboards e métricas para consolidar os dados contidos nos logs.

## Por onde começar?
Agora vou mostrar como instalar e configurar o Elastic junto com o Kibana no mesmo servidor, mas em produção não é recomendado colocar os dois juntos no mesmo nó, por isso separe quando for executar em prod, ok?! ;)

### Instalação e configuração do ElasticSearch e do Kibana
Para baixar os pacotes de instalação, acesse a página de [download](https://www.elastic.co/pt/downloads/) no site da Elastic e selecione a versão compatível com o seu sistema operacional. No exemplo estamos utilizando o sistema operacional CentOS.

1. Faça o download do Elastic:
`wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-x86_64.rpm`

2. Execute a instalação:
`sudo rpm -ivh Elasticsearch-7.0.0-x86_64.rpm`

3. Edite o config que fica no diretório /etc/elasticsearch/ seguindo as instruções do [site](https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html) da Elastic:
`vim /etc/elasticsearch/elasticsearch.yml`

4. Habilite o Elastic para subir automaticamente toda vez que o servidor for iniciado:
`systemctl enable elasticsearch`

5. Inicie o Elastic:
`systemctl start elasticsearch`

6. Teste o Elastic:
`curl -X GET "localhost:9200"`

O resultado do comando acima deverá ser esse:
`{
  "name" : "elastic01",
  "cluster_name" : "elastic-cluster",
  "cluster_uuid" : "2PNd56pDRrC1N71AIirAQQ",
  "version" : {
    "number" : "7.0.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "e4efcb5",
    "build_date" : "2019-04-29T12:56:03.145736Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.7.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}`

7. Faça o download do Kibana:
`wget https://artifacts.elastic.co/downloads/kibana/kibana-7.0.0-x86_64.rpm`

8. Execute o Kibana:
`sudo rpm -ivh kibana-7.0.0-x86_64.rpm`

9. Edite o config que fica no diretório /etc/kibana seguindo as instruções do [site](https://www.elastic.co/guide/en/kibana/current/settings.html) da Elastic:
`vim /etc/kibana/kibana.yml`

10. Habilite o Kibana para subir automaticamente toda vez que o servidor for iniciado:
`systemctl enable kibana`

11. Inicie o Kibana:
`systemctl start kibana`

12. Por fim, abra um navegador e aponte para o seguinte endereço:
`http://ip_do_host:5601`

Se você seguiu todos os passos acima, o resultado deverá ser equivalente a esse aqui:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/hyv8vftbiqjqntv82ih0.png)

E assim terminamos de instalar o Elastic e o Kibana de uma maneira bem simples e ágil. Nos próximos artigos vou explorar mais sobre o Logstash, os Beats e o APM.

O Elastic é uma ótima solução de monitoração e tem crescido muito nos últimos tempos, por isso vale a pena conhecer e [contribuir](https://www.elastic.co/pt/elasticon/conf/2016/sf/contributing-to-elasticsearch-how-to-get-started) com o projeto.