Как установить Elastic Stack (Elasticsearch, Logstash и Kibana) на CentOS 8
Это руководство существует для этих версий ОС
- CentOS 8
- CentOS 7
На этой странице
- Шаг 1. Добавьте эластичный репозиторий
- Шаг 2. Установите и настройте Elasticsearch
- Шаг 3. Установите и настройте информационную панель Kibana.
- Шаг 4. Настройте Nginx в качестве обратного прокси-сервера для Kibana
- Шаг 5. Установите и настройте Logstash
- Шаг 6. Установите Filebeat на клиенте
- - Установите Filebeat на CentOS 8
- - Установите Filebeat в Ubuntu 18.04.
- - Настройка Filebeat
Elasticsearch — это поисковая система с открытым исходным кодом, основанная на Lucene, разработанная на Java. Он предоставляет распределенную и многопользовательскую полнотекстовую поисковую систему с веб-интерфейсом HTTP Dashboard (Kibana). Данные запрашиваются, извлекаются и сохраняются с помощью схемы документа JSON. Elasticsearch — это масштабируемая поисковая система, которую можно использовать для поиска всех видов текстовых документов, включая файлы журналов. Elasticsearch — это сердце Elastic Stack или ELK Stack.
Logstash — это инструмент с открытым исходным кодом для управления событиями и журналами. Он обеспечивает конвейеризацию сбора данных в реальном времени. Logstash соберет данные вашего журнала, преобразует их в документы JSON и сохранит их в Elasticsearch.
Kibana — это инструмент визуализации данных с открытым исходным кодом для Elasticsearch. Kibana предоставляет симпатичный веб-интерфейс панели инструментов. Это позволяет вам управлять и визуализировать данные из Elasticsearch. Он не только красивый, но и мощный.
В этом руководстве мы покажем вам пошаговую установку и настройку Elastic Stack на сервере CentOS 8. Мы установим и настроим Elasticsearch, Logstash и Kibana. А затем настройте бит файлов Beats на клиентских системах Ubuntu и CentOS.
Предпосылки
- CentOS 8 (64-разрядная версия) с 4 ГБ ОЗУ — elk-master
- CentOS 8 (64-разрядная версия) с 1 ГБ ОЗУ – client01
- Ubuntu 18.04, 64-разрядная версия, 1 ГБ ОЗУ — client02
Что мы будем делать:
- Добавление эластичного репозитория на сервер CentOS 8
- Установка и настройка Elasticsearch
- Установка и настройка информационной панели Kibana
- Настройка Nginx в качестве обратного прокси-сервера для Kibana
- Установка и настройка Logstash
- Установка и настройка Filebeat
- Тестирование
Шаг 1. Добавьте эластичный репозиторий
Во-первых, собирались добавить ключ и репозиторий Elasticsearc на сервер CentOS 8. С репозиторием elasticsearch, предоставленным elastic.co, мы смогли установить эластичные продукты, включая Elasticsearch, Logstash, Kibana и Beats.
Добавьте эластичный ключ в систему с помощью следующей команды.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
После этого перейдите в каталог /etc/yum.repos.d и создайте новый файл репозитория elasticsearch.repo.
cd /etc/yum.repos.d/
vim elasticsearch.repoВставьте репозиторий elasticsearch ниже.
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-mdСохранить и закрыть.
Теперь проверьте все доступные репозитории в системе, используя приведенную ниже команду dnf.
dnf repolist
И вы получите репозиторий elasticsearch, добавленный на сервер CentOS 8.
В результате вы можете установить продукты Elastic, такие как Elasticsearch, Logstash, Kibana и т. д.
Шаг 2. Установите и настройте Elasticsearch.
На этом этапе мы собирались установить и настроить Elasticsearch.
Установите пакет Elasticsearch с помощью приведенной ниже команды dnf.
sudo dnf install elasticsearch -y
После завершения установки перейдите в каталог /etc/elasticsearch и отредактируйте файл конфигурации elasticsearch.yml с помощью редактора vim.
cd /etc/elasticsearch/
vim elasticsearch.ymlРаскомментируйте следующие строки и измените значение для каждой строки, как показано ниже.
network.host: 127.0.0.1
http.port: 9200Сохранить и закрыть.
По выбору:
Вы можете настроить эластичный поиск, отредактировав файл конфигурации JVM jvm.options и настроив размер кучи в зависимости от того, сколько у вас памяти.
Отредактируйте конфигурацию JVM jvm.options с помощью редактора vim.
vim jvm.options
Измените минимальный/максимальный размер кучи с помощью конфигурации Xms и Xmx, как показано ниже.
-Xms512m
-Xmx512mСохранить и закрыть.
Затем перезагрузите конфигурацию диспетчера systemd и добавьте службу elasticsearch во время загрузки.
sudo systemctl daemon-reload
sudo systemctl enable elasticsearchЗатем запустите службу elasticsearch.
sudo systemctl start elasticsearch
В результате эластичный поиск запущен и работает за локальным IP-адресом 127.0.0.1 с портом по умолчанию 9200 на сервере CentOS 8.
Вы можете проверить эластичный поиск, используя команду curl ниже.
curl -XGET 'http://127.0.0.1:9200/?pretty'
И ниже результат, который вы получите.
Шаг 3 — Установите и настройте панель инструментов Kibana
После установки elasticsearch собирались установить и настроить Kibana Dashboard на сервере CentOS 8.
Установите панель управления Kibana с помощью приведенной ниже команды dnf.
sudo dnf install kibana
После завершения установки перейдите в каталог /etc/kibana и отредактируйте файл конфигурации kibana.yml.
cd /etc/kibana/
vim kibana.ymlРаскомментируйте и измените конфигурацию некоторых строк, как показано ниже.
server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"Сохранить и закрыть.
Затем добавьте службу kibana в загрузку системы и запустите службу kibana.
sudo systemctl enable kibana
sudo systemctl start kibanaСлужба Kibana запущена и работает на сервере CentOS 8, проверьте ее с помощью следующих команд.
systemctl status kibana
netstat -plntuИ вы получите результат, как показано ниже.
В результате служба Kibana запущена и работает с TCP-портом по умолчанию 5601.
Шаг 4. Настройте Nginx в качестве обратного прокси для Kibana
На этом этапе мы собирались установить веб-сервер Nginx и настроить его в качестве обратного прокси-сервера для панели управления Kibana.
Установите Nginx и httpd-tools с помощью приведенной ниже команды dnf.
sudo dnf install nginx httpd-tools
После завершения установки перейдите в каталог /etc/nginx/conf.d и создайте новый файл конфигурации kibana.conf.
cd /etc/nginx/conf.d/
vim kibana.confВставьте следующую конфигурацию.
server {
listen 80;
server_name elk.hakase-labs.io;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass http://127.0.0.1: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;
}
}Сохранить и закрыть.
Далее нам нужно создать базовую аутентификацию для защиты доступа Kibana. Измените пользователя hakase на своего и выполните команду htpasspwd, как показано ниже.
sudo htpasswd -c /etc/nginx/.kibana-user hakase
TYPE YOUR PASSWORDВведите свой пароль и проверьте конфигурацию nginx.
nginx -t
Убедитесь, что нет ошибки.
Теперь добавьте службу nginx в загрузку системы и запустите службу nginx.
systemctl enable nginx
systemctl start nginxВ результате установка и настройка Nginx в качестве обратного прокси для Kibana Dashboard завершена.
Шаг 5 — Установите и настройте Logstash
На этом этапе мы собирались установить и настроить logstash грузоотправителя журналов. Мы установим logstash, настроим входные биты, настроим фильтрацию системного журнала с помощью плагина logstash под названием grok, а затем настроим вывод на elasticsearch.
Установите logstash с помощью приведенной ниже команды dnf.
sudo dnf install logstash
После завершения установки перейдите в каталог /etc/logstash и отредактируйте файл конфигурации JVM jvm.options с помощью редактора vim.
cd /etc/logstash/
vim jvm.optionsИзмените минимальный/максимальный размер кучи с помощью конфигурации Xms и Xmx, как показано ниже.
-Xms512m
-Xmx512mСохранить и закрыть.
Затем перейдите в каталог /etc/logstash/conf.d и создайте файл конфигурации для ввода ударов с именем input-beat.conf.
cd /etc/logstash/conf.d/
vim input-beat.confВставьте следующую конфигурацию.
input {
beats {
port => 5044
}
}Сохранить и закрыть.
Теперь создайте файл конфигурации syslog-filter.conf.
vim 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}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}Сохранить и закрыть.
Затем создайте выходную конфигурацию для elasticsearch output-elasticsearch.conf.
vim output-elasticsearch.conf
Вставьте следующую конфигурацию.
output {
elasticsearch { hosts => ["127.0.0.1:9200"]
hosts => "127.0.0.1:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}Сохранить и закрыть.
Затем добавьте службу logstash в загрузку системы и запустите службу logstash.
systemctl enable logstash
systemctl start logstashСлужба logstash запущена и работает, проверьте ее с помощью следующих команд.
systemctl status logstash
netstat -plntuИ вы получите результат, как показано ниже.
В результате средство доставки журналов logstash запущено и работает на сервере CentOS 8 с TCP-портом по умолчанию 5044. И базовая установка Elastic Stack завершена, и мы готовы отправлять и отслеживать наши журналы в Elastic (ELK Stack) сервер.
Шаг 6 — Установите Filebeat на клиенте
На этом этапе мы собирались показать вам, как настроить файлообменник в системах Ubuntu и CentOS. Мы установим filebeat и настроим отправку журналов с обоих серверов в Logstash на гибком сервере.
- Установите Filebeat на CentOS 8
Добавьте ключ elasticsearch в систему CentOS 8, используя следующую команду.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Теперь перейдите в каталог /etc/yum.repos.d и создайте файл elasticsearch.repo с помощью редактора vim.
cd /etc/yum.repos.d/
vim elasticsearch.repoВставьте следующую конфигурацию.
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-mdСохранить и закрыть.
Теперь установите filebeat с помощью приведенной ниже команды dnf.
sudo dnf install filebeat
Дождитесь окончания установки filebeat.
- Установите Filebeat на Ubuntu 18.04.
Во-первых, установите пакеты apt-transport-https.
sudo apt install apt-transport-https
После этого добавьте ключ elasticsearch и репозиторий, используя следующие команды.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.listТеперь обновите все репозитории и установите filebeat в систему Ubuntu с помощью приведенной ниже команды apt.
sudo apt update
sudo apt install filebeatДождитесь окончания установки filebeat.
- Настроить файлбит
Конфигурация filebeat находится в каталоге /etc/filebeat. Перейдите в каталог filebeat и отредактируйте файл конфигурации filebeat.yml.
cd /etc/filebeat/
vim filebeat.ymlТеперь отключите выходные данные elasticsearch по умолчанию, как показано ниже.
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["127.0.0.1:9200"]Затем включите вывод logstash и укажите IP-адрес хоста logstash.
output.logstash:
# The Logstash hosts
hosts: ["10.5.5.25:5044"]Сохранить и закрыть.
Далее нам нужно включить модули filebeat. Запустите команду filebeat ниже, чтобы получить список модулей filebeat.
filebeat modules list
Включите системный модуль с помощью следующей команды.
filebeat modules enable system
Системный модуль filebeat был включен с помощью файла конфигурации modules.d/system.yml.
Отредактируйте конфигурацию системного модуля с помощью редактора vim.
cd /etc/filebeat/
vim modules.d/system.ymlРаскомментируйте путь к файлу системного журнала и файлу авторизации ssh.
Для системы CentOS:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/messages"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/secure"]Для системы Ubuntu:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/syslog"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/auth.log"]Сохранить и закрыть.
Теперь добавьте службу filebeat в загрузку системы и запустите службу.
systemctl enable filebeat
systemctl start filebeatСервис filebeat запущен и работает, вы можете проверить это с помощью следующей команды.
systemctl status filebeat
И вам будет показан результат, как показано ниже.
Ниже приведен результат с сервера CentOS 8.
А ниже — из Ubuntu Server 18.04.
В результате соединение между filebeat и сервисом logstash на IP-адресе сервера эластичного стека 10.5.5.12 установлено.
Шаг 7 — Тестирование
Откройте веб-браузер и введите доменное имя установки Elastic Stack в адресной строке.
Теперь войдите в панель инструментов Kibana, используя созданную вами учетную запись базовой аутентификации.
И вы получите панель инструментов Kibana, как показано ниже.
Теперь подключитесь к данным индекса elasticsearch, которые автоматически создаются после подключения файла к logstash. Нажмите на ссылку Подключиться к индексу Elasticsearch.
Создайте шаблон индекса filebeat-* и нажмите кнопку «Следующий шаг».
В качестве имени фильтра выберите фильтр @timestamp и щелкните Создать шаблон индекса.
Шаблон индекса filebeat-* создан, щелкните меню «Обнаружение» слева.
И вы получите данные журнала от клиентов filebeat, как показано ниже.
Журналы для системы CentOS 8.
Журнал для системы Ubuntu.
В результате данные журнала, определенные в системном модуле filebeat, были отправлены на сервер эластичного стека.
И установка и настройка Elastic Stack на CentOS 8 успешно завершена.
Ссылка
- https://www.elastic.co/guide/index.html