Как обновить elasticsearch ubuntu
Комплекс Elastic Stack (прежнее название — комплекс ELK) представляет собой набор программного обеспечения Elastic с открытым исходным кодом, обеспечивающий возможности поиска, анализа и визуализации журналов, сгенерированных любым источником в любом формате (централизованное ведение журнала). Централизованное ведение журнала очень полезно для выявления проблем с серверами или приложениями, поскольку обеспечивает возможности поиска всех журнальных записей в одном месте. Также данная возможность позволяет выявлять проблемы, распространяющиеся на несколько серверов, посредством сопоставления их журналов за определенный период времени.
Комплекс Elastic Stack имеет четыре основных компонента:
-
: распределенная поисковая система RESTful, которая сохраняет все собранные данные. : элемент обработки данных комплекса Elastic, отправляющий входящие данные в Elasticsearch. : веб-интерфейс для поиска и визуализации журналов. : компактные элементы переноса данных одиночного назначения, которые могут отправлять данные с сотен или тысяч компютеров в Logstash или Elasticsearch.
В этом обучающем модуле вы научитесь устанавливать Elastic Stack на сервере Ubuntu 18.04. Вы научитесь устанавливать все компоненты Elastic Stack, в том числе Filebeat, инструмент для перенаправления и централизации журналов и файлов, а также настраивать эти компоненты для сбора и визуализации системных журналов. Кроме того, поскольку компонент Kibana обычно доступен только через localhost , мы будем использовать Nginx в качестве прокси для обеспечения доступа через браузер. Мы установим все эти компоненты на одном сервере, который будем называть нашим сервером Elastic Stack.
Примечание. При установке Elastic Stack необходимо использовать одну и ту же версию для всего комплекса. В этом обучающем модуле мы установим последние версии компонентов комплекса. На момент написания это Elasticsearch 6.4.3, Kibana 6.4.3, Logstash 6.4.3 и Filebeat 6.4.3.
Предварительные требования
Для этого обучающего модуля вам потребуется следующее:
Сервер Ubuntu 18.04, настроенный в соответствии с указаниями обучающего модуля «Начальная настройка сервера для Ubuntu 18.04», включая пользователя без привилегий root с привилегиями sudo и настроенный брандмауэр ufw . Требования сервера комплекса Elastic к ресурсам процессора, оперативной памяти и хранения данных зависят от объема журналов, который вы планируете собирать. В этом обучающем модуле мы будем использовать для нашего комплекса Elastic сервер VPS со следующими спецификациями:
- ОС: Ubuntu 18.04
- ОЗУ: 4 ГБ
- ЦП: 2
На сервере должно быть установлено программное обеспечение Java 8, которое требуется для Elasticsearch и Logstash. Обратите внимание, что версия Java 9 не поддерживается. Для установки следуйте указаниям раздела «Установка Oracle JDK» нашего руководства по установке Java 8 в Ubuntu 18.04.
На сервере должен быть установлен Nginx, который мы позднее настроим как обратный прокси для Kibana. Для настройки следуйте указаниям нашего обучающего модуля «Установка Nginx в Ubuntu 18.04».
Кроме того, поскольку комплекс Elastic используется для доступа ценной информации о вашем сервере, которую вам нужно защищать, очень важно обеспечить защиту сервера сертификатом TLS/SSL. Это необязательно, но настоятельно рекомендуется.
Однако поскольку вы будете вносить изменения в серверный блок Nginx в ходе выполнения этого обучающего модуля, разумнее всего будет пройти обучающий модуль «Let’s Encrypt в Ubuntu 18.04» после прохождения второго шага настоящего обучающего модуля. Если вы планируете настроить на сервере Let’s Encrypt, вам потребуется следующее:
На вашем сервере должны быть настроены обе нижеследующие записи DNS. В руководстве «Введение в DigitalOcean DNS» содержится подробная информация по их добавлению.
Шаг 1 — Установка и настройка Elasticsearch
Компоненты комплекса Elastic отсутствуют в репозиториях пакетов Ubuntu по умолчанию. Однако их можно установить с помощью APT после добавления списка источников пакетов Elastic.
Все пакеты комплекса Elastic подписаны ключом подписи Elasticsearch для защиты вашей системы от поддельных пакетов. Ваш диспетчер пакетов будет считать надежными пакеты, для которых проведена аутентификация с помощью ключа. На этом шаге вы импортируете открытый ключ Elasticsearch GPG и добавить список источников пакетов Elastic для установки Elasticsearch.
Для начала запустите следующую команду для импорта открытого ключа Elasticsearch GPG в APT:
Затем добавьте список источников Elastic в каталог sources.list.d , где APT будет искать новые источники:
Затем обновите списки пакетов, чтобы APT мог прочитать новый источник Elastic:
Установите Elasticsearch с помощью следующей команды:
После завершения установки Elasticsearch используйте предпочитаемый текстовый редактор для редактирования главного файла конфигурации Elasticsearch с именем elasticsearch.yml . Мы будем использовать nano :
Примечание. Файл конфигурации Elasticsearch имеет формат YAML, и это значит, что отступы имеют большое значение! Не добавляйте никакие дополнительные пробелы при редактировании этого файла.
Elasticsearch прослушивает весь трафик порта 9200 . Вы можете захотеть ограничить внешний доступ к вашему экземпляру Elasticsearch, чтобы посторонние не могли читать ваши данные или отключать ваш кластер Elasticsearch через REST API. Найдите строку с указанием network.host , уберите с нее значок комментария и замените значение на localhost , чтобы она выглядела следующим образом:
Сохраните и закройте файл elasticsearch.yml , нажав CTRL+X , а затем Y и ENTER , если вы используете nano . Затем запустите службу Elasticsearch с помощью systemctl :
Затем запустите следующую команду, чтобы активировать Elasticsearch при каждой загрузке сервера:
Вы получите ответ, содержащий базовую информацию о локальном узле:
Мы настроили и запустили Elasticsearch, и теперь можем перейти к установке Kibana, следующего компонента комплекса Elastic.
Шаг 2 — Установка и настройка информационной панели Kibana
Согласно официальной документации, Kibana следует устанавливать только после установки Elasticsearch. Установка в этом порядке обеспечивает правильность установки зависимостей компонентов.
Поскольку вы уже добавили источник пакетов Elastic на предыдущем шаге, вы можете просто установить все остальные компоненты комплекса Elastic с помощью apt :
Затем активируйте и запустите службу Kibana:
Поскольку согласно настройкам Kibana прослушивает только localhost , мы должны задать обратный прокси, чтобы разрешить внешний доступ. Для этого мы используем Nginx, который должен быть уже установлен на вашем сервере.
Вначале нужно использовать команду openssl для создания административного пользователя Kibana, которого вы будете использовать для доступа к веб-интерфейсу Kibana. Для примера мы назовем эту учетную запись kibanaadmin , однако для большей безопасности мы рекомендуем выбрать нестандартное имя пользователя, которое будет сложно угадать.
Введите и подтвердить пароль в диалоговом окне. Запомните или запишите эти учетные данные, поскольку они вам потребуются для доступа к веб-интерфейсу Kibana.
Если вы выполнили предварительный обучающий модуль по Nginx до конца, возможно вы уже создали этот файл и заполнили его. В этом случае удалите из файла все содержание и добавьте следующее:
Завершив редактирование, сохраните и закройте файл.
Затем активируйте новую конфигурацию, создав символическую ссылку на каталог sites-enabled . Если вы уже создали файл серверного блока с тем же именем, что и в обучающем модуле по Nginx, вам не нужно выполнять эту команду:
Затем проверьте конфигурацию на синтаксические ошибки:
Если вы следовали указаниям модуля по начальной настройке сервера, у вас должен быть включен брандмауэр UFW. Чтобы разрешить соединения с Nginx, мы можем изменить правила с помощью следующей команды:
Теперь приложение Kibana доступно через FQDN или публичный IP-адрес вашего сервера комплекса Elastic. Вы можете посмотреть страницу состояния сервера Kibana, открыв следующий адрес и введя свои учетные данные в диалоге:
На этой странице состояния отображается информация об использовании ресурсов сервера, а также выводится список установленных плагинов.
Примечание. Как указывалось в разделе предварительных требований, рекомендуется включить на сервере SSL/TLS. Вы можете следовать указаниям этого модуля, чтобы получить бесплатный сертификат SSL для Nginx в Ubuntu 18.04. После получения сертификата SSL/TLS вы можете вернуться и завершить прохождение этого обучающего модуля.
Теперь информационная панель Kibana настроена и мы перейдем к установке следующего компонента: Logstash.
Шаг 3 — Установка и настройка Logstash
Хотя Beats может отправлять данные напрямую в базу данных Elasticsearch, мы рекомендуем использовать для обработки данных Logstash. Это позволит вам собирать данные из разных источников, преобразовывать их в общий формат и экспортировать в другую базу данных.
Установите Logstash с помощью следующей команды:
После установки Logstash вы можете перейти к настройке. Файлы конфгурации Logstash имеют формат JSON и находятся в каталоге /etc/logstash/conf.d . При настройке полезно представлять Logstash как конвейер, который принимает данные с одной стороны, обрабатывает их и отправляет в пункт назначения (в данном случае в Elasticsearch). Конвейер Logstash имеет два обязательных элемента, input и output , а также необязательный элемент filter . Плагины ввода потребляют данные источника, плагины фильтра обрабатывают данные, а плагины вывода записывают данные в пункт назначения.
Создайте файл конфигурации с именем 02-beats-input.conf , где вы настроите ввод данных Filebeat:
Вставьте следующую конфигурацию input . В ней задается ввод beats , который прослушивает порт TCP 5044 .
Сохраните и закройте файл. Затем создайте файл конфигурации с именем 10-syslog-filter.conf , куда мы добавим фильтр для системных журналов или syslogs:
Вставьте следующую конфигурацию фильтра syslog. В этом примере конфигурация системных журналов взята из официальной документации по Elastic. Этот фильтр используется для синтаксического анализа входящих системных журналов, их структуризации и преобразования в удобный для использования вид с помощью панелей Kibana:
Сохраните и закройте файл после завершения.
Наконец, создайте файл конфигурации 30-elasticsearch-output.conf :
Вставьте следующую конфигурацию output . Этот вывод настраивает Logstash для хранения данных Beats в Elasticsearch, запущенном на порту localhost:9200 , в индексе с названием используемого компонента Beat. В этом обучающем модуле используется компонент Beat под названием Filebeat:
Сохраните и закройте файл.
Если вы you хотите добавить фильтры для других приложений, использующих ввод Filebeat, присваивайте файлам имена, чтобы их можно было сортировать между конфигурациями ввода и вывода. Это значит, что имена файлов должны начинаться с двузначных чисел от 02 до 30 .
Протестируйте свою конфигурацию Logstash с помощью следующей команды:
Если тестирование конфигурации выполнено успешно, запустите и активируйте Logstash, чтобы изменения конфигурации вступили в силу:
Теперь Logstash работает нормально и полностью настроен, и мы можем перейти к установке Filebeat.
Шаг 4 — Установка и настройка Filebeat
Комплекс Elastic Stack использует несколько компактных элементов транспортировки данных (Beats) для сбора данных из различных источников и их транспортировки в Logstash или Elasticsearch. Ниже перечислены компоненты Beats, доступные в Elastic:
-
: собирает и отправляет файлы журнала. : собирает метрические показатели использования систем и служб. : собирает и анализирует данные сети. : собирает данные журналов событий Windows. : собирает данные аудита Linux и отслеживает целостность файлов. : отслеживает доступность услуг посредством активного зондирования.
В этом обучающем модуле мы используем Filebeat для перенаправления локальных журналов в комплекс Elastic Stack.
Установите Filebeat с помощью apt :
Затем настройте Filebeat для подключения к Logstash. Здесь мы изменим образец файла конфигурации, входящий в комплектацию Filebeat.
Откройте файл конфигурации Filebeat:
Примечание. Как и в Elasticsearch, файл конфигурации Filebeat имеет формат YAML. Это означает, что в файле учитываются отступы, и вы должны использовать точно такое количество пробелов, как указано в этих инструкциях.
Сохраните и закройте файл.
Функции Filebeat можно расширить с помощью модулей Filebeat. В этом обучающем модуле мы будем использовать модуль system, который собирает и проверяет данные журналов, созданных службой регистрации систем в распространенных дистрибутивах Linux.
Давайте активируем его:
Вы увидите список включенных и отключенных модулей с помощью следующей команды:
Вы увидите примерно следующий список:
Filebeat по умолчанию настроен для использования путей по умолчанию для системных журналов и журналов авторизации. Для целей данного обучающего модуля вам не нужно ничего изменять в конфигурации. Вы можете посмотреть параметры модуля в файле конфигурации /etc/filebeat/modules.d/system.yml .
Затем загрузите в Elasticsearch шаблон индекса. Индекс Elasticsearch — это коллекция документов со сходными характеристиками. Индексы идентифицируются по имени, которое используется для ссылки на индекс при выполнении различных операций внутри него. Шаблон индекса применяется автоматически при создании нового индекса.
Используйте следующую команду для загрузки шаблона:
В комплект Filebeat входят образцы информационных панелей Kibana, позволяющие визуализировать данные Filebeat в Kibana. Прежде чем вы сможете использовать информационные панели, вам нужно создать шаблон индекса и загрузить информационные панели в Kibana.
При загрузке информационных панелей Filebeat подключается к Elasticsearch для проверки информации о версиях. Для загрузки информационных панелей при включенном Logstash необходимо отключить вывод Logstash и активировать вывод Elasticsearch:
Вы получите следующий результат:
Теперь вы можете запустить и активировать Filebeat:
Если вы правильно настроили комплекс Elastic, Filebeat начнет отправлять системный журнал и журналы авторизации в Logstash, откуда эти данные будут загружаться в Elasticsearch.
Вы увидите примерно следующий результат:
Если в результатах показано 0 совпадений, Elasticsearch не выполняет загрузку журналов в индекс, который вы искали, и вам нужно проверить настройки на ошибки. Если вы получили ожидаемые результаты, перейдите к следующему шагу, где мы увидим, как выполняется навигация по информационным панелям Kibana.
Шаг 5 — Изучение информационных панелей Kibana
Давайте получше познакомимся с веб-интерфейсом Kibana, который мы установили на одном из предыдущих шагов.
Откройте в браузере FQDN или публичный IP-адрес вашего сервера Elastic Stack. После ввода учетных данных, заданных на шаге 2, вы увидите главную страницу Kibana:
Здесь вы можете искать и просматривать журналы, а также настраивать информационные панели. Сейчас на этой странице будет немного данных, потому что вы собираете системные журналы только со своего сервера Elastic Stack.
Используйте левую панель навигации для перехода на страницу Dashboard и выполните на этой странице поиск информационных панелей Filebeat System. На этой странице вы можете искать образцы информационных панелей, входящих в комплектацию модуля system в Filebeat.
Также вы сможете видеть, какие пользователи использовали команду sudo и когда:
В Kibana имеется множество других функций, в том числе функции фильтрации и составления диаграмм, так что вы можете свободно их исследовать.
Заключение
В этом обучающем модуле вы научились устанавливать и настраивать комплекс Elastic Stack для сбора и анализа данных системных журналов. Помните, что вы можете отправлять в Logstash практически любые типы данных журнала и индексированных данных с помощью Beats, однако данные будут более полезны, если они будут проанализированы и структурированы с помощью фильтра Logstash, который преобразует данные в единый формат, легко читаемый Elasticsearch.
When upgrading to a new version of Elasticsearch, you need to upgrade each of the products in your Elastic Stack. Beats and Logstash 6.7 are compatible with Elasticsearch 7.15.2 to give you flexibility in scheduling the upgrade.
Elasticsearch supports rolling upgrades between minor versions, from Elasticsearch 5.6 to 6.8, and from 6.8 to 7.15.2.
5.x indices are not compatible with 7.15.2. You must remove or reindex them to upgrade to 7.15.2. The default Beats and Logstash mapping templates also need to be updated to work with 7.15.2.
Preparing to upgradeedit
Before upgrading the Elastic Stack to 7.15.2:
Upgrade processedit
- Test the upgrade in a dev environment before upgrading your production cluster.
- Back up your data. You cannot roll back to an earlier version unless you have a snapshot of your data. For information about creating snapshots, see Snapshot and restore.
- Consider closing machine learning jobs before you start the upgrade process. While machine learning jobs can continue to run during a rolling upgrade, it increases the overhead on the cluster during the upgrade process. For more information, see Rolling upgrades.
Upgrade the components of your Elastic Stack in the following order:
- Elasticsearch Hadoop: install instructions
- Elasticsearch: upgrade instructions
- Kibana: upgrade instructions
- Java High Level REST Client: dependency configuration
- Logstash: upgrade instructions
- Beats: upgrade instructions
- APM Server: upgrade instructions
- Elastic Agent: upgrade instructions
If using Elastic Agent in 7.12 or lower, your Elastic Agents will automatically be unenrolled from Fleet and will stop sending data when you upgrade to 7.13. You will need to uninstall your previous Elastic Agents before installing and enrolling Elastic Agents with Fleet Server. To learn more, see Upgrade Elastic Agent.
Logstash 6.8 and Beats 6.8 are compatible with all 7.x versions of Elasticsearch. This provides flexibility in when you schedule the upgrades for your Logstash instances and Beats agents, but we recommend upgrading as soon as possible to take advantage of performance improvements and other enhancements.
The Java High Level REST Client can communicate with any Elasticsearch node running the same major version and greater or equal minor version. When you upgrade to the next major version, the client should be updated after all of the nodes in the cluster have been updated.
Upgrading from 6.6 or earlieredit
To upgrade directly to Elasticsearch 7.15.2 from versions 6.0-6.6, you must manually reindex any 5.x indices you need to carry forward, and perform a full cluster restart. This includes any internal indices created in 5.x, such as the .kibana and .security* indices.
Make sure all 5.x indices have been deleted before upgrading to 7.15.2. Elasticsearch 7.15.2 will fail to start if any 5.x indices are present.
If you are running a version prior to 6.0, upgrade to 6.8 and reindex your old indices or bring up a new 7.15.2 cluster and reindex from remote.
The recommended path is to upgrade to 6.8 before upgrading to 7.15.2. This makes it easier to identify the changes you need to make to upgrade and enables you to perform a rolling upgrade with no downtime.
Upgrading on Elastic Cloudedit
A single click in the Elastic Cloud console can upgrade a cluster to a newer version, add more processing capacity, change plugins, and enable or disable high availability, all at the same time. During the upgrade process, Elasticsearch, Kibana, X-Pack and the officially included plugins are upgraded simultaneously.
Although upgrading your Elastic Cloud clusters is easy, you still need to address breaking changes that affect your application. Minor version upgrades, upgrades from 6.8 to 7.15.2, and all other cluster configuration changes can be performed with no downtime.
To avoid downtime when a full cluster restart is required:
- Provision an additional cluster with the new Elasticsearch version, reindex your data, and send index requests to both clusters temporarily.
- Verify that the new cluster performs as expected, fix any problems, and then permanently swap in the new cluster.
- Delete the old cluster to stop incurring additional costs. You are billed only for the time that the new cluster runs in parallel with your old cluster. Usage is billed on an hourly basis.
To learn more about the upgrade process on Elastic Cloud, see Upgrade versions.
Elastic Cloud only supports upgrades to released versions. Preview releases and master snapshots are not supported.
Elasticsearch — это платформа для распределенного поиска и анализа данных в режиме реального времени. Она пользуется популярностью благодаря удобству в использовании, наличию мощных характеристик и возможности масштабирования.
Эта статья расскажет вам о том, как установить Elasticsearch, настроить платформу под ваш вариант использования, обеспечить безопасность установки и начать работу с вашим сервером Elasticsearch.
Предварительные требования
Для работы с этим обучающим руководством вам потребуется следующее:
Сервер Ubuntu 20.04 с 4 ГБ оперативной памяти и 2 процессорами, а также настроенный пользователь без прав root с привилегиями sudo. Вы можете это сделать, воспользовавшись рекомендациями по начальной настройке сервера с Ubuntu 20.04.
Установленный OpenJDK 11.
В этом обучающем руководстве мы будем использовать минимальное количество процессоров и оперативной памяти, необходимое для работы с Elasticsearch. Обратите внимание, что требования сервера Elasticsearch к количеству процессоров, оперативной памяти и системе хранения данных зависят от ожидаемого объема журналов.
Шаг 1 — Установка и настройка Elasticsearch
Компоненты Elasticsearch отсутствуют в репозиториях пакетов Ubuntu по умолчанию. Однако их можно установить с помощью APT после добавления списка источников пакетов Elastic.
Все пакеты подписаны ключом подписи Elasticsearch для защиты вашей системы от поддельных пакетов. Ваш диспетчер пакетов будет считать надежными пакеты, для которых проведена аутентификация с помощью ключа. На этом шаге вы импортируете открытый ключ Elasticsearch GPG и добавить список источников пакетов Elastic для установки Elasticsearch.
Для начала используйте cURL, инструмент командной строки для передачи данных с помощью URL, для импорта открытого ключа Elasticsearch GPG в APT. Обратите внимание, что мы используем аргументы -fsSL для подавления всех текущих и возможных ошибок (кроме сбоя сервера), а также чтобы разрешить cURL подать запрос на другой локации при переадресации. Выведите результаты команды cURL в программу apt-key, которая добавит открытый ключ GPG в APT.
Затем добавьте список источников Elastic в директорию sources.list.d , где APT будет искать новые источники:
Затем обновите списки пакетов, чтобы APT мог прочитать новый источник Elastic:
Установите Elasticsearch с помощью следующей команды:
Теперь система Elasticsearch установлена и готова к настройке.
Шаг 2 — Настройка Elasticsearch
Для настройки Elasticsearch мы изменим ее основной файл конфигурации elasticsearch.yml , где хранится большинство вариантов конфигурации. Этот файл находится в директории /etc/elasticsearch .
Используйте текстовый редактор на ваш выбор для изменения файла конфигурации Elasticsearch. Мы будем использовать nano :
Примечание. Файл конфигурации Elasticsearch представлен в формате YAML. Это означает, что нам нужно сохранить формат отступов. Не добавляйте никакие дополнительные пробелы при редактировании этого файла.
Файл elasticsearch.yml предоставляет варианты конфигурации для вашего кластера, узла, пути, памяти, сети, обнаружения и шлюза. Большинство из этих вариантов уже настроены в файле, но вы можете изменить их в соответствии с вашими потребностями. В нашем случае для демонстрации односерверной конфигурации мы будем регулировать настройки только для хоста сети.
Elasticsearch прослушивает весь трафик порта 9200 . По желанию вы можете ограничить внешний доступ к вашему экземпляру Elasticsearch, чтобы посторонние не смогли прочесть ваши данные или отключить ваш кластер Elasticsearch через REST API. Для ограничения доступа и повышения безопасности найдите строку с указанием network.host , уберите с нее значок комментария и замените значение на localhost , чтобы она выглядела следующим образом:
Мы указали localhost , и теперь Elasticsearch прослушивает все интерфейсы и связанные IP-адреса. Если вы хотите, чтобы прослушивался только конкретный интерфейс, вы можете указать его IP-адрес вместо localhost . Сохраните и закройте elasticsearch.yml . Если вы используете nano , вы можете сделать это, нажав CTRL+X , затем Y , а затем ENTER .
Это минимальные настройки, с которыми вы можете начинать использовать Elasticsearch. Теперь вы можете запустить Elasticsearch в первый раз.
Затем запустите следующую команду, чтобы активировать Elasticsearch при каждой загрузке сервера:
После активации Elasticsearch можно переходить к следующему шагу, где будет обсуждаться вопрос защиты.
Шаг 3 — Защита Elasticsearch
После этого вы можете активировать UFW с помощью команды:
В заключение проверьте статус UFW с помощью следующей команды:
Если вы правильно указали правила, вы должны получить следующий результат:
Теперь UFW должен быть активирован и настроен на защиту порта Elasticsearch 9200.
Если вы хотите инвестировать в дополнительную защиту, Elasticsearch предлагает к покупке платный плагин Shield.
Шаг 4 — Тестирование Elasticsearch
Сейчас система Elasticsearch должна работать на порту 9200. Вы можете протестировать ее с помощью cURL и запроса GET.
Вы должны получить следующий ответ:
Если вы получите ответ, аналогичный вышеуказанному, значит Elasticsearch работает корректно. Если нет, убедитесь, что вы правильно выполнили инструкции по установке и дали время системе Elasticsearch для полного запуска.
Для более тщательной проверки Elasticsearch выполните следующую команду:
В выводе для команды, указанной выше, вы можете проверить все текущие настройки для узла, кластера, путей приложения, модулей и т. д.
Шаг 5 — Использование Elasticsearch
Чтобы начать использовать Elasticsearch, в первую очередь нужно добавить некоторые данные. Elasticsearch использует RESTful API, который соответствует обычным командам CRUD: create, read, update и delete. Для работы мы снова используем команду cURL.
Ваша первая запись может выглядеть так:
Вы должны получить следующий ответ:
- tutorial — это индекс данных в Elasticsearch.
- helloworld — это тип.
- 1 — это ID нашей записи по индексу и типу.
Вывод должен выглядеть следующим образом:
Elasticsearch должна признать успешное изменение следующим образом:
В примере, представленном выше, мы изменили message первой записи на «Hello, People!». При этом номер версии автоматически увеличился до 2 .
Возможно, вы заметили дополнительный аргумент pretty в представленном выше запросе. Он обеспечивает удобный для восприятия человеком формат, и вы можете для написания каждого поля данных использовать новый ряд. Вы также можете «приукрасить» ваши результаты при получении данных, чтобы получить более читабельный вывод, путем введения следующей команды:
Теперь ответ отформатирован так, чтобы синтаксис был удобен для человека:
Мы добавили и запросили данные в Elasticsearch. Информацию о других операциях можно найти в документации API.
Заключение
Вы установили, настроили и начали использовать Elasticsearch. Чтобы продолжить изучение функций Elasticsearch, ознакомьтесь с официальной документацией Elasticsearch.
Elasticsearch — это платформа для распределенного поиска и анализа данных в режиме реального времени. Она пользуется популярностью благодаря удобству в использовании, наличию мощных характеристик и возможности масштабирования.
Эта статья расскажет вам о том, как установить Elasticsearch, настроить платформу под ваш вариант использования, обеспечить безопасность установки и начать работу с вашим сервером Elasticsearch.
Предварительные требования
Для работы с этим обучающим руководством вам потребуется следующее:
Сервер Ubuntu 18.04 с 4 ГБ оперативной памяти и 2 процессорами, настроенный пользователем sudo без прав root. Вы можете это сделать, воспользовавшись рекомендациями по Начальной настройке сервера с Ubuntu 18.04
Установленный OpenJDK 11
В этом обучающем модуле мы будем использовать минимальное количество процессоров и оперативной памяти, необходимое для работы с Elasticsearch. Обратите внимание, что требования сервера Elasticsearch к количеству процессоров, оперативной памяти и хранению данных зависят от ожидаемого объема журналов.
Шаг 1 — Установка и настройка Elasticsearch
Компоненты Elasticsearch отсутствуют в репозиториях пакетов Ubuntu по умолчанию. Однако их можно установить с помощью APT после добавления списка источников пакетов Elastic.
Все пакеты подписаны ключом подписи Elasticsearch для защиты вашей системы от поддельных пакетов. Ваш диспетчер пакетов будет считать надежными пакеты, для которых проведена аутентификация с помощью ключа. На этом шаге вы импортируете открытый ключ Elasticsearch GPG и добавите список источников пакетов Elastic для установки Elasticsearch.
Для начала используйте cURL, инструмент командной строки для передачи данных с помощью URL, для импорта открытого ключа Elasticsearch GPG в APT. Обратите внимание, что мы используем аргументы -fsSL для подавления всех текущих и возможных ошибок (кроме сбоя сервера), а также, чтобы разрешить cURL подать запрос на другой локации при переадресации. Выведите результаты команды cURL в программу apt-key, которая добавит открытый ключ GPG в APT.
Затем добавьте список источников Elastic в каталог sources.list.d , где APT будет искать новые источники:
Затем обновите списки пакетов, чтобы APT мог прочитать новый источник Elastic:
Установите Elasticsearch с помощью следующей команды:
Теперь система Elasticsearch установлена и готова к настройке.
Шаг 2 — Настройка Elasticsearch
Для настройки Elasticsearch мы отредактируем файлы конфигурации. В Elasticsearch имеется три файла конфигурации:
- elasticsearch.yml для настройки Elasticsearch, главный файл конфигурации
- jvm.options для настройки виртуальной машины Elasticsearch Java Virtual Machine (JVM)
- log4j2.properties для настройки журнала Elasticsearch
Для целей настоящего обучающего модуля нас интересует файл elasticsearch.yml , где хранится большая часть параметров конфигурации. Этот файл находится в каталоге /etc/elasticsearch .
Используйте предпочитаемый текстовый редактор для изменения файла конфигурации Elasticsearch. Мы будем использовать nano :
Примечание. Файл конфигурации Elasticsearch представлен в формате YAM. Это означает, что нам нужно сохранить формат отступов. Не добавляйте никакие дополнительные пробелы при редактировании этого файла.
Файл elasticsearch.yml предоставляет варианты конфигурации для вашего кластера, узла, пути, памяти, сети, обнаружения и шлюза. Большинство из этих вариантов уже настроены в файле, но вы можете изменить их в соответствии с вашими потребностями. В нашем случае для демонстрации односерверной конфигурации мы будем регулировать настройки только для хоста сети.
Elasticsearch прослушивает весь трафик порта 9200 . По желанию вы можете ограничить внешний доступ к вашему экземпляру Elasticsearch, чтобы посторонние не смогли прочесть ваши данные или отключить ваш кластер Elasticsearch через REST API. Для ограничения доступа и повышения безопасности найдите строку с указанием network.host , уберите с нее значок комментария и замените значение на localhost , чтобы она выглядела следующим образом:
Мы указали localhost , и теперь Elasticsearch прослушивает все интерфейсы и связанные IP-адреса. Если вы хотите, чтобы прослушивался только конкретный интерфейс, вы можете указать его IP-адрес вместо localhost . Сохраните и закройте elasticsearch.yml . Если вы используете nano , вы можете сделать это, нажав CTRL+X , затем Y , а затем ENTER .
Это минимальные настройки, с которыми вы можете начинать использовать Elasticsearch. Теперь вы можете запустить Elasticsearch в первый раз.
Затем запустите следующую команду, чтобы активировать Elasticsearch при каждой загрузке сервера:
Мы включили Elasticsearch при запуске и теперь перейдем к следующему шагу для обсуждения вопросов безопасности.
Шаг 3 — Защита Elasticsearch
После этого вы можете активировать UFW с помощью команды:
В заключение проверьте статус UFW с помощью следующей команды:
Если вы правильно задали правила, результат должен выглядеть так:
Теперь UFW должен быть активирован и настроен на защиту порта Elasticsearch 9200.
Если вы хотите инвестировать в дополнительную защиту, Elasticsearch предлагает к покупке платный плагин Shield.
Шаг 4 — Тестирование Elasticsearch
Сейчас система Elasticsearch должна работать на порту 9200 Вы можете протестировать ее с помощью cURL и запроса GET.
Вы должны увидеть следующий ответ:
Если вы получите ответ, аналогичный вышеуказанному, значит Elasticsearch работает корректно. Если нет, убедитесь, что вы правильно выполнили инструкции по установке и дали время системе Elasticsearch для полного запуска.
Для более тщательной проверки Elasticsearch выполните следующую команду:
В выводе для команды, указанной выше, вы можете проверить все текущие настройки для узла, кластера, путей приложения, модулей и т.д.
Шаг 5 — Использование Elasticsearch
Чтобы начать использовать Elasticsearch, в первую очередь нужно добавить некоторые данные. Elasticsearch использует RESTful API, который соответствует обычным командам CRUD: create, read, update и delete. Для работы мы снова используем команду cURL.
Ваша первая запись может выглядеть так:
Вы должны получить следующий ответ:
- tutorial — это индекс данных в Elasticsearch.
- helloworld — это тип.
- 1 — это ID нашей записи по индексу и типу.
Вывод должен выглядеть следующим образом:
Elasticsearch должна признать успешное изменение следующим образом:
В примере, представленном выше, мы изменили message первой записи на “Hello, People!”. При этом номер версии автоматически увеличился до 2 .
Возможно, вы заметили дополнительный аргумент pretty в представленном выше запросе. Он обеспечивает удобный для восприятия человеком формат, и вы можете для написания каждого поля данных использовать новый ряд. Вы также можете “приукрасить” ваши результаты при получении данных, чтобы получить более читабельный вывод, путем введения следующей команды.
Теперь ответ отформатирован так, чтобы синтаксис был удобен для человека:
Мы добавили и запросили данные в Elasticsearch. Информацию о других операциях можно найти в документации API.
Заключение
Вы установили, настроили и начали использовать Elasticsearch. С момента первоначального выпуска Elasticsearch команда Elastic разработала три дополнительных инструмента, Logstash, Kabana и Beats, предназначенные для использования совместно с Elasticsearch в составе комплекса Elastic. Вместе эти инструменты обеспечивают возможность поиска, анализа и визуализации журналов в любом формате, сгенерированных любым источником, посредством практики, называемой централизованным ведением журнала. Чтобы познакомиться с использованием комплекса Elastic в Ubuntu 18.04, воспользуйтесь нашим руководством Установка Elasticsearch, Logstash и Kibana (комплекс Elastic) в Ubuntu 18.04.
Читайте также: