Меню Рубрики

Установка elk centos 7

Как установить стек ELK на CentOS 7

1. Предпосылки

Первое, что вам нужно для успешного завершения этого учебника, – это root-доступ к серверу CentOS 7.

Объем журналов, которые вы хотите собрать, важен, поскольку количество CPU, RAM и хранилища, требуемое вашим ELK-сервером, зависит от них.

2. Установка Java

Для развертывания стека Elastic требуется Java. Он поддерживает как OpenJDK, так и Oracle Java. мы рекомендуем использовать Oracle JDK 1.8. Мы установим Java 8 из официального пакета Oracle rpm.

Java 8 JDK можно загрузить с помощью следующей команды wget.

Следующим шагом будет установка с помощью этой команды rpm:

На этом этапе вы должны проверить установку Java JDK.

если все будет установлено правильно, вы увидите следующий вывод:

3. Установка и настройка Elasticsearch на CentOS 7

Настало время установить и настроить Elasticsearch. Мы будем использовать пакет rpm для этой установки, который предоставляется flexible.co, а затем мы настроим его для запуска на локальном хосте (все это означает, что мы сделали настройку безопасной и чтобы убедиться, что она не может быть достигнута из снаружи).

Вы должны добавить ключ elastic.co к серверу до установки Elasticsearch.

Затем вы должны использовать wget для загрузки Elasticsearch 6.2 и инициировать установку

На этом этапе, когда Elasticsearch уже установлен, вам нужно перейти в каталог конфигурации и отредактировать файл конфигурации elasticsaerch.yml.

Затем вы должны удалить комментарий в строке 40, чтобы включить блокировку памяти для Elasticsearch. Это отключает обмен памяти для Elasticsearch.

После этого вам нужно раскомментировать строки network.host и http.port в блоке «Network».

Не забывайте сохранять файл, а затем вы можете выйти из редактора.

Затем вы должны отредактировать файл elasticsearch.service для настройки блокировки памяти.

Линия Uncomment LimitMEMLOCK.

Опять же, не забудьте сохранить, а затем выйти.

Следующий шаг – отредактировать конфигурационный файл sysconfig для Elasticsearch.

Теперь вам нужно раскомментировать строку 60 и убедиться, что значение «unlimited».

Выполнение всех этих шагов означает, что вы закончили настройку Elasticsearch на CentOS 7. IP-адрес локального хоста на порту 9200 будет запускать Elasticsearch,

Прежде чем начать службу сначала, вы должны перезагрузить системы и включить Elasticsearch для запуска во время загрузки.

Через несколько секунд начнется Elasticsearch, а затем вы должны проверить открытые порты на сервере и дважды проверить, что «state» для порта 9200 «LISTEN».

4.Установите и настройте Kibana на CentOS 7

Когда вы достигнете этого момента, в списке перечислено следующее: установка и настройка Kibana с веб-сервером Nginx. Kibana будет прослушивать IP-адрес localhost, а Nginx действует как обратный прокси для приложения Kibana.

Вы должны использовать wget для загрузки Kibana 6.2.4, а затем вы должны установить его с помощью команды rpm:

Следующий шаг – редактирование файла конфигурации Kibana.

Раскомментируйте строки конфигурации для server.port, server.host и elasticsearch.url.

Изменения должны быть сохранены, а затем вы можете выйти.
Запустите службу Kibana и установите ее для автоматического запуска при загрузке:

Вы закончили установку Kibana.

5. Установка и настройка Nginx

Следующее – установить Nginx и, конечно же, настроить его как обратный прокси для доступа к Kibana с общедоступного IP-адреса.

Nginx можно найти в репозитории Epel, установить epel-release с помощью yum.

Затем вам необходимо установить пакет Nginx и httpd-tools.

Инструменты для веб-сервера содержатся в пакете httpd-tools, вы можете использовать базовую аутентификацию htpasswd для Kibana.

На этом этапе нам необходимо создать новый файл конфигурации виртуального хоста в каталоге conf.d.

поэтому мы сможем добавить новую конфигурацию виртуального хоста. Вставьте конфигурацию ниже:

Затем должен быть создан новый базовый файл аутентификации с помощью команды htpasswd.

Добавьте Nginx для запуска во время загрузки и запускайте Nginx.

6. Установка и настройка Logstash

На следующем шаге мы установили Logsatash и настроим его для централизации журналов сервера от клиентов с помощью filebeat, затем фильтруем и преобразуем данные Syslog и переместим их в stash (Elasticsearch).

Используйте rpm, чтобы загрузить Logstash и установить его.

Когда установка Logstash завершена, запустите службу Logstash и установите ее для автоматического запуска при загрузке:

Конфигурация Logstash зависит от ваших личных предпочтений и плагинов, которые вы будете использовать. Дополнительную информацию о настройке Logstash можно найти здесь.

Вот и все. Вы успешно установили стек ELK на CentOS 7 VPS.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

Читайте также:  Установка двух операционных систем на ноутбуке

Предложение от 8host.com

Установка стека ELK в CentOS 7

Данное руководство поможет установить Elasticsearch 2.2.x, Logstash 2.2.x и Kibana 4.4.x на сервер CentOS 7, а также настроить полученный программный стек для сбора и визуализации системных логов (с помощью Filebeat 1.1.x).

Logstash – это открытый инструмент для сбора, обработки и централизованного хранения логов. Kibana – это веб-интерфейс для поиска и визуализации логов, индексированных с помощью Logstash. Оба эти инструмента основаны на поисковом движке Elasticsearch, который используется для хранения логов.

Централизованное логирование позволяет быстро выявить и устранить проблемы сервера или приложений.

Примечание: Logstash может собирать все типы логов, но данное руководство ограничивается системными логами.

В результате вы получите рабочий стек ELK для сбора системных логов нескольких серверов, который состоит из таких компонентов:

  • Logstash: серверный компонент, который обрабатывает входящие логи.
  • Elasticsearch: хранит все логи.
  • Kibana: веб-интерфейс для визуализации логов, который проксируется с помощью Nginx.
  • Filebeat: клиентский компонент, который передаёт логи в Logstash.

Примечание: Аналогичное руководство для Ubuntu 14.04 можно найти здесь.

Требования

  • Сервер CentOS 7 для стека ELK (чтобы настроить сервер, читайте это руководство).
  • Объем CPU, RAM и хранилища сервера ELK зависит от объема логов, которые вы будете собирать. В данном руководстве используется сервер с такими характеристиками: RAM: 4GB, CPU: 2.
  • Несколько дополнительных серверов, чьи логи вы сможете собрать.

Установка Java 8

Для работы Elasticsearch и Logstash нужно установить Java. Установите Oracle Java 8 (согласно рекомендациям Elasticsearch). В целом, OpenJDK тоже подойдёт.

Примечание: Следуя инструкциям, приведенным в данном разделе, вы принимаете условия лицензионного соглашения Oracle для Java SE.

Перейдите в домашний каталог и загрузите Oracle Java 8 JDK RPM:

wget —no-cookies —no-check-certificate —header «Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie» «http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-x64.rpm»

sudo yum -y localinstall jdk-8u73-linux-x64.rpm

Примечание: Если вы устанавливаете другую версию пакета, откорректируйте номер версии в команде.

Пакет Java установлен в /usr/java/jdk1.8.0_73/jre/bin/java и ссылается на /usr/bin/java.

Установка Elasticsearch

Чтобы установить Elasticsearch, добавьте файл репозиторий этого пакета.

Чтобы добавить GPG-ключ Elasticsearch, введите:

sudo rpm —import http://packages.elastic.co/GPG-KEY-elasticsearch

Создайте новый репозиторий для Elasticsearch с помощью этой команды:

echo ‘[elasticsearch-2.x]
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
‘ | sudo tee /etc/yum.repos.d/elasticsearch.repo

sudo yum -y install elasticsearch

Отредактируйте конфигурационный файл Elasticsearch:

sudo vi /etc/elasticsearch/elasticsearch.yml

Ограничьте внешний доступ к Elasticsearch (порт 9200), чтобы посторонние пользователи не смогли прочитать данные или отключить Elasticsearch с помощью HTTP API. Найдите строку network.host и измените её значение на localhost.

Сохраните и закройте elasticsearch.yml. Запустите Elasticsearch:

sudo systemctl start elasticsearch

Чтобы настроить автозапуск Elasticsearch, введите:

sudo systemctl enable elasticsearch

Установка Kibana

Kibana и Elasticsearch используют один GPG-ключ.

Создайте репозиторий для Kibana:

sudo vi /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

Сохраните и закройте файл. Установите Kibana:

sudo yum -y install kibana

Веб-интерфейс Kibana успешно установлен.

Откройте конфигурационный файл Kibana.

sudo vi /opt/kibana/config/kibana.yml

Найдите строку server.host и замените указанный в ней IP-адрес (по умолчанию 0.0.0.0) значением localhost:

Сохраните и закройте файл. Теперь интерфейс Kibana доступен только с локального хоста. Для внешнего доступа к нему будет использоваться обратный прокси-сервер Nginx.

Включите и запустите сервис Kibana:

sudo systemctl start kibana
sudo chkconfig kibana on

Установка Nginx

Теперь Kibana прослушивает localhost. Чтобы получить внешний доступ к сервису, настройте Nginx как обратный прокси-сервер.

Примечание: Если у вас уже есть установленный сервер Nginx, используйте этот экземпляр. Вам нужно только настроить доступ к Kibana для Nginx (измените значение host в файле /opt/kibana/config/kibana.yml, указав IP-адрес сервера Kibana). Также рекомендуется включить SSL/TLS.

Добавьте репозиторий EPEL:

sudo yum -y install epel-release

Установите Nginx и httpd-tools:

sudo yum -y install nginx httpd-tools

С помощью htpasswd создайте аккаунт администратора, у которого будет доступ к веб-интерфейсу Kibana (в руководстве он называется kibanaadmin, но вы можете использовать другое имя).

sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin

Введите пароль пользователя. В дальнейшем с помощью этого пароля вы сможете получить доступ к интерфейсу.

Откройте конфигурационный файл Nginx по умолчанию в текстовом редакторе.

sudo vi /etc/nginx/nginx.conf

Сохраните и закройте файл.

Создайте новый виртуальный хост Nginx:

sudo vi /etc/nginx/conf.d/kibana.conf

Вставьте в файл следующий код. В строке server_name укажите имя своего сервера.

server <
listen 80;
server_name example.com;
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;
>
>

Читайте также:  Установки малярные и шпаклевочные

Сохраните и закройте файл. Теперь Nginx будет передавать HTTP-трафик приложению Kibana, которое прослушивает localhost:5601. Nginx будет использовать ранее созданный файл htpasswd.users и запрашивать базовую аутентификацию.

Запустите и включите сервис Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Примечание: В руководстве подразумевается, что SELinux отключен. Если это не так, запустите следующую команду, иначе Kibana не сможет работать:

sudo setsebool -P httpd_can_network_connect 1

Установка Logstash

Пакет Logstash и Elasticsearch используют один и тот же GPG-ключ. Создайте репозиторий для Logstash:

sudo vi /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

Сохраните и закройте файл.

Чтобы установить Logstash, введите:

sudo yum -y install logstash

Генерирование SSL-сертификата

Чтобы сервис Filebeat передавал логи клиентов на сервер ELK, нужно создать SSL-сертификат и ключ. С помощью сертификата Filebeat сможет проверить подлинность сервера ELK. Создайте каталоги для хранения сертификата и закрытого ключа:

sudo mkdir -p /etc/pki/tls/certs
sudo mkdir /etc/pki/tls/private

Теперь у вас есть два варианта: вы можете создать сертификат либо для IP-адреса, либо для доменного имени.

1: Сертификат для IP-адреса

Если у вас нет домена, вы можете указать в сертификате IP-адрес сертификата ELK. Для этого укажите адрес в поле subjectAltName. Откройте конфигурационный файл OpenSSL.

sudo vi /etc/pki/tls/openssl.cnf

Найдите в нём раздел [ v3_ca ] и добавьте в него строку:

subjectAltName = IP: ELK_server_private_IP

Примечание: укажите IP своего сервера ELK.

Теперь вы можете сгенерировать SSL-сертификат и ключ в /etc/pki/tls/ с помощью команд:

cd /etc/pki/tls
sudo openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Файл logstash-forwarder.crt нужно будет скопировать на все серверы, которые отправляют логи в Logstash. После этого нужно завершить настройку Logstash.

2: Сертификат для домена

Если у вас есть доменное имя, направленное на сервер ELK, вы можете указать это имя в сертификате SSL.

Чтобы сгенерировать сертификат, введите команды:

cd /etc/pki/tls
sudo openssl req -subj ‘/CN=ELK_server_fqdn/’ -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Примечание: Вместо ELK_server_fqdn укажите доменное имя сервера ELK.

Файл logstash-forwarder.crt нужно скопировать на все серверы, которые отправляют логи в Logstash. После этого нужно завершить настройку Logstash.

Настройка Logstash

Конфигурационные файлы Logstash составляются в формате JSON и хранятся в /etc/logstash/conf.d. Конфигурации состоят из трех частей: входных данных (input), фильтров (filter) и выходных данных (output).

Создайте файл 02-beats-input.conf для входных данных filebeat.

sudo vi /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»
>
>

Сохраните и закройте файл. Он задаёт настройки входных данных beats, которые будут прослушиваться на tcp-порте 5044 и использовать SSL-сертификат и ключ.

Теперь создайте файл 10-syslog-filter.conf, в который нужно поместить фильтры для сообщений системных логов.

sudo vi /etc/logstash/conf.d/10-syslog-filter.conf

Добавьте в файл такой код:

Сохраните и закройте файл. Этот фильтр собирает логи, отмеченные приложением Filebeat как syslog, а затем использует grok, чтобы обработать входящие логи и структурировать их.

Осталось создать только 30-elasticsearch-output.conf:

sudo vi /etc/logstash/conf.d/30-elasticsearch-output.conf

Добавьте настройки выходных данных:

Сохраните и закройте файл. С помощью этого файла Logstash будет хранить полученные данные в Elasticsearch (который запущен на localhost:9200) в индексе filebeat.

Проверьте конфигурации Logstash:

sudo service logstash configtest

Если ошибок нет, команда вернёт:

Если команда обнаружила ошибки, исправьте их и снова запустите команду.

Чтобы обновить настройки, перезапустите Logstash.

sudo systemctl restart logstash
sudo chkconfig logstash on

Загрузка дашборда Kibana

Elastic предоставляет несколько образцов дашбордов Kibana и шаблонов индексов Beats. Загрузите дашборды, чтобы использовать их с индексом Filebeat.

Загрузите архив дашбордов в домашний каталог:

curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip

Загрузите образец дашборда, визуализацию и шаблоны индексов Beats в Elasticsearch.

cd beats-dashboards-*
./load.sh

Только что вы загрузили такие шаблоны:

  • [packetbeat-]YYYY.MM.DD
  • [topbeat-]YYYY.MM.DD
  • [filebeat-]YYYY.MM.DD
  • [winlogbeat-]YYYY.MM.DD

Загрузка шаблона индексов Filebeat в Elasticsearch

Чтобы приложение Filebeat могло передавать логи в Elasticsearch, нужно загрузить шаблон индексов Filebeat. Это поможет Elasticsearch анализировать входящие данные Filebeat.

Загрузите шаблон Filebeat в домашний каталог:

curl -O https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/d8c479e2a1adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json

curl -XPUT ‘http://localhost:9200/_template/filebeat?pretty’ -d@filebeat-index-template.json

Если все прошло успешно, на экране появится:

Теперь сервер ELK может читать данные Filebeat. Настройте Filebeat на всех клиентах.

Читайте также:  Установка yandex disk mint

Настройка Filebeat на клиентских серверах

Примечание: данный раздел нужно выполнить на всех клиентских серверах CentOS or RHEL, данные которых нужно передавать в Logstash на сервер ELK.

Копирование сертификата

На сервере ELK нужно скопировать SSL-сертификат и переместить его копию на клиентский сервер:

scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp

Примечание: Вместо client_server_private_address укажите внутренний адрес сервера.

Пройдя аутентификацию, убедитесь, что сертификат успешно скопирован. Переместите сертификат в каталог /etc/pki/tls/certs на клиенте.

sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

Установка Filebeat

Добавьте на клиентский сервер GPG-ключ Elasticsearch.

sudo rpm —import http://packages.elastic.co/GPG-KEY-elasticsearch

Создайте новый репозиторий для Filebeat:

sudo vi /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

Сохраните и закройте файл. Установите пакет Filebeat

sudo yum -y install filebeat

Настройка Filebeat

Теперь нужно настроить взаимодействие Filebeat и Logstash.

Примечание: В результате конфигурационный файл Filebeat будет выглядеть так.

Откройте конфигурационный файл Filebeat на клиентском сервере:

sudo vi /etc/filebeat/filebeat.yml

Примечание: Конфигурационный файл Filebeat написан в формате YAML. Этот формат очень чувствителен к отступам и пробелам.

В начале файла вы найдёте раздел prospectors, который определяет, какие логи нужно передавать и как их обрабатывать. Каждая запись лога начинается с дефиса.

Добавьте в этот раздел записи для syslog и auth.log. В paths закомментируйте /var/log/*.log (теперь Filebeat не будет отправлять все файлы с расширением .log).

.
paths:
— /var/log/secure
— /var/log/messages
# — /var/log/*.log
.

Найдите строку document_type:, раскомментируйте её и задайте значение syslog:

Теперь Logstash будет собирать только файлы типа syslog.

При желании вы можете добавить другие записи логов в раздел prospector.

Найдите раздел output и строку elasticsearch:, которая настраивает выходные данные Elasticsearch. Удалите ил иполностью закомментируйте этот раздел (до строки logstash:).

Затем найдите раздел настроек для выходных данных Logstash (начинается со строки #logstash:) и раскомментируйте его, удалив символ # в начале строки. Также нужно раскомментировать строку hosts: [«localhost:5044»].

### Logstash as output
logstash:
# The Logstash hosts
hosts: [«ELK_server_private_IP:5044»]

Примечание: Вместо ELK_server_private_IP укажите закрытый IP-адрес сервера ELK.

Теперь Filebeat может подключиться к Logstash на сервере ELK через порт 5044.

После строки hosts добавьте:

Затем найдите раздел tls и раскомментируйте его. Также нужно раскомментировать строку certificate_authorities и изменить её значение на [«/etc/pki/tls/certs/logstash-forwarder.crt»].

tls:
# List of root certificates for HTTPS server verifications
certificate_authorities: [«/etc/pki/tls/certs/logstash-forwarder.crt»]

Теперь Filebeat может использовать SSL-сертификат.

Сохраните и закройте файл.

Запустите и включите сервис Filebeat:

sudo systemctl start filebeat
sudo systemctl enable filebeat

Примечание: Сравните получившиеся конфигурации с этим образцом.

Теперь Filebeat собирает и передаёт syslog и auth.log в Logstash.

Тестирование установки Filebeat

Если установка стека ELK прошла успешно, Filebeat должен собирать логи клиентов и передавать их на сервер ELK. Logstash будет загружать данные Filebeat в Elasticsearchс индексом filebeat-YYYY.MM.DD.

Перейдите на сервер ELK и убедитесь, что Elasticsearch получает данные, запросив индекс Filebeat:

curl -XGET ‘http://localhost:9200/filebeat-*/_search?pretty’

Если команда не вернула ничего, то Elasticsearch не загружает и не индексирует данные. Проверьте настройку на наличие ошибок.

Подключение к Kibana

Настроив Filebeat на всех клиентских серверах, приступайте к настройке веб-интерфейса Kibana.

Откройте в браузере FQDN или IP-адрес сервера ELK. Введите учётные данные администратора (в данном случае он называется kibanaadmin). На экране появится страница, которая предложит выбрать шаблон индекса по умолчанию.

Configure an index pattern

В списке слева выберите filebeat-YYYY.MM.DD и нажмите на зелёную кнопку со звёздочкой.

Затем выберите Discover в верхнем меню навигации. По умолчанию эта ссылка выведет данные логов за последние 15 минут. На экране появится гистограмма и сообщения логов.

С помощью интерфейса вы можете искать логи и отображать их. Также можно настроить дашборд.

  • Узнать, пытается ли кто-то попасть на сервер как пользователь root (для этого введите root в строку поиска).
  • Найти конкретное имя хоста (для поиска используйте фоормат host: «hostname»).
  • Изменить временные рамки, выбрав область на гистограмме или в верхнем меню.
  • Отфильтровать данные с помощью сообщений под гистограммой (для этого нужно кликнуть по сообщению).

Kibana имеет много интересных и полезных функций: построение графиков, фильтрация и т.п.

Заключение

Вы настроили централизацию логов с помощью Elasticsearch и Logstash, кроме того, вы можете визуализировать их с помощью интерфейса Kibana.

источник