- Introduction
- Our Goal
- Prerequisites
- Install Java 8
- Install Elasticsearch
- Install Kibana
- Install Nginx
- Install Logstash
- Generate SSL Certificates
- Option 1: IP Address
- Option 2: FQDN (DNS)
- Configure Logstash
- Load Kibana Dashboards
- Load Filebeat Index Template in Elasticsearch
- Set Up Filebeat (Add Client Servers)
- Copy SSL Certificate
- Install Filebeat Package
- Configure Filebeat
- Test Filebeat Installation
- Connect to Kibana
- Conclusion
- Введение
- Предварительные требования
- Шаг 1 — Установка и настройка Elasticsearch
- Шаг 2 — Установка и настройка информационной панели Kibana
- Шаг 3 — Установка и настройка Logstash
- Шаг 4 — Установка и настройка Filebeat
- Шаг 5 — Изучение информационных панелей Kibana
- Заключение
Introduction
In this tutorial, we will go over the installation of the Elasticsearch ELK Stack on CentOS 7—that is, Elasticsearch 2.2.x, Logstash 2.2.x, and Kibana 4.4.x. We will also show you how to configure it to gather and visualize the syslogs of your systems in a centralized location, using Filebeat 1.1.x. Logstash is an open source tool for collecting, parsing, and storing logs for future use. Kibana is a web interface that can be used to search and view the logs that Logstash has indexed. Both of these tools are based on Elasticsearch, which is used for storing logs.
Centralized logging can be very useful when attempting to identify problems with your servers or applications, as it allows you to search through all of your logs in a single place. It is also useful because it allows you to identify issues that span multiple servers by correlating their logs during a specific time frame.
It is possible to use Logstash to gather logs of all types, but we will limit the scope of this tutorial to syslog gathering.
Our Goal
The goal of the tutorial is to set up Logstash to gather syslogs of multiple servers, and set up Kibana to visualize the gathered logs.
Our ELK stack setup has four main components:
- Logstash: The server component of Logstash that processes incoming logs
- Elasticsearch: Stores all of the logs
- Kibana: Web interface for searching and visualizing logs, which will be proxied through Nginx
- Filebeat: Installed on client servers that will send their logs to Logstash, Filebeat serves as a log shipping agent that utilizes the lumberjack networking protocol to communicate with Logstash

We will install the first three components on a single server, which we will refer to as our ELK Server. Filebeat will be installed on all of the client servers that we want to gather logs for, which we will refer to collectively as our Client Servers.
Prerequisites
To complete this tutorial, you will require root access to an CentOS 7 VPS. Instructions to set that up can be found here (steps 3 and 4): Initial Server Setup with CentOS 7.
If you would prefer to use Ubuntu instead, check out this tutorial: How To Install ELK on Ubuntu 14.04.
- OS: CentOS 7
- RAM: 4GB
- CPU: 2
In addition to your ELK Server, you will want to have a few other servers that you will gather logs from.
Let’s get started on setting up our ELK Server!
Install Java 8
Change to your home directory and download the Oracle Java 8 (Update 73, the latest at the time of this writing) JDK RPM with these commands:
- ~
- --no-cookies --no-check-certificate "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie"
Then install the RPM with this yum command (if you downloaded a different release, substitute the filename here):
- yum localinstall jdk-8u73-linux-x64.rpm
Now Java should be installed at /usr/java/jdk1.8.0_73/jre/bin/java, and linked from /usr/bin/java.
You may delete the archive file that you downloaded earlier:
- ~/jdk-8u*-linux-x64.rpm
Now that Java 8 is installed, let’s install ElasticSearch.
Install Elasticsearch
Elasticsearch can be installed with a package manager by adding Elastic’s package repository.
- http://packages.elastic.co/GPG-KEY-elasticsearch
Create a new yum repository file for Elasticsearch. Note that this is a single command:
-
- name=Elasticsearch repository for 2.x packages
- baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
- gpgcheck=1
- gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
- enabled=1
- /etc/yum.repos.d/elasticsearch.repo
Install Elasticsearch with this command:
- yum elasticsearch
Elasticsearch is now installed. Let’s edit the configuration:
- /etc/elasticsearch/elasticsearch.yml
You will want to restrict outside access to your Elasticsearch instance (port 9200), so outsiders can’t read your data or shutdown your Elasticsearch cluster through the HTTP API. Find the line that specifies network.host, uncomment it, and replace its value with “localhost” so it looks like this:
elasticsearch.yml excerpt (updated)
network.host: localhostSave and exit elasticsearch.yml.
Now start Elasticsearch:
- systemctl start elasticsearch
- systemctl elasticsearch
Now that Elasticsearch is up and running, let’s install Kibana.
Install Kibana
Create and edit a new yum repository file for Kibana:
- /etc/yum.repos.d/kibana.repo
- [kibana-4.4]
- name=Kibana repository for 4.4.x packages
- baseurl=http://packages.elastic.co/kibana/4.4/centos
- gpgcheck=1
- gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
- enabled=1
Save and exit.
Install Kibana with this command:
- yum kibana
Open the Kibana configuration file for editing:
- /opt/kibana/config/kibana.yml
In the Kibana configuration file, find the line that specifies server.host, and replace the IP address (“0.0.0.0” by default) with “localhost”:
kibana.yml excerpt (updated)
server.host: "localhost"Save and exit. This setting makes it so Kibana will only be accessible to the localhost. This is fine because we will install an Nginx reverse proxy, on the same server, to allow external access.
Now start the Kibana service, and enable it:
- systemctl start kibana
- kibana on
Before we can use the Kibana web interface, we have to set up a reverse proxy. Let’s do that now, with Nginx.
Install Nginx
Because we configured Kibana to listen on localhost, we must set up a reverse proxy to allow external access to it. We will use Nginx for this purpose.
Note: If you already have an Nginx instance that you want to use, feel free to use that instead. Just make sure to configure Kibana so it is reachable by your Nginx server (you probably want to change the host value, in /opt/kibana/config/kibana.yml, to your Kibana server’s private IP address). Also, it is recommended that you enable SSL/TLS.
Add the EPEL repository to yum:
- yum epel-release
Now use yum to install Nginx and httpd-tools:
- yum nginx httpd-tools
- htpasswd /etc/nginx/htpasswd.users kibanaadmin
Enter a password at the prompt. Remember this login, as you will need it to access the Kibana web interface.
Now open the Nginx configuration file in your favorite editor. We will use vi:
- /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
}Save and exit.
- /etc/nginx/conf.d/kibana.conf
Now start and enable Nginx to put our changes into effect:
- systemctl start nginx
- systemctl nginx
Install Logstash
- /etc/yum.repos.d/logstash.repo
- [logstash-2.2]
- name=logstash repository for 2.2 packages
- baseurl=http://packages.elasticsearch.org/logstash/2.2/centos
- gpgcheck=1
- gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
- enabled=1
Save and exit.
Install Logstash with this command:
- yum logstash
Logstash is installed but it is not configured yet.
Generate SSL Certificates
Now you have two options for generating your SSL certificates. If you have a DNS setup that will allow your client servers to resolve the IP address of the ELK Server, use Option 2. Otherwise, Option 1 will allow you to use IP addresses.
Option 1: IP Address
If you don’t have a DNS setup—that would allow your servers, that you will gather logs from, to resolve the IP address of your ELK Server—you will have to add your ELK Server’s private IP address to the subjectAltName (SAN) field of the SSL certificate that we are about to generate. To do so, open the OpenSSL configuration file:
- /etc/pki/tls/openssl.cnf
- subjectAltName = IP: ELK_server_private_ip
Save and exit.
- /etc/pki/tls
- openssl req /etc/pki/tls/openssl.cnf rsa:2048 private/logstash-forwarder.key certs/logstash-forwarder.crt
The logstash-forwarder.crt file will be copied to all of the servers that will send logs to Logstash but we will do that a little later. Let’s complete our Logstash configuration. If you went with this option, skip option 2 and move on to Configure Logstash.
Option 2: FQDN (DNS)
If you have a DNS setup with your private networking, you should create an A record that contains the ELK Server’s private IP address—this domain name will be used in the next command, to generate the SSL certificate. Alternatively, you can use a record that points to the server’s public IP address. Just be sure that your servers (the ones that you will be gathering logs from) will be able to resolve the domain name to your ELK Server.
- /etc/pki/tls
- openssl req rsa:2048 private/logstash-forwarder.key certs/logstash-forwarder.crt
The logstash-forwarder.crt file will be copied to all of the servers that will send logs to Logstash but we will do that a little later. Let’s complete our Logstash configuration.
Configure Logstash
Logstash configuration files are in the JSON-format, and reside in /etc/logstash/conf.d. The configuration consists of three sections: inputs, filters, and outputs.
Let’s create a configuration file called 02-beats-input.conf and set up our “filebeat” input:
- /etc/logstash/conf.d/02-beats-input.conf
- input {
- beats {
- port => 5044
- ssl => true
- ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
- ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
- }
Save and quit. This specifies a beats input that will listen on tcp port 5044, and it will use the SSL certificate and private key that we created earlier.
Now let’s create a configuration file called 10-syslog-filter.conf, where we will add a filter for syslog messages:
- /etc/logstash/conf.d/10-syslog-filter.conf
- filter {
- if [type] == "syslog" {
- grok {
- match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
- add_field => [ "received_at", "%{@timestamp}" ]
- add_field => [ "received_from", "%{host}" ]
- syslog_pri { }
- date {
- match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
- }
Save and quit. This filter looks for logs that are labeled as “syslog” type (by Filebeat), and it will try to use grok to parse incoming syslog logs to make it structured and query-able.
Lastly, we will create a configuration file called 30-elasticsearch-output.conf:
- /etc/logstash/conf.d/30-elasticsearch-output.conf
- output {
- elasticsearch {
- hosts => ["localhost:9200"]
- sniffing => true
- manage_template => false
- index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
- document_type => "%{[@metadata][type]}"
- }
Save and exit. This output basically configures Logstash to store the beats data in Elasticsearch which is running at localhost:9200, in an index named after the beat used (filebeat, in our case).
If you want to add filters for other applications that use the Filebeat input, be sure to name the files so they sort between the input and the output configuration (i.e. between 02- and 30-).
Test your Logstash configuration with this command:
- logstash configtest
It should display Configuration OK if there are no syntax errors. Otherwise, try and read the error output to see what’s wrong with your Logstash configuration.
Restart and enable Logstash to put our configuration changes into effect:
- systemctl restart logstash
- logstash on
Next, we’ll load the sample Kibana dashboards.
Load Kibana Dashboards
Elastic provides several sample Kibana dashboards and Beats index patterns that can help you get started with Kibana. Although we won’t use the dashboards in this tutorial, we’ll load them anyway so we can use the Filebeat index pattern that it includes.
First, download the sample dashboards archive to your home directory:
- ~
- https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip
Install the unzip package with this command:
- yum
Next, extract the contents of the archive:
- beats-dashboards-*.zip
And load the sample dashboards, visualizations and Beats index patterns into Elasticsearch with these commands:
- beats-dashboards-*
- ./load.sh
These are the index patterns that we just loaded:
- [packetbeat-]YYYY.MM.DD
- [topbeat-]YYYY.MM.DD
- [filebeat-]YYYY.MM.DD
- [winlogbeat-]YYYY.MM.DD
When we start using Kibana, we will select the Filebeat index pattern as our default.
Load Filebeat Index Template in Elasticsearch
Because we are planning on using Filebeat to ship logs to Elasticsearch, we should load a Filebeat index template. The index template will configure Elasticsearch to analyze incoming Filebeat fields in an intelligent way.
First, download the Filebeat index template to your home directory:
- ~
- https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/d8c479e2a1adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json
Then load the template with this command:
- -d@filebeat-index-template.json
If the template loaded properly, you should see a message like this:
{ "acknowledged" : true
}Now that our ELK Server is ready to receive Filebeat data, let’s move onto setting up Filebeat on each client server.
Set Up Filebeat (Add Client Servers)
Do these steps for each CentOS or RHEL 7 server that you want to send logs to your ELK Server. For instructions on installing Filebeat on Debian-based Linux distributions (e.g. Ubuntu, Debian, etc.), refer to the Set Up Filebeat (Add Client Servers) section of the Ubuntu variation of this tutorial.
Copy SSL Certificate
On your ELK Server, copy the SSL certificate—created in the prerequisite tutorial—to your Client Server (substitute the client server’s address, and your own login):
- /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp
After providing your login’s credentials, ensure that the certificate copy was successful. It is required for communication between the client servers and the ELK Server.
Now, on your Client Server, copy the ELK Server’s SSL certificate into the appropriate location (/etc/pki/tls/certs):
- /etc/pki/tls/certs
- /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
Now we will install the Topbeat package.
Install Filebeat Package
- http://packages.elastic.co/GPG-KEY-elasticsearch
Create and edit a new yum repository file for Filebeat:
- /etc/yum.repos.d/elastic-beats.repo
- [beats]
- name=Elastic Beats Repository
- baseurl=https://packages.elastic.co/beats/yum/el/$basearch
- enabled=1
- gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
- gpgcheck=1
Save and exit.
Install Filebeat with this command:
- yum filebeat
Filebeat is installed but it is not configured yet.
Configure Filebeat
Now we will configure Filebeat to connect to Logstash on our ELK Server. This section will step you through modifying the example configuration file that comes with Filebeat. When you complete the steps, you should have a file that looks something like this.
On Client Server, create and edit Filebeat configuration file:
- /etc/filebeat/filebeat.yml
Note: Filebeat’s configuration file is in YAML format, which means that indentation is very important! Be sure to use the same number of spaces that are indicated in these instructions.
Near the top of the file, you will see the prospectors section, which is where you can define prospectors that specify which log files should be shipped and how they should be handled. Each prospector is indicated by the - character.
We’ll modify the existing prospector to send secure and messages logs to Logstash. Under paths, comment out the - /var/log/*.log file. This will prevent Filebeat from sending every .log in that directory to Logstash. Then add new entries for syslog and auth.log. It should look something like this when you’re done:
filebeat.yml excerpt 1 of 5
... paths: - /var/log/secure - /var/log/messages# - /var/log/*.log
...Then find the line that specifies document_type:, uncomment it and change its value to “syslog”. It should look like this after the modification:
filebeat.yml excerpt 2 of 5
... document_type: syslog...This specifies that the logs in this prospector are of type syslog (which is the type that our Logstash filter is looking for).
If you want to send other files to your ELK server, or make any changes to how Filebeat handles your logs, feel free to modify or add prospector entries.
Next, under the output section, find the line that says elasticsearch:, which indicates the Elasticsearch output section (which we are not going to use). Delete or comment out the entire Elasticsearch output section (up to the line that says logstash:).
filebeat.yml excerpt 3 of 5
### Logstash as output logstash: # The Logstash hosts hosts: ["ELK_server_private_IP:5044"]This configures Filebeat to connect to Logstash on your ELK Server at port 5044 (the port that we specified an input for earlier).
Directly under the hosts entry, and with the same indentation, add this line:
filebeat.yml excerpt 4 of 5
bulk_max_size: 1024filebeat.yml excerpt 5 of 5
... tls: # List of root certificates for HTTPS server verifications certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]This configures Filebeat to use the SSL certificate that we created on the ELK Server.
Save and quit.
Now start and enable Filebeat to put our changes into place:
- systemctl start filebeat
- systemctl filebeat
Again, if you’re not sure if your Filebeat configuration is correct, compare it against this example Filebeat configuration.
Now Filebeat is sending your syslog messages and secure files to your ELK Server! Repeat this section for all of the other servers that you wish to gather logs for.
Test Filebeat Installation
If your ELK stack is setup properly, Filebeat (on your client server) should be shipping your logs to Logstash on your ELK server. Logstash should be loading the Filebeat data into Elasticsearch in an date-stamped index, filebeat-YYYY.MM.DD.
On your ELK Server, verify that Elasticsearch is indeed receiving the data by querying for the Filebeat index with this command:
-
You should see a bunch of output that looks like this:
...
{ "_index" : "filebeat-2016.01.29", "_type" : "log", "_id" : "AVKO98yuaHvsHQLa53HE", "_score" : 1.0, "_source":{"message":"Feb 3 14:34:00 rails sshd[963]: Server listening on :: port 22.","@version":"1","@timestamp":"2016-01-29T19:59:09.145Z","beat":{"hostname":"topbeat-u-03","name":"topbeat-u-03"},"count":1,"fields":null,"input_type":"log","offset":70,"source":"/var/log/auth.log","type":"log","host":"topbeat-u-03"} }
...If your output shows 0 total hits, Elasticsearch is not loading any logs under the index you searched for, and you should review your setup for errors. If you received the expected output, continue to the next step.
Connect to Kibana
When you are finished setting up Filebeat on all of the servers that you want to gather logs for, let’s look at Kibana, the web interface that we installed earlier.

Now click the Discover link in the top navigation bar. By default, this will show you all of the log data over the last 15 minutes. You should see a histogram with log events, with log messages below:

Right now, there won’t be much in there because you are only gathering syslogs from your client servers. Here, you can search and browse through your logs. You can also customize your dashboard.
- Search for “root” to see if anyone is trying to log into your servers as root
- Search for a particular hostname (search for
host: "hostname") - Change the time frame by selecting an area on the histogram or from the menu above
- Click on messages below the histogram to see how the data is being filtered
Kibana has many other features, such as graphing and filtering, so feel free to poke around!
Conclusion
Now that your syslogs are centralized via Elasticsearch and Logstash, and you are able to visualize them with Kibana, you should be off to a good start with centralizing all of your important logs. Remember that you can send pretty much any type of log or indexed data to Logstash, but the data becomes even more useful if it is parsed and structured with grok.
To improve your new ELK stack, you should look into gathering and filtering your other logs with Logstash, and creating Kibana dashboards. You may also want to gather system metrics by using Topbeat with your ELK stack. All of these topics are covered in the other tutorials in this series.
Введение
Комплекс Elastic Stack (прежнее название — комплекс ELK) представляет собой набор программного обеспечения Elastic с открытым исходным кодом, обеспечивающий возможности поиска, анализа и визуализации журналов, сгенерированных любым источником в любом формате (централизованное ведение журнала). Централизованное ведение журнала очень полезно для выявления проблем с серверами или приложениями, поскольку обеспечивает возможности поиска всех журнальных записей в одном месте. Также данная возможность позволяет выявлять проблемы, распространяющиеся на несколько серверов, посредством сопоставления их журналов за определенный период времени.
Комплекс Elastic Stack имеет четыре основных компонента:
- Elasticsearch: распределенная поисковая система RESTful, которая сохраняет все собранные данные.
- Logstash: элемент обработки данных комплекса Elastic, отправляющий входящие данные в Elasticsearch.
- Kibana: веб-интерфейс для поиска и визуализации журналов.
- Beats: компактные элементы переноса данных одиночного назначения, которые могут отправлять данные с сотен или тысяч компютеров в Logstash или Elasticsearch.
В этом обучающем модуле вы научитесь устанавливать комплект Elastic на сервере Ubuntu 20.04. Вы научитесь устанавливать все компоненты Elastic Stack, в том числе Filebeat, инструмент для перенаправления и централизации журналов и файлов, а также настраивать эти компоненты для сбора и визуализации системных журналов. Кроме того, поскольку компонент Kibana обычно доступен только через localhost, мы будем использовать Nginx в качестве прокси для обеспечения доступа через браузер. Мы установим все эти компоненты на одном сервере, который будем называть нашим сервером Elastic Stack.
Примечание. При установке Elastic Stack необходимо использовать одну и ту же версию для всего комплекса. В этом обучающем модуле мы установим последние версии компонентов комплекта. На момент написания это Elasticsearch 7.7.1, Kibana 7.7.1, Logstash 7.7.1 и Filebeat 7.7.1.
Предварительные требования
Для этого обучающего модуля вам потребуется следующее:
Кроме того, поскольку комплекс Elastic используется для доступа ценной информации о вашем сервере, которую вам нужно защищать, очень важно обеспечить защиту сервера сертификатом TLS/SSL. Это необязательно, но настоятельно рекомендуется.
Однако поскольку вы будете вносить изменения в серверный блок Nginx в ходе выполнения этого обучающего модуля, разумнее всего будет пройти обучающий модуль «Let’s Encrypt в Ubuntu 18.04» после прохождения второго шага настоящего обучающего модуля. Если вы планируете настроить на сервере Let’s Encrypt, вам потребуется следующее:
Полностью квалифицированное доменное имя (FQDN). В этом обучающем руководстве мы будем использовать
your_domain. Вы можете купить доменное имя на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого предпочитаемого регистратора доменных имен.На вашем сервере должны быть настроены обе нижеследующие записи DNS. В руководстве Введение в DigitalOcean DNS содержится подробная информация по их добавлению.
- Запись A, где
your_domainуказывает на публичный IP-адрес вашего сервера. - Запись A, где
www.your_domainуказывает на публичный IP-адрес вашего сервера.
- Запись A, где
Шаг 1 — Установка и настройка Elasticsearch
Компоненты Elasticsearch отсутствуют в репозиториях пакетов Ubuntu по умолчанию. Однако их можно установить с помощью APT после добавления списка источников пакетов Elastic.
Все пакеты подписаны ключом подписи Elasticsearch для защиты вашей системы от поддельных пакетов. Ваш диспетчер пакетов будет считать надежными пакеты, для которых проведена аутентификация с помощью ключа. На этом шаге вы импортируете открытый ключ Elasticsearch GPG и добавить список источников пакетов Elastic для установки Elasticsearch.
Для начала используйте cURL, инструмент командной строки для передачи данных с помощью URL, для импорта открытого ключа Elasticsearch GPG в APT. Обратите внимание, что мы используем аргументы -fsSL для подавления всех текущих и возможных ошибок (кроме сбоя сервера), а также чтобы разрешить cURL подать запрос на другой локации при переадресации. Выведите результаты команды cURL в программу apt-key, которая добавит открытый ключ GPG в APT.
- https://artifacts.elastic.co/GPG-KEY-elasticsearch apt-key -
- "deb https://artifacts.elastic.co/packages/7.x/apt stable main" /etc/apt/sources.list.d/elastic-7.x.list
Затем обновите списки пакетов, чтобы APT мог прочитать новый источник Elastic:
- update
Установите Elasticsearch с помощью следующей команды:
- elasticsearch
Теперь система Elasticsearch установлена и готова к настройке. Используйте предпочитаемый текстовый редактор для изменения файла конфигурации Elasticsearch, elasticsearch.yml. Мы будем использовать nano:
- /etc/elasticsearch/elasticsearch.yml
Примечание. Файл конфигурации Elasticsearch представлен в формате YAM. Это означает, что нам нужно сохранить формат отступов. Не добавляйте никакие дополнительные пробелы при редактировании этого файла.
Файл elasticsearch.yml предоставляет варианты конфигурации для вашего кластера, узла, пути, памяти, сети, обнаружения и шлюза. Большинство из этих вариантов уже настроены в файле, но вы можете изменить их в соответствии с вашими потребностями. В нашем случае для демонстрации односерверной конфигурации мы будем регулировать настройки только для хоста сети.
. . .
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost. . .Это минимальные настройки, с которыми вы можете начинать использовать Elasticsearch. Теперь вы можете запустить Elasticsearch в первый раз.
Запустите службу Elasticsearch с помощью systemctl. Запуск Elasticsearch может занять некоторое время. В другом случае вы можете увидеть сообщение об ошибке подключения.
- systemctl start elasticsearch
Затем запустите следующую команду, чтобы активировать Elasticsearch при каждой загрузке сервера:
- systemctl elasticsearch
Вы можете протестировать работу службы Elasticsearch, отправив запрос HTTP:
- GET
Вы получите ответ, содержащий базовую информацию о локальном узле:
{ "name" : "Elasticsearch", "cluster_name" : "elasticsearch", "cluster_uuid" : "qqhFHPigQ9e2lk-a7AvLNQ", "version" : { "number" : "7.7.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f", "build_date" : "2020-03-26T06:34:37.794943Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search"
}Шаг 2 — Установка и настройка информационной панели Kibana
Согласно официальной документации, Kibana следует устанавливать только после установки Elasticsearch. Установка в этом порядке обеспечивает правильность установки зависимостей компонентов.
Поскольку вы уже добавили источник пакетов Elastic на предыдущем шаге, вы можете просто установить все остальные компоненты комплекса Elastic с помощью apt:
- kibana
Затем активируйте и запустите службу Kibana:
- systemctl kibana
- systemctl start kibana
Поскольку согласно настройкам Kibana прослушивает только localhost, мы должны задать обратный прокси, чтобы разрешить внешний доступ. Для этого мы используем Nginx, который должен быть уже установлен на вашем сервере.
- /etc/nginx/htpasswd.users
Введите и подтвердить пароль в диалоговом окне. Запомните или запишите эти учетные данные, поскольку они вам потребуются для доступа к веб-интерфейсу Kibana.
Теперь мы создадим файл серверного блока Nginx. В качестве примера мы присвоим этому файлу имя your_domain, хотя вы можете дать ему более описательное имя. Например, если вы настроили записи FQDN и DNS для этого сервера, вы можете присвоить этому файлу имя своего FQDN:
Создайте файл серверного блока Nginx, используя nano или предпочитаемый текстовый редактор:
- /etc/nginx/sites-available/your_domain
Если вы выполнили предварительный обучающий модуль по Nginx до конца, возможно вы уже создали этот файл и заполнили его. В этом случае удалите из файла все содержание и добавьте следующее:
Upgrade Connection Host Завершив редактирование, сохраните и закройте файл.
Затем активируйте новую конфигурацию, создав символическую ссылку на каталог sites-enabled. Если вы уже создали файл серверного блока с тем же именем, что и в обучающем модуле по Nginx, вам не нужно выполнять эту команду:
- /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/your_domain
Затем проверьте конфигурацию на синтаксические ошибки:
- nginx
Если в результатах будут показаны какие-либо ошибки, вернитесь и еще раз проверьте правильность изменений в файле конфигурации. Когда вы увидите на экране результатов сообщение syntax is ok, перезапустите службу Nginx:
- systemctl reload nginx
Если вы следовали указаниям модуля по начальной настройке сервера, у вас должен быть включен брандмауэр UFW. Чтобы разрешить соединения с Nginx, мы можем изменить правила с помощью следующей команды:
- ufw allow
Примечание. Если вы выполнили предварительный обучающий модуль Nginx, вы могли уже создать правило UFW, разрешающее профилю Nginx HTTP доступ через брандмауэр. Поскольку профиль Nginx Full разрешает трафик HTTP и HTTPS на брандмауэре, вы можете безопасно удалить ранее созданное правило. Для этого нужно использовать следующую команду:
- ufw delete allow
http://your_domain/statusНа этой странице состояния отображается информация об использовании ресурсов сервера, а также выводится список установленных плагинов.

Примечание. Как указывалось в разделе предварительных требований, рекомендуется включить на сервере SSL/TLS. Теперь вы можете следовать указаниями обучающего модуля по Let’s Encrypt для получения бесплатного сертификата SSL для Nginx в Ubuntu 20.04. После получения сертификата SSL/TLS вы можете вернуться и завершить прохождение этого обучающего модуля.
Теперь информационная панель Kibana настроена и мы перейдем к установке следующего компонента: Logstash.
Шаг 3 — Установка и настройка Logstash
Хотя Beats может отправлять данные напрямую в базу данных Elasticsearch, мы рекомендуем использовать для обработки данных Logstash. Это даст вам гибкую возможность собирать данные из разных источников, преобразовывать их в общий формат и экспортировать в другую базу данных.
Установите Logstash с помощью следующей команды:
- logstash

Создайте файл конфигурации с именем 02-beats-input.conf, где вы настроите ввод данных Filebeat:
- /etc/logstash/conf.d/02-beats-input.conf
Вставьте следующую конфигурацию ввода. В ней задается ввод beats, который прослушивает порт TCP 5044.
[label /etc/logstash/conf.d/02-beats-input.conf] input { beats { port => 5044 }
}Сохраните и закройте файл.
Создайте файл конфигурации с именем 30-elasticsearch-output.conf:
- /etc/logstash/conf.d/30-elasticsearch-output.conf
Вставьте следующую конфигурацию вывода. Этот вывод настраивает Logstash для хранения данных Beats в Elasticsearch, запущенном на порту localhost:9200, в индексе с названием используемого компонента Beat. В этом обучающем модуле используется компонент Beat под названием Filebeat:
[label /etc/logstash/conf.d/30-elasticsearch-output.conf] output { if
[@metadata][pipeline] { elasticsearch { hosts => ["localhost:9200"]
manage_template => false index =>
"%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" pipeline =>
"%{[@metadata][pipeline]}" } } else { elasticsearch { hosts =>
["localhost:9200"] manage_template => false index =>
"%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } }Сохраните и закройте файл.
Протестируйте свою конфигурацию Logstash с помощью следующей команды:
- logstash /usr/share/logstash/bin/logstash /etc/logstash
Если ошибок синтаксиса не будет, в выводе появится сообщение Config Validation Result: OK. Exiting Logstash через несколько секунд после запуска. Если вы не увидите этого сообщения, проверьте ошибки вывода и обновите конфигурацию для их исправления. Обратите внимание, что вы получите предупреждения от OpenJDK, но они не должны вызывать проблем, и их можно игнорировать.
Если тестирование конфигурации выполнено успешно, запустите и активируйте Logstash, чтобы изменения конфигурации вступили в силу:
- systemctl start logstash
- systemctl logstash
Шаг 4 — Установка и настройка Filebeat
Комплекс Elastic использует несколько компактных элементов транспортировки данных (Beats) для сбора данных из различных источников и их транспортировки в Logstash или Elasticsearch. Ниже перечислены компоненты Beats, доступные в Elastic:
В этом обучающем модуле мы используем Filebeat для перенаправления локальных журналов в комплекс Elastic.
Установите Filebeat с помощью apt:
- filebeat
Затем настройте Filebeat для подключения к Logstash. Здесь мы изменим образец файла конфигурации, входящий в комплектацию Filebeat.
Откройте файл конфигурации Filebeat:
- /etc/filebeat/filebeat.yml
Примечание. Как и в Elasticsearch, файл конфигурации Filebeat имеет формат YAML. Это означает, что в файле учитываются отступы, и вы должны использовать точно такое количество пробелов, как указано в этих инструкциях.
Filebeat поддерживает разнообразные выводы, но обычно события отправляются только напрямую в Elasticsearch или в Logstash для дополнительной обработки. В этом обучающем модуле мы будем использовать Logstash для дополнительной обработки данных, собранных Filebeat. Filebeat не потребуется отправлять данные в Elasticsearch напрямую, поэтому мы отключим этот вывод. Для этого мы найдем раздел output.elasticsearch и поставим перед следующими строками значок комментария #:
...#output.elasticsearch: # Array of hosts to connect to. #hosts: ["localhost:9200"]
...output.logstash: # The Logstash hosts hosts: ["localhost:5044"]Сохраните и закройте файл.
Функции Filebeat можно расширить с помощью модулей Filebeat. В этом обучающем модуле мы будем использовать модуль system, который собирает и проверяет данные журналов, созданных службой регистрации систем в распространенных дистрибутивах Linux.
Давайте активируем его:
- filebeat modules system
Вы увидите список включенных и отключенных модулей с помощью следующей команды:
- filebeat modules list
Вы увидите примерно следующий список:
Enabled:
system
Disabled:
apache2
auditd
elasticsearch
icinga
iis
kafka
kibana
logstash
mongodb
mysql
nginx
osquery
postgresql
redis
traefik
...Filebeat по умолчанию настроен для использования путей по умолчанию для системных журналов и журналов авторизации. Для целей данного обучающего модуля вам не нужно ничего изменять в конфигурации. Вы можете посмотреть параметры модуля в файле конфигурации /etc/filebeat/modules.d/system.yml.
Затем нам нужно настроить конвейеры обработки Filebeat, выполняющие синтаксический анализ данных журнала перед их отправкой через logstash в Elasticsearch. Чтобы загрузить конвейер обработки для системного модуля, введите следующую команду:
- filebeat setup system
Затем загрузите в Elasticsearch шаблон индекса. Индекс Elasticsearch — это коллекция документов со сходными характеристиками. Индексы идентифицируются по имени, которое используется для ссылки на индекс при выполнении различных операций внутри него. Шаблон индекса применяется автоматически при создании нового индекса.
Используйте следующую команду для загрузки шаблона:
- filebeat setup --index-management false
Index setup finished.В комплект Filebeat входят образцы информационных панелей Kibana, позволяющие визуализировать данные Filebeat в Kibana. Прежде чем вы сможете использовать информационные панели, вам нужно создать шаблон индекса и загрузить информационные панели в Kibana.
При загрузке информационных панелей Filebeat подключается к Elasticsearch для проверки информации о версиях. Для загрузки информационных панелей при включенном Logstash необходимо отключить вывод Logstash и активировать вывод Elasticsearch:
- filebeat setup false localhost:5601
Результат должен выглядеть примерно следующим образом:
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html
Loaded machine learning job configurations
Loaded Ingest pipelinesТеперь вы можете запустить и активировать Filebeat:
- systemctl start filebeat
- systemctl filebeat
Если вы правильно настроили комплекс Elastic, Filebeat начнет отправлять системный журнал и журналы авторизации в Logstash, откуда эти данные будут загружаться в Elasticsearch.
Чтобы подтвердить получение этих данных в Elasticsearch необходимот отправить в индекс Filebeat запрос с помощью следующей команды:
-
Результат должен выглядеть примерно следующим образом:
...
{
{ "took" : 4, "timed_out" : false, "_shards" : { "total" : 2, "successful" : 2, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 4040, "relation" : "eq" }, "max_score" : 1.0, "hits" : [ { "_index" : "filebeat-7.7.1-2020.06.04", "_type" : "_doc", "_id" : "FiZLgXIB75I8Lxc9ewIH", "_score" : 1.0, "_source" : { "cloud" : { "provider" : "digitalocean", "instance" : { "id" : "194878454" }, "region" : "nyc1" }, "@timestamp" : "2020-06-04T21:45:03.995Z", "agent" : { "version" : "7.7.1", "type" : "filebeat", "ephemeral_id" : "cbcefb9a-8d15-4ce4-bad4-962a80371ec0", "hostname" : "june-ubuntu-20-04-elasticstack", "id" : "fbd5956f-12ab-4227-9782-f8f1a19b7f32" },
...Если в результатах показано 0 совпадений, Elasticsearch не выполняет загрузку журналов в индекс, который вы искали, и вам нужно проверить настройки на ошибки. Если вы получили ожидаемые результаты, перейдите к следующему шагу, где мы увидим, как выполняется навигация по информационным панелям Kibana.
Шаг 5 — Изучение информационных панелей Kibana
Вернемся в веб-интерфейс Kibana, который мы установили ранее.

Нажмите ссылку Discover (Изучение) в левой панели навигации (возможно вам нужно будет нажать значок раскрытия в нижнем левом углу, чтобы увидеть все элементы меню навигации). Выберите на странице Discover (Изучение) заранее настроенный индекс filebeat-* для просмотра данных Filebeat. По умолчанию при этом будут выведены все данные журналов за последние 15 минут. Ниже вы увидите гистограмму с событиями журнала и некоторыми сообщениями журнала:

Здесь вы можете искать и просматривать журналы, а также настраивать информационные панели. Сейчас на этой странице будет немного данных, потому что вы собираете системные журналы только со своего сервера Elastic Stack.
Используйте левую панель навигации для перехода на страницу Dashboard и выполните на этой странице поиск информационных панелей Filebeat System. После этого вы можете выбрать образцы панелей управления, входящие в комплект модуля Filebeat system.
Например, вы можете просматривать подробную статистику по сообщениям системного журнала:

Также вы сможете видеть, какие пользователи использовали команду sudo и когда:

В Kibana имеется множество других функций, в том числе функции фильтрации и составления диаграмм, так что вы можете свободно их исследовать.
Заключение
В этом обучающем модуле вы научились устанавливать и настраивать комплекс Elastic Stack для сбора и анализа данных системных журналов. Помните, что вы можете отправлять в Logstash практически любые типы данных журнала и индексированных данных с помощью Beats, однако данные будут более полезны, если они будут проанализированы и структурированы с помощью фильтра Logstash, который преобразует данные в единый формат, легко читаемый Elasticsearch.
Посетителям:
Здесь вы можете скачать бесплатно, без регистрации и смс программы, игры, windows, музыку, софт, Русскую рыбалку, взлом и секреты одноклассников и вконтакте, книги, Total Commander, Yasu, скрипты, скачать ключи к kaspersky и drweb, crack, photoshop, трейнеры и nocd для игр, и многое другое. Играть во флеш игры онлайн. На сайте представлено множество полезной информации.
Welcome to our site. Here you will not find the information on cars and motorcycles, currencies and quotations of securities, the real estate, insurance, the medical, political, financial, legal and other information which are not concerning a software and the multimedia data. For us you can find and download free of charge, without what or registrations — the newest films, fresh music in format MP3, flash games, breaking and the secrets of my classmates and VKontakte, novelties of games for PC and the consoles, interesting and beneficial programs and utilities as from eminent manufacturers of a software, and to anybody unknown programmers. You can always download under links from our site of Windows XP, Vista, Windows 7 Seven, Microsoft Office with the newest upgrades, Adobe Photoshop, 3D Studio Max, AutoCAD, Total Commander, Kaspersky Anti Virus, Kaspersky Internet Security, DrWEB and other known antiviruses, wall-paper for a desktop, e-books, scripts for web designers, trainers, Nocd, cracks and keygens to programs, serial keys and many other things.
Правообладателям:
Все материалы найдены на просторах сети интернет как свободно распространяемые и выложены исключительно в ознакомительных целях. Если вы являетесь законным правообладателем какого либо продукта и против его размещения на данном сайте, сообщите нам и мы немедленно удалим данный материал. Администрация сайта не несет ответственности за действия посетителей, нарушающих авторские права.
All materials are found on open spaces of a network the Internet as freely extended and laid out exclusively in the fact-finding purposes. If you are what lawful legal owner or a product and against its placing on the given site, inform us and we will immediately remove the given material. The administration of a site does not bear responsibility for actions of the visitors breaking copyrights.
Elastic-стек — это набор мощных современных инструментов для распределенного поиска, анализа, ведения логов и визуализации средних и больших массивов данных. Вы узнаете, как установить и настроить для работы все эти инструменты, изучите их базовую конфигурацию, научитесь использовать Elasticsearch для распределенного поиска и анализа данных, Logstash — для логирования и Kibana — для визуализации данных. Вы сможете самостоятельно создавать плагины с помощью Kibana и Beats, познакомитесь с Elastic X-Pack — плагином для мониторинга и обеспечения высокого уровня безопасности, а также получите множество полезных советов по использованию Elastic Cloud и развертыванию Elastic Stack.
Вы узнаете:
• о компонентах Elastic Stack;
• о функциональных возможностях Elastic Stack;
• об эффективном построении конвейеров данных, позволяющих загрузить в Elasticsearch и Logstash терабайты и петабайты информации для поиска и логирования;
• о том, как использовать Kibana для визуализации данных в реальном времени;
• о безопасности, мониторинге, возможностях Elastic Stack для выдачи уведомлений и составления отчетов;
• о создании приложений Elastic на собственных серверах и в облаке.
Создавайте полноценные распределенные решения для обработки данных в реальном времени!
Книга ориентирована на специалистов по Data Science, желающих эффективно использовать имеющиеся источники данных в бизнесе. Если вы желаете приобрести фундаментальные знания об обработке больших распределенных данных в реальном времени, то эта книга для вас. Пригодится базовое понимание нотации JSON. Опыта работы с Elasticsearch не требуется.
Elastic-стек — это набор мощных современных инструментов для распределенного поиска, анализа, ведения логов и визуализации средних и больших массивов данных. Вы узнаете, как установить и настроить для работы все эти инструменты, изучите их базовую конфигурацию, научитесь использовать Elasticsearch для распределенного поиска и анализа данных, Logstash — для логирования и Kibana — для визуализации данных. Вы сможете самостоятельно создавать плагины с помощью Kibana и Beats, познакомитесь с Elastic X-Pack — плагином для мониторинга и обеспечения высокого уровня безопасности, а также получите множество полезных советов по использованию Elastic Cloud и развертыванию Elastic Stack.
Вы узнаете:
• о компонентах Elastic Stack;
• о функциональных возможностях Elastic Stack;
• об эффективном построении конвейеров данных, позволяющих загрузить в Elasticsearch и Logstash терабайты и петабайты информации для поиска и логирования;
• о том, как использовать Kibana для визуализации данных в реальном времени;
• о безопасности, мониторинге, возможностях Elastic Stack для выдачи уведомлений и составления отчетов;
• о создании приложений Elastic на собственных серверах и в облаке.
Создавайте полноценные распределенные решения для обработки данных в реальном времени!
Книга ориентирована на специалистов по Data Science, желающих эффективно использовать имеющиеся источники данных в бизнесе. Если вы желаете приобрести фундаментальные знания об обработке больших распределенных данных в реальном времени, то эта книга для вас. Пригодится базовое понимание нотации JSON. Опыта работы с Elasticsearch не требуется.
ELK – это аббревиатура, используемая для описания стека из трех популярных проектов: Elasticsearch, Logstash и Kibana. Стек ELK, зачастую именуемый Elasticsearch, предоставляет возможность собирать журналы всех ваших систем и приложений, анализировать их и создавать визуализации, чтобы мониторить приложения и инфраструктуры, быстрее устранять неполадки, анализировать систему безопасности и многое другое.
E = Elasticsearch
Elasticsearch – это распределенный поисковый и аналитический движок на базе Apache Lucene. Он становится идеальным инструментом для различных примеров использования аналитики журналов и поиска благодаря поддержке различных языков, высокой производительности и документам JSON без схем. Подробнее »
21 января 2021 года Elastic NV объявила об изменении стратегии лицензирования программного обеспечения и о том, что новые версии Elasticsearch и Kibana под разрешительной лицензией Apache версии 2.0 (ALv2) выходить не будут. Вместо них предложены новые версии программного обеспечения по лицензии Elastic, а исходный код доступен по лицензии Elastic или SSPL. Эти лицензии не являются открытыми исходными кодами и не дают пользователям ту же свободу. Для безопасного высококачественного поиска и аналитики с полностью открытым исходным кодом, мы создали проект OpenSearch – развиваемую сообществом ветвь открытого исходного кода Elasticsearch и Kibana с лицензией ALv2.
L = Logstash
Logstash – это предназначенный для приема данных инструмент с открытым исходным кодом, который позволяет собирать данные из различных источников, преобразовывать их и отправлять в нужное место назначения. Благодаря встроенным фильтрам и поддержке более 200 подключаемых модулей Logstash обеспечивает пользователям простой доступ к данным независимо от их источника или типа. Подробнее »
K = Kibana
Kibana – это инструмент визуализации и изучения данных для просмотра журналов и событий. Kibana предлагает простые в использовании интерактивные диаграммы, встроенные агрегаторы и фильтры, а также геопространственную поддержку, благодаря чему является предпочтительным выбором для визуализации данных, хранящихся в Elasticsearch. Подробнее »

