- Установка стека ELK на операционную систему Ubuntu 18.04
- Требования
- Установка веб-сервера Nginx
- Установка виртуальной машины Java
- Установка и настройка Elasticsearch
- Установка и настройка Kibana
- Установка и настройка Logstash
- Установка и настройка Filebeat
- Обратная связь
- Elasticsearch + Kibana + Logstash на CentOS
- Подготовка сервера
- 1. Установка wget
- 2. Настройка брандмауэра
- 3. SELinux
- Установка Java
- Elasticsearch
- Kibana
- Logstash
- Настройка Logstash
Установка стека ELK на операционную систему Ubuntu 18.04
Данная статья описывает установку стека ELK на операционную систему семейства Linux — Ubuntu 18.04.
Стек ELK — это мощный набор инструментов для эффективного решения широкого спектра задач сбора, хранения и анализа данных:
- Elasticsearch – решение для полнотекстового поиска, построенное поверх Apache Lucene и имеющее дополнительные удобства.
- Logstash – утилита для сборки, фильтрации и последующего перенаправления в конечное хранилище данных. Этот механизм обеспечивает конвейер в реальном времени. Он может принимать данные из нескольких источников и преобразовывать их в документы JSON.
- Kibana — приложение, позволяющее брать и искать данные из Elasticsearch и строить наглядные графики.
Требования
- Операционная система Ubuntu версии 18.04.
- Установленный веб-сервер Nginx.
- Установленная виртуальная машина Java.
- Пользователь с доступом к команде sudo.
Установка веб-сервера Nginx
По сравнению с веб-сервером Apache веб-сервер Nginx использует меньше ресурсов для размещения объемных сайтов с высоким трафиком. Благодаря архитектуре Nginx можно легко масштабироваться до сотен тысяч параллельных соединений.
Чтобы установить и выполнить первичную настройку веб-сервера Nginx:
- Откройте окно терминала.
- Обновите индексы пакетов, выполнив команду:
Установка виртуальной машины Java
Для работы стека ELK требуется виртуальная машина Java. Чтобы установить JVM:
- Откройте окно терминала.
- Установите программный пакет JVM, выполнив команду:
sudo apt install default-jre -y
sudo apt install default-jdk -y
Установка и настройка Elasticsearch
Чтобы установить и выполнить первичную настройку Elasticsearch:
- Для проверки текущей версии Elasticsearch, перейдите на страницу: https://www.elastic.co/downloads/elasticsearch.
- Откройте окно терминала.
- Импортируете открытый ключ GPG Elasticsearch, с использованием которого защищаются пакеты Elastic, выполнив команду:
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add
sudo echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt install elasticsearch
sudo nano /etc/elasticsearch/elasticsearch.yml
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch
sudo nano /etc/elasticsearch/jvm.options
Примечание Подробно о параметрах Xms и Xmx читайте тут. Для машин с небольшим объемом оперативной памяти мы рекомендуем ограничить объем памяти, используемый JVM.
sudo systemctl enable elasticsearch
Установка и настройка Kibana
Чтобы установить и выполнить первичную настройку Kibana, выполните следующее:
- Убедитесь, что вы успешно установили Elasticsearch.
- Откройте окно терминала.
- Установите Kibana, выполнив команду:
sudo systemctl start kibana
sudo systemctl enable kibana
sudo systemctl status kibana
sudo nano /etc/kibana/kibana.yml
#elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.hosts: ["http://localhost:9200"]
echo "mcskibadmin:\`openssl passwd -apr1\`" | sudo tee -a /etc/nginx/htpasswd.users
sudo nano /etc/nginx/sites-available/elk
server < listen 80; server_name ; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.users; location / < proxy_pass http://localhost: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; >>
sudo ln -s /etc/nginx/sites-available/elk /etc/nginx/sites-enabled/
sudo systemctl restart kibana
sudo systemctl restart nginx
Установка и настройка Logstash
Чтобы установить и выполнить первичную настройку Logstash:
- Установите Logstash, выполнив команду команду:
sudo apt install logstash
Примечание Далее приведен один из возможных вариантов настройки. Дополнительную информацию читайте тут.
sudo nano /etc/logstash/conf.d/02-beats-input.conf
sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf
output < elasticsearch < hosts =>["localhost:9200"] sniffing => true manage_template => false template_overwrite => true index => "%-%" document_type => "%" > >
sudo nano /etc/logstash/conf.d/10-logstash-filter.conf
input < stdin < >> filter < grok < match => < "message" =>"%" > > date < match =>[ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] > > output < elasticsearch < hosts =>["localhost:9200"] > stdout < codec =>rubydebug > >
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
sudo systemctl start logstash
sudo systemctl enable logstash
Установка и настройка Filebeat
Filebeat позволяет собирать данные (beats) из различных источников и передавать их в Logstash или Elasticsearch в Linux-подобных системах.
- Откройте терминал.
- Установите Filebeat, выполнив команду:
sudo apt install filebeat
sudo nano /etc/filebeat/filebeat.yml
output.elasticsearch: # Array of hosts to connect to. hosts: ["localhost:9200"]
#output.elasticsearch: # Array of hosts to connect to. #hosts: ["localhost:9200"]
#output.logstash: # The Logstash hosts #hosts: ["localhost:5044"]
output.logstash: # The Logstash hosts hosts: ["localhost:5044"]
sudo sudo filebeat modules enable logstash
sudo filebeat modules list
sudo filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Примечание Индексы Elasticsearch представляют собой набор документов, имеющих сходные характеристики. Они определяются по именам, которые используются для ссылок на индексы при выполнении различных операций с индексами. Шаблон индексов загружается автоматически при создании новых индексов.
sudo filebeat setup -e -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601
sudo systemctl start filebeat
sudo systemctl enable filebeat
curl -XGET 'http://localhost:9200/filebeat-\*/_search?pretty'
Установка стека ELK завершена.
В адресной строке веб-браузера введите IP-адрес вашего Elastic-сервера. Для входа используйте учетные данные администратора . После успешной авторизации вы перейдете на основную страницу Kibana.
Обратная связь
Возникли проблемы или остались вопросы? Напишите нам, мы будем рады вам помочь.
Elasticsearch + Kibana + Logstash на CentOS
Опубликовано: 01.10.2019
Если в двух словах, Elasticsearch предоставляет механизм поиска, Kibana — веб-интерфейс для работы с Elasticsearch, Logstash — инструмент для сбора логов и их передачи в Elasticsearch. Таким образом, связка Elasticsearch + Kibana + Logstash (или ELK Stack) является инструментом по сбору и хранению журналов операционных систем. При этом поддерживаются разные платформы (Windows, Linux, BSD). В данной инструкции мы рассмотрим пример установки серверной части ELK на Linux CentOS. Также мы настроим сбор логов с CentOS, Ubuntu, Windows.
Подготовка сервера
1. Установка wget
В процессе установки пакетов нам понадобиться скачивать установочные файлы. Для этого в системе должен быть установлен wget:
2. Настройка брандмауэра
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.
После устанавливаем эластик на наш сервер:
Разрешаем автозапуск сервиса и запускаем его:
systemctl enable elasticsearch
systemctl start elasticsearch
Kibana
Переходим на страницу загрузки Kibana и скачиваем ссылку на последнюю вервию пакета RPM:
. и скачиваем по ней пакет для установки kibana:
Открываем на редактирование конфигурационный файл:
Редактируем параметр host:
* в данном примере мы говорим, что сервер должен слушать на интерфейсе 192.168.1.10.
Разрешаем автозапуск Kibana и запускаем ее:
Открываем браузер и переходим по ссылке http://:5601. Если мы увидим сообщение «kibana not ready yet», просто ждем создания индекса (на это может уйти до 10 минут). После снова пробуем открыть страницу.
Мы должны увидеть страницу приветствия с заголовком «Welcome to Kibana».
Logstash
Процесс установки Logstash аналогичен — переходим на страницу загрузки программного продукта, копируем ссылку на пакет RPM:
Скачиваем пакет на нашем сервере:
Разрешаем автозапуск и стартуем сервис:
systemctl enable logstash
Настройка Logstash
Настройки для логстэша хранятся в каталоге /etc/logstash/conf.d в файлах формата JSON. Для конфигурации используются следующие секции:
Для каждой из них мы создадим свой файл.
* в данном примере мы настроили logstash для приема логов на порту 5044.