ShareIT — поделись знаниями!
Полезно
Узнать IP — адрес компьютера в интернете
Онлайн генератор устойчивых паролей
Онлайн калькулятор подсетей
Калькулятор инсталляции IP — АТС Asterisk
Руководство администратора FreePBX на русском языке
Руководство администратора Cisco UCM/CME на русском языке
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Популярное и похожее
Пошаговый ввод в домен Windows 10
Погружение в Iptables – теория и настройка
ELK (ElasticSearch, LogStash, Kibana) – сценарии использования
Полезные команды для управления Apache в Linux
ELK (ElasticSearch, LogStash, Kibana): базовая настройка
Ready, steady, go!
Такой большой и интересный инструмент — а разворачивать как?
В одной из предыдущих статей мы знакомились с таким инструментом разработчика, как ELK. Сегодня мы разберемся, как правильно подготовить этот комплекс для практической работы.
Для начала напомним, что ELK это один из наиболее удобных инструментов разработчика, предназначенный для быстрого выявления неполадок в работе объемных программ путем сбора и анализа логов. Этот комплекс состоит из трех приложений: поисковика Elasticsearch, сборщика данных Logstash и визуализатора Kibana. Весь комплекс разрабатывается компанией Elastic.
Ознакомимся с системными требованиями. На каждом из серверов в системе рекомендуется иметь не менее 8 физических ядер и не менее 48 Гб оперативной памяти. Кроме того, если данные планируется собирать с крупной системы, то объем внутренней памяти будем оценивать по принципу "чем больше тем лучше". 8 Тб это рекомендуемые требования, но этот показатель может варьироваться. Ну и, разумеется, чем выше скорость соединения между серверами — тем быстрее будет проводиться обработка информации. Рекомендуемый показатель — 1Гб/с. Система из трех таких серверов позволит обрабатывать до тысячи событий в секунду, собирать и отображать 95% данных за отдельные периоды времени (5 минут, сутки),хранить данные до 90 дней и обслуживать до 10 клиентов по протоколу HTTP одновременно.
Поскольку все элементы данного решения реализованы на Java, первым делом нужно установить актуальную версию Oracle Java. Также рекомендуется изучить дополнительную информацию о компонентах ELK на предмет совместимости версий.
Если на Вашей рабочей станции установлены Ubuntu или Debian, устанавливаем соединение с репозиторием для скачивания Oracle Java. Если вы пользуетесь CentOS то качаем программную среду на сервер с сайта разработчика. После того, как процесс установки завершится рекомендуется проверить актуальную версию с помощью соответствующей команды консоли. Если все хорошо, то это значит, что почва подготовлена, и можно переходить к следующему этапу
А им станет скачивание и установка поискового инструмента Elasticsearch. Это также не вызовет особой сложности достаточно скопировать в систему публичный ключ репозитория, установить с ним соединение (пользователи Debian и Ubuntu могут столкнуться с отсутствием загрузочного пакета apt-transport-https его нужно будет установить дополнительно), скачать актуальную версию Elasticsearch и запустить процесс установки. Чтобы работа приложения была корректной, его стоит добавить в автозагрузку. Затем проверяем, штатно ли прошла установка, запустив программу.
Итак, все запустилось нормально. Можно переходить к этапу конфигурирования Elasticsearch. Это не займет много времени нужно будет отредактировать пару строк в файле конфигурации /etc/elasticsearch/elasticsearch.yml . Во-первых, чтобы не собирать лишнюю информацию, указываем хост локального интерфейса, через который будет передавать данные Logstash (по умолчанию, данные собираются со всех сетевых интерфейсов), а во-вторых, указываем путь к хранилищу данных, откуда мы и будем с ними работать. Рекомендуется выделить под хранилище значительные объемы памяти чем сложнее проект, тем больше будут весить собираемые логи. После завершения процесса настройки перезапускаем и проверяем программу.
Далее нас ждет установка веб-панели Kibana. Этот процесс почти не отличается от установки Elasticsearch, ключи репозиториев будут одинаковыми. В целом, все то же самое устанавливаем соединение с репозиторием, скачиваем, устанавливаем, добавляем в автозагрузку, запускаем, проверяем. Стоит обозначить, что приложение загружается довольно долго, поэтому проверку лучше осуществить через пару минут после отдачи команды на запуск приложения.
Редактирование настроек Kibana можно осуществить через файл /etc/kibana/kibana.yml . Здесь нас интересует строка с указанием интерфейса, который будет "слушать" Kibana. Это могут быть все интерфейса, либо один определенный в данном случае нужно будет указать конкретный ip-адрес нужного сервера. Далее проверим сам веб-интерфейс, для этого указываем адрес — например, http://10.1.4.114:5601.
Наконец, перейдем к этапу установки Logstash. Здесь все то же самое, только перед проверочным запуском программу нужно настроить. Можно отредактировать основной файл настроек /etc/logstash/logstash.yml , но рациональнее будет создать несколько файлов конфигурации в директории /etc/logstash/conf.d , чтобы группировать настройки по назначению.
Создаем файлы input.conf и output.conf. В первом файле мы указываем порт, на который будем принимать информацию, а также параметры ssl, если в этом есть необходимость. Во втором файле указываем параметры передачи данных в Elasticsearch. Данные лучше передавать под указанным дополнительно индексом, также используя маску в виде даты. Также можно отключить функцию отправки данных в общий лог системы, чтобы не занимать место в хранилище дублированными фрагментами информации.
Кроме этого, потребуется создать файл с параметрами обработки данных. Дело в том, что не всегда удобно работать с полным объемом, и приходится делать выборку ключевых данных. Создаем файл filter.confи указываем параметры, на основании которых будут фильтроваться необходимые данные. Также при необходимости можно настроить, например, корректное отображение даты или географического местоположения сервера, с которого будет поступать информация. Завершив конфигурирование, можно проверить работу программы, запустив ее и просмотрев внутренний файл лога /var/log/logstash/logstash-plain.log .
Основной пакет программ установлен теперь осталось установить программы, которые будут отправлять данные, на сервера. Компания Elastic предлагает использовать Filebeat, но можно воспользоваться и альтернативными вариантами. Здесь процесс установки аналогичен предыдущим. Файл настроек по умолчанию позволяет сразу работать с программой, но можно и подредактировать его при необходимости.
Если все сделано правильно, программный комплекс уже начал собирать логи. Следующим шагом будет открытие веб-интерфейса Kibana и настройка паттерна индекса, чтобы лог открывался в веб-интерфейсе по умолчанию, а в сохраняемых данных не было путаницы.
Пожалуйста, расскажите почему?
Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!
Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.
Если в двух словах, Elasticsearch предоставляет механизм поиска, Kibana — веб-интерфейс для работы с Elasticsearch, Logstash — инструмент для сбора логов и их передачи в Elasticsearch. Таким образом, связка Elasticsearch + Kibana + Logstash (или ELK Stack) является инструментом по сбору и хранению журналов операционных систем. При этом поддерживаются разные платформы (Windows, Linux, BSD).
В данной инструкции мы рассмотрим пример установки серверной части ELK на Linux CentOS. Также мы настроим сбор логов с CentOS, Ubuntu, Windows.
Подготовка сервера
Прежде чем начать, подготовим к установке и настройке наш сервер.
1. Установка wget
В процессе установки пакетов нам понадобиться скачивать установочные файлы. Для этого в системе должен быть установлен wget:
yum install wget
2. Настройка брандмауэра
Открываем порты для работы ELK:
firewall-cmd —permanent —add-port=<5044,5601>/tcp
- 5044 — порт, на котором слушаем Logstash.
- 5601 — Kibana.
3. SELinux
Отключаем SELinux двумя командами:
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
* первая команда выключит систему безопасности до перезагрузки сервера, вторая — навсегда.
Установка Java
Все программные продукты стека ELK разработаны на Java, поэтому не будут работать без соответствующей платформы на сервере. Для ее установки необходимо загрузить дистрибутив с сайта Oracle и выполнить его установку.
Переходим на страницу загрузки Java — на открывшейся странице принимаем лицензионное соглашение:

После появятся ссылки на платформу — кликаем по ссылке для скачивания RPM пакета:

Нас перебросит на страницу ввода логина и пароля — необходимо авторизоваться или зарегистрироваться. После начнется процесс загрузки пакета, и когда он завершится, перекидываем файл на сервер CentOS, например, при помощи WinSCP.
Если у нас нет аккаунта на портале Oracle и нет возможности его зарегистрировать, то можно скачать более раннюю версию java командой:
curl -L -C — -b "oraclelicense=accept-securebackup-cookie" -O ‘http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm’
Устанавливаем скачанный пакет командой:
После окончания установки можно ввести команду:
Она должна вернуть, примерно, следующее:
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
Elasticsearch
Переходим на страницу загрузки эластика и копируем ссылку на последнюю версию пакета RPM:

. и скачиваем по ней сам пакет:
* в моем случае была версия 7.3.2.
После устанавливаем эластик на наш сервер:
rpm -ivh elasticsearch-*
Разрешаем автозапуск сервиса и запускаем его:
systemctl enable elasticsearch
systemctl start elasticsearch
Kibana
Переходим на страницу загрузки Kibana и скачиваем ссылку на последнюю вервию пакета RPM:

. и скачиваем по ней пакет для установки kibana:
Открываем на редактирование конфигурационный файл:
Редактируем параметр host:
* в данном примере мы говорим, что сервер должен слушать на интерфейсе 192.168.1.10.
Разрешаем автозапуск Kibana и запускаем ее:
systemctl enable kibana
systemctl start kibana
Открываем браузер и переходим по ссылке http:// :5601. Если мы увидим сообщение «kibana not ready yet», просто ждем создания индекса (на это может уйти до 10 минут). После снова пробуем открыть страницу.
Мы должны увидеть страницу приветствия с заголовком «Welcome to Kibana».
Logstash
Процесс установки Logstash аналогичен — переходим на страницу загрузки программного продукта, копируем ссылку на пакет RPM:

Скачиваем пакет на нашем сервере:
. и устанавливаем его:
rpm -ivh logstash-*
Разрешаем автозапуск и стартуем сервис:
systemctl enable logstash
systemctl start logstash
Настройка Logstash
Настройки для логстэша хранятся в каталоге /etc/logstash/conf.d в файлах формата JSON. Для конфигурации используются следующие секции:
- input (входные данные).
- filter (фильтры).
- output (выходные данные).
Для каждой из них мы создадим свой файл.
* в данном примере мы настроили logstash для приема логов на порту 5044.
Данная статья описывает установку стека ELK на операционную систему семейства Linux — Ubuntu 18.04.
Стек ELK — это мощный набор инструментов для эффективного решения широкого спектра задач сбора, хранения и анализа данных:
Elasticsearch – решение для полнотекстового поиска, построенное поверх Apache Lucene и имеющее дополнительные удобства.
Logstash – утилита для сборки, фильтрации и последующего перенаправления в конечное хранилище данных. Этот механизм обеспечивает конвейер в реальном времени. Он может принимать данные из нескольких источников и преобразовывать их в документы JSON.
Kibana — приложение, позволяющее брать и искать данные из Elasticsearch и строить наглядные графики.
Как сэкономить время на установке стека ELK
Вы можете получить готовый стек ELK на Ubuntu 18.04 в виде настроенной виртуальной машины Mail.ru Cloud Solutions. При регистрации вы получаете бесплатный бонусный счет, которого достаточно, чтобы тестировать сервер несколько дней.
Чтобы узнать больше о ELK в магазине приложений, перейдите в Центр помощи .
Требования
Операционная система Ubuntu версии 18.04.
Установленный веб-сервер Nginx.
Установленная виртуальная машина Java.
Пользователь с доступом к команде sudo.
По сравнению с веб-сервером Apache веб-сервер Nginx использует меньше ресурсов для размещения объемных сайтов с высоким трафиком. Благодаря архитектуре Nginx можно легко масштабироваться до сотен тысяч параллельных соединений.
Чтобы установить и выполнить первичную настройку веб-сервера Nginx:
- Откройте окно терминала.
- Обновите индексы пакетов, выполнив команду:
- Установите веб-сервер Nginx, выполнив команду:
- Для проверки работы веб-сервера запустите веб-браузер и в адресной строке введите IP-адрес веб-сервера.
Если установка выполнена успешно, откроется следующая страница веб-сервера:

Для работы стека ELK требуется виртуальная машина Java. Чтобы установить JVM:
Откройте окно терминала.
Установите программный пакет JVM, выполнив команду:
В результате будет установлен пакет Java Runtime Environment (JRE).
Установите программный пакет JDK, включающий компилятор Java, стандартные библиотеки классов Java, примеры, документацию и различные утилиты. Для этого выполните команду:
Чтобы установить и выполнить первичную настройку Elasticsearch:
Для проверки текущей версии Elasticsearch, перейдите на страницу: https://www.elastic.co/downloads/elasticsearch.
Откройте окно терминала.
Импортируете открытый ключ GPG Elasticsearch, с использованием которого защищаются пакеты Elastic, выполнив команду:
Добавьте пакеты Elastic в каталог системных репозиториев sources.list.d, выполнив команду:
Обновите индексы пакетов, выполнив команду:
Установите Elasticsearch, выполнив команду:
Внесите изменения в конфигурационный файл elasticsearch.yml. Для этого:
- Откройте этот файл для редактирования, выполнив команду:
- Найдите строку:
И замените ее на строку:
Примечание.
Для поиска по файлу используйте сочетание клавиш CTRL+W.
После редактирования конфигурационного файла *.yml убедитесь, что в нем нет лишних пробелов и/или отступов!
- Сохраните изменения, используя сочетание клавиш CTRL+O, и завершите редактирование, используя сочетание клавиш CTRL+X.
-
Запустите сервис Elasticsearch, выполнив команду:
Проверьте статус запуска сервиса Elasticsearch, выполнив команду:

- Откройте файл, содержащий параметры виртуальной машины Java, выполнив команду:
- Найдите параметры, определяющие минимальное и максимальное количество оперативной памяти для Java:
- В параметрах -Xms1g и -Xmx1g укажите нужные значения. Например, для операционной системы с объемом оперативной памяти 1 ГБ, можно указать:
- Сохраните изменения, используя сочетание клавиш CTRL+O, и завершите редактирование, используя сочетание клавиш CTRL+X.
- Запустите сервис Elasticsearch и проверьте статус. В случае отсутствия ошибок отобразится следующее:

Примечание.
Подробно о параметрах Xms и Xmx читайте тут. Для машин с небольшим объемом оперативной памяти мы рекомендуем ограничить объем памяти, используемый JVM.

Чтобы при перезагрузке операционной системы сервис Elasticsearch запускался автоматически, выполните команду:
Для проверки доступа к сервису Elasticsearch отправьте HTTP-запрос, выполнив команду:
Если установка Elasticsearch выполнена успешно, отобразится следующая информация:

Чтобы установить и выполнить первичную настройку Kibana, выполните следующее:
- Убедитесь, что вы успешно установили Elasticsearch.
- Откройте окно терминала.
- Установите Kibana, выполнив команду:
Запустите Kibana, выполнив команду:
Чтобы при перезагрузке операционной системы сервис Kibana запускался автоматически, выполните команду:
Для проверки статуса работы Kibana, выполните команду:
Внесите изменения в конфигурационный файл kibana.yml. Для этого:
Создайте учетную запись администратора для доступа к веб-интерфейсу Kibana. Для этого выполните команду:
где mcskibadmin — логин учетной записи администратора, htpasswd.users — файл, в котором хранятся учетные данные.
Затем введите пароль.
Создайте файл с виртуальным сайтом для веб-сервера Nginx, выполнив команду:
В этот файл добавьте следующую информацию:
Сохраните изменения, используя сочетание клавиш CTRL+O, и завершите редактирование, используя сочетание клавиш CTRL+X.
- Активируйте новую конфигурацию Nginx, выполнив команду:
- Перезагрузите Kibana, выполнив команду:
Перезагрузите веб-сервер Nginx, выполнив команду:
Убедитесь, что синтаксис конфигурационного файла nginx не содержит ошибок, выполнив команду:
Чтобы установить и выполнить первичную настройку Logstash:
Установите Logstash, выполнив команду команду:
Создайте и настройте конфигурационный файл, содержащий правила приема информации с beats-агентов. Для этого:
Примечание.
Далее приведен один из возможных вариантов настройки. Дополнительную информацию читайте тут.
- Создайте файл 02-beats-input.conf, выполнив команду:
- В этот файл добавьте строки:
Сохраните изменения, используя сочетание клавиш CTRL+O, и завершите редактирование, используя сочетание клавиш CTRL+X.
- Создайте и настройте конфигурационный файл 30-elasticsearch-output.conf, содержащий правила хранения beats в информации Elasticsearch. Для этого:
- Создайте файл 30-elasticsearch-output.conf, выполнив команду:
- В этот файл добавьте следующие строки:
Сохраните изменения, используя сочетание клавиш CTRL+O, и завершите редактирование, используя сочетание клавиш CTRL+X.
- Создайте файл, содержащий правила фильтрации и структуризации входящих данных. Для этого:
- Создайте файл 10-system-filter.conf, выполнив команду:
- В открывшийся файл поместите следующие строки:
Сохраните изменения, используя сочетание клавиш CTRL+O, и завершите редактирование, используя сочетание клавиш CTRL+X.
- Проверьте конфигурацию Logstash, выполнив команду:
Запустите Logstash, выполнив команду:
Чтобы при перезагрузке операционной системы сервис Logstash запускался автоматически, выполните команду:
Filebeat позволяет собирать данные (beats) из различных источников и передавать их в Logstash или Elasticsearch в Linux-подобных системах.
Для установки Filebeat:
- Откройте терминал.
- Установите Filebeat, выполнив команду:
- Настройте конфигурационный файл filebeat.yml. Для этого:
- Откройте этот файл:
- Запретите Filebeat отправлять данные напрямую в Elasticsearch. Для этого найдите строки:
И замените их на строки:
- Укажите сервису Filebeat использовать Logstash в качестве сборщика логов. Для этого найдите строки:
И замените их на строки:
Сохраните изменения, используя сочетание клавиш CTRL+O, и завершите редактирование, используя сочетание клавиш CTRL+X.
- Включите модуль Logstash. Для этого выполните команду:
Примечание.
Подробно о filebeat-модулях читайте тут.
- Для просмотра включенных модулей выполните команду:
- Загрузите шаблон индекса Elasticsearch, выполнив команду:
Примечание.
Индексы Elasticsearch представляют собой набор документов, имеющих сходные характеристики. Они определяются по именам, которые используются для ссылок на индексы при выполнении различных операций с индексами. Шаблон индексов загружается автоматически при создании новых индексов.
- Дашборды позволяют визуализировать данные Filebeat отсылаемые в Kibana. Для включения дашборда выполните команду:
- Запустите Filebeat, выполнив команду:
- Чтобы при перезагрузке операционной системы сервис filebeat запускался автоматически, выполните команду:
- Чтобы убедиться, что Elasticsearch получает данные, запросите индекс Filebeat с помощью команды:
Установка стека ELK завершена.
В адресной строке веб-браузера введите IP-адрес вашего Elastic-сервера. Для входа используйте учетные данные администратора . После успешной авторизации вы перейдете на основную страницу Kibana.
Обратная связь
Возникли проблемы или остались вопросы? Напишите нам, мы будем рады вам помочь.







