В этой статье вы узнаете:
- как установить и настроить Elastic стек на одном сервере Ubuntu 16.04 для мониторинга логов сервера
- Как установить "Упругие удары" на клиентских компьютерах с Ubuntu 16.04 и CentOS 7 операционных системах.
Необходимые условия Ubuntu 16.04 64 - битный сервер с 4 Гб оперативной памяти, имя хоста - elk-master Ubuntu 16.04 64 - битный клиент с 1 Гб оперативной памяти, имя хоста - elk -client1 CentOS 7 64 бит клиент с 1 Гб оперативной памяти, имя хоста - elk -client2
Шаг 1 - Установка Java
Java является обязательным условием для развертывания Elastic стек. Elasticsearch требует Java 8. Рекомендуется использовать Oracle JDK 1.8. Мы будем устанавливать Java 8 из репозитория PPA.
Установите новый пакет «python-программное обеспечение свойства», теперь мы можем легко добавить новый репозиторий с помощью командой apt.
sudo apt-get update sudo apt-get install -y python-software-properties software-properties-common apt-transport-https
Добавьте новый Java 8 из репозитория PPA командой ' add-apt-repository ', а затем обновите хранилище.
sudo add-apt-repository ppa:webupd8team/java -y sudo apt-get update
Установите Java 8 из репозитория PPA webpub8.
sudo apt-get install -y oracle-java8-installer
По завершении установки убедитесь, что Java установлен в системе правильно, проверив версию Java.
java -version
Шаг 2 - Установка и настройка Elasticsearch
На этом этапе мы будем устанавливать и настраивать Elasticsearch. Затем установим Elasticsearch из хранилища Elastic и настроим его для работы на локальном хосте IP.
Перед установкой Elasticsearch, добавьте Elastic ключ репозитория для сервера.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Добавить Elastic репозиторий 5.x в каталог 'sources.list.d'.
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Обновите репозиторий и установить Elasticsearch 5.1 с помощью команды ниже.
sudo apt-get update sudo apt-get install -y elasticsearch
Elasticsearch установлен. Теперь переходим в директорию конфигурации и отредактируем конфигурационный файл elasticsaerch.yml.
cd /etc/elasticsearch/ vim elasticsearch.yml
Включите блокировку памяти для Elasticsearch путем удаления комментария на линии 43. Мы делаем это , чтобы отключить замены памяти Elasticsearchto и избежать перегрузки сервера.
bootstrap.memory_lock: true
В блоке "Сеть", разкомментировать network.host и http.port линии.
network.host: localhost http.port: 9200
Сохраните файл и выйдите из Vim.
Теперь необходимо отредактировать файл службы elasticsearch для конфигурации mlockall блокировки памяти.
vim /usr/lib/systemd/system/elasticsearch.service
Раскомментируйте строку LimitMEMLOCK.
LimitMEMLOCK=infinity
Сохраните файл и выйдите.
Измените конфигурацию по умолчанию для Elasticsearch в папке /etc/default.
vim /etc/default/elasticsearch
Раскомментируйте строку 60 и убедитесь, что значение «unlimited».
MAX_LOCKED_MEMORY=unlimited
Сохраните и выйдите.
Конфигурация Elasticsearch закончена. Elasticsearch будет работать под IP - адрес локального хоста с портом 9200, мы отключили памяти подкачки, позволяя mlockall работать на сервере Ubuntu.
Обновите файл службы Elasticsearch и дайте ему возможность работать во время загрузки, а затем запустите службу.
sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch
Подождите секунду пока запускается Elasticsearch ,а затем установите флажок «Открыть порт на сервере», убедитесь , что «state» для порта 9200 «listen».
netstat -plntu
Затем проверьте блокировку памяти, чтобы убедиться, что mlockall включена. Также проверьте, что Elasticsearch работает командами ниже.
curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty' curl -XGET 'localhost:9200/?pretty'
Вы увидите следующие результаты.
Шаг 3 - Установка и настройка платформы kibana в nginx
На этом этапе мы установим и настроим платформу kibana на веб-сервер nginx. Kibana будет прослушивать только IP-адрес локального хоста,а Nginx будет выступать в качестве обратного прокси-сервера для приложения Kibana.
Установите платформу kibana с помощью команды apt:
sudo apt-get install -y kibana
Теперь отредактируйте платформу the kibana.yml configuration file.
vim /etc/kibana/kibana.yml
Раскомментируйте server.port, server.hos and elasticsearch. URL-адрес.
server.port: 5601 server.host: "localhost" elasticsearch.url: "http://localhost:9200"
Сохраните файл и выйдите из редактора vim. Добавьте kibana при загрузке и запустите файл.
sudo systemctl enable kibana sudo systemctl start kibana
Платформа kibana будет работать на порту 5601 в качестве приложения узла.
netstat -plntu
Установка kibana завершена. Далее нам следует установить nginx и подключить его в качестве обратного прокси-сервера, для того,чтобы мы могли получить доступ к платформе kibana с публичного IP-адреса.
Далее, установите nginx и пакеты версии apache2-utils.
sudo apt-get install -y nginx apache2-utils
Apache2-Utils представляет собой пакет, который содержит инструменты для веб-сервера, которые работают с Nginx, а также, мы будем использовать Htpasswd как базовую аутентификацию для Kibana.
Nginx установлен. Теперь нам нужно создать новую виртуальную конфигурацию хост-файла на сайтах доступного каталога nginx. Создайте новый файл платформы 'kibana' с vim.
cd /etc/nginx/ vim sites-available/kibana
Конфигурацию вставьте ниже.
server { listen 80; server_name elk-stack.co; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.kibana-user; 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;
}
}
Сохраните файл и выйдите из редактора vim
Создайте новый основной файл проверки подлинности с помощью команды htpasswd.
sudo htpasswd -c /etc/nginx/.kibana-user admin TYPE YOUR PASSWORD
Активируйте платформу kibana с помощью виртуального хоста путем создания символической ссылки из файла kibana в «сайты доступных» и каталог «сайты с поддержкой».
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
Проверьте конфигурацию nginx, убедитесь, что нет ошибок, затем добавьте nginx во время загрузки и перезапустите nginx.
nginx -t systemctl enable nginx systemctl restart nginx
Шаг 4 - установить и настроить Logstash
На этом этапе мы установим и настроим Logsatash для централизации логов клиентских источников сервера с filebeat, затем отфильтруем и преобразуем все данные (системный журнал) и транспортируем их в тайник (elasticsearch с).
sudo apt-get install -y logstash
Редактируем файл hosts с vim.
vim /etc/hosts
Добавьте сервер IP-адреса и имя хоста.
10.0.15.10 лося-мастер
Сохраните файл hosts и закройте редактор.
Теперь создайте новый файл сертификата SSL с openssl так ,чтобы клиент мог идентифицировать Elastic сервер.
cd /etc/logstash/ openssl req -subj /CN=elk-master -x509 -days 3650 -batch -nodes -newkey rsa:4096 -keyout logstash.key -out logstash.crt
Измените '/СN' значение упругого сервера.
Файл- сертификат будет создан в директории/etc/logstash/'.
Далее мы будем создавать файлы конфигурации для logstash. Мы создадим конфигурационный файл 'syslog-filter.conf' и в качестве входных файлов от filebeat, 'Syslog-filter.conf' для системного журнала обработки, а затем файл 'output-elasticsearch.conf' , чтобы определить выход Elasticsearch. .
Перейдите в каталог конфигурации logstash и создайте новые файлы конфигурации 'conf.d' каталога .
cd /etc/logstash/ vim conf.d/filebeat-input.conf
Ввод конфигурации, конфигурацию вставьте ниже.
input { beats { port => 5443 type => syslog ssl => true ssl_certificate => "/etc/logstash/logstash.crt" ssl_key => "/etc/logstash/logstash.key" } }
Сохраните и выйдите.
Создайте системный журнал syslog-filter.conf.
vim conf.d/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" ] } } }
Мы используем фильтр плагин под названием ' grok ' для анализа файлов системного журнала.
Сохраните и выйдите.
Создайте выходной файл конфигурации 'output-elasticsearch.conf' .
vim conf.d/output-elasticsearch.conf
Вставьте конфигурации ниже.
output { elasticsearch { hosts => ["localhost:9200"] hosts => "localhost:9200" manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }
Сохраните и выйдите.
После того, как вы это сделали, добавьте logstash в автозагрузку.
sudo systemctl enable logstash sudo systemctl start logstash
Шаг 5 - Установка и настройка Filebeat на клиенте Ubuntu
Подключитесь к серверу root с записи SSH.
ssh root@elk-client1
Скопируйте файл сертификата клиента с помощью команды SCP.
scp root@elk-server:/etc/logstash/logstash.crt .
Отредактируйте файл hosts и добавьте elk-master IP-адрес.
vim /etc/hosts
vim /etc/hosts
Добавьте конфигурацию ниже в конце файла.
10.0.15.10 elk-master
Сохраните и выйдите.
Теперь нам нужно добавить elastic key в elk-client1-сервер.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Мы будем использовать хранилище elastic с https, поэтому нам нужно установить пакет через 'apt-transport-https' на сервер.
sudo apt-get install -y apt-transport-https
Добавьте elastic репозиторий и обновите все репозитории Ubuntu.
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list sudo apt-get update
Теперь установите filebeat с помощью команды apt.
sudo apt-get install -y filebeat
Далее переходите в каталог конфигурации filebeat и редактируйте filebeat файл'.в формате yml' с vim.
cd /etc/filebeat/ vim filebeat.yml
Добавьте новые файлы журнала под конфигурацию путей..
paths: - /var/log/auth.log - /var/log/syslog
Выберите тип документа для системного журнала.
document-type: syslog
Отключите выход elasticsearch посредством добавления комментариев к строкам.
#--- Elasticsearch output --- #output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
Включите вывод logstash, раскомментируйте конфигурацию и измените значение, как показано ниже.
output.logstash: # The Logstash hosts hosts: ["elk-master:5443"] bulk_max_size: 2048 ssl.certificate_authorities: ["/etc/filebeat/logstash.crt"] template.name: "filebeat" template.path: "filebeat.template.json" template.overwrite: false
Сохраните и выйдите.
Переместите файл сертификата в каталог filebeat.
mv ~/logstash.crt /etc/filebeat/
Начните filebeat и добавьте его во время загрузки.
sudo systemctl start filebeat sudo systemctl enable filebeat
Проверьте статус услуги.
sudo systemctl status filebeat
Шаг 6 - Установка и настройка Filebeat на CentOS клиента
Удары по фирмам-отправителям данных, легких агентов, которые могут быть установлены на клиентские узлы для отправки больших объемов данных с Клиентской машины на сервер elasticsearch или Logstash Есть 4 досступных вида ударов, 'Filebeat' для 'Лог-файлов', 'Metricbeat' для 'Метрика', 'Packetbeat' для 'сети передачи данных' и 'Winlogbeat для клиента Windows 'журнал событий'.
На этом этапе я покажу вам, как установить и настроить 'Filebeat' чтобы отправить данные журнала на Elastic сервер logstash через защищенное SSL-соединение.
Скопируйте файл сертификата из сервера на компьютере client1. Логин к серверу клиент1.
ssh root@elk-client2
Скопируйте файл сертификата с помощью команды SCP.
scp root@elk-master:/etc/logstash/logstash.crt . TYPE elk-server password
Отредактируйте файл hosts и добавьте адрес elk -мастер сервера.
vim /etc/hosts
Добавьте адрес сервера elk -мастер.
10.0.15.10 elk-master
Сохраните и выйдите .
Далее, импортируйте Elastic ключ к серверу элк-клиент2.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Добавьте Elastic репозиторий на сервер.
cd /etc/yum.repos.d/ vim elastic.repo
Вставьте конфигурации ниже.
[elastic-5.x] name=Elastic repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
Сохраните и выйдите .
Установите filebeat с помощью команды yum.
sudo yum -y install filebeat
Filebeat установлена, теперь перейдите в каталог настройки и отредактируйте filebeat файл'.в формате yml'.
cd /etc/filebeat/ vim filebeat.yml
На пути линии сечения 21, добавьте новые файлы журнала, добавьте сюда два файла:'/var/log/secure' для деятельности SSH и '/var/log/messages' в журнал сервера.
paths: - /var/log/secure - /var/log/messages
Добавьте новую конфигурацию в строке 26 для определения типа файла системного журнала'.
document-type: syslog
По умолчанию, filebeat использует elasticsearch в качестве выходного.На этом этапе, мы будем изменять его для logshtash. Отключите выход elasticsearch посредством добавления комментариев к строкам 83 и 85. Отключите выход elasticsearch .
#-------------------------- Elasticsearch output ------------------------------ #output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
Теперь добавьте новую конфигурацию выходного logstash, раскомментируйте конфигурацию выхода logstash и измените все значения на те, что показаны в приведенной ниже конфигурации.
output.logstash: # The Logstash hosts hosts: ["elk-master:5443"] bulk_max_size: 2048 ssl.certificate_authorities: ["/etc/filebeat/logstash.crt"] template.name: "filebeat" template.path: "filebeat.template.json" template.overwrite: false
Сохраните и выйдите .
Добавьте filebeat во время загрузки и запустие его.
sudo systemctl enable filebeat sudo systemctl start filebeat
Теперь вы можете проверить и посмотреть лог файл filebeat, чтобы убедиться, что он работает правильно.
tail -f /var/log/filebeat/filebeat
Шаг 8 - Тестирование
Откройте веб-браузер и посетите Elastic область стека, который вы настроили в конфигурации nginx, шахту 'elk-stack.co',введите имя пользователя администратора, пароль и нажмите Enter для входа в панели kibana.
Создайте новый индекс по умолчанию 'filebeat-* и нажмите кнопку 'Создать'.
Индекс по умолчанию создан. Если у вас есть несколько ударов по Elastic стеку, вы можете просто нажать на кнопку 'звезда'.
Перейдите к 'открыть' и вы увидите все файлы журналов с и elk-client1 и elk-client2 сервера.
Пример выводных данных json из элк-клиент1 журналов сервера на неверный логин по SSH.
Намного больше вы можете сделать с помощью панели kibana, просто попробуйте!
Elastic Стек был установлен на сервере под Ubuntu 16.04, filebeat установлена на Ubuntu и клиенте с CentOS.
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux