Как установить и настроить elasticsearch, logstash, kibana (elk stack) на ubuntu/debian/centos

Компоненты кластера Ceph

Основные компоненты кластера хранения Ceph

  • Мониторы : Ceph Monitor ( ) поддерживает карты состояния кластера, включая карту монитора, карту менеджера, карту OSD и карту CRUSH.
  • Ceph OSD : Ceph OSD (демон хранения объектов ) хранит данные, обрабатывает репликацию данных, восстановление, перебалансировку и предоставляет некоторую информацию мониторинга для мониторов и менеджеров Ceph, проверяя другие демоны Ceph OSD на наличие пульса. Как минимум 3 OSD Ceph обычно требуются для избыточности и высокой доступности.
  • MDS : Сервер метаданных Ceph (MDS ) хранит метаданные от имени файловой системы Ceph (т. Е. Блочные устройства Ceph и хранилище объектов Ceph не используют MDS). Серверы метаданных Ceph позволяют пользователям файловой системы POSIX выполнять основные команды (например, и т. Д.), Не создавая огромную нагрузку на Ceph Storage Cluster. \
  • Менеджеры Ceph : демон Ceph Manager ( ) отвечает за отслеживание метрик времени выполнения и текущего состояния кластера Ceph, включая использование хранилища, текущие метрики производительности и нагрузку на систему.

Наша установка Ceph Storage Cluster на CentOS 8 основана на приведенном ниже проектировании системы.

SERVER NAME CEPH COMPONENT Server Specs
cephadmin ceph-ansible 2gb ram, 1vcpus
cephmon01 Ceph Monitor 8gb ram, 4vpcus
cephmon01 Ceph MON, MGR,MDS 8gb ram, 4vpcus
cephmon01 Ceph MON, MGR,MDS 8gb ram, 4vpcus
cephosd01 Ceph OSD 16gb ram, 8vpcus
cephosd02 Ceph OSD 16gb ram, 8vpcus
cephosd03 Ceph OSD 16gb ram, 8vpcus

The cephadmin node will be used for deployment of Ceph Storage Cluster on CentOS 8.

Узел cephadmin будет использоваться для развертывания Ceph Storage Cluster на CentOS 8.

Установка CentOS 8 с флешки

Флешку подготовили, приступаем к установке. Ставим загрузку с USB и наблюдаем стандартный, горячо любимый и родной (смахнул слезу) установщик Centos.

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

  1. Выбор часового пояса centos.
  2. Поддержка каких языков будет осуществляться на сервере.
  3. Выбор раскладки клавиатуры.
  4. Откуда будет происходить установка. Так как у нас дистрибутив centos dvd1, установка будет локальной.
  5. Выбор пакетов для установки.
  6. Разбивка жесткого диска. Подробнее коснемся этого пункта, когда будем разбирать установку на raid.
  7. Настройка режима работы KDUMP. Этот механизм делает дамп ядра, если оно у вас падает в момент установки. Теоретически может пригодится, если у вас с установкой возникнут какие-то проблемы. В общем случае лучше не включать, сэкономите немного оперативной памяти во время установки.
  8. Настройка сетевых интерфейсов. Без них нельзя установить систему, если используется netinstall.
  9. Подозреваю, что security policy это про SELinux, но скажу честно, я не знаю, как это работает на этапе установки, потому что никогда не настраивал и не изучал вопрос. Буду рад, если кто-то поделится актуальной инфой в комментариях.

Восклицательным знаком помечены разделы, без настройки которых продолжение невозможно. Пройдемся по всем параметрам и установим необходимые для нас значения. Итак, нажимаем на Time & Date (раньше было Date & Time, явно поработал кто-то эффективный и протолкнул изменение, за которое получил премию по итогу квартала) и настраиваем параметры времени:

  • Указываем регион.
  • Выбираем город.
  • Включаем при необходимости службу времени для синхронизации часов centos с внешними серверами. Это возможно сделать только если вы уже настроили сетевые параметры. Если нет, то вернитесь к этой настройке позже.
  • Выбираем список внешних серверов для синхронизации времени.
  • Указываем формат, в котором будет отображаться текущее время.
  • При необходимости изменяем дату сервера.

Когда все сделаете, жмите сверху на Done. В разделе Language Support можно выбрать дополнительные языки, которые будет поддерживать система. В принципе, настраивать прямо сейчас тут нет большой необходимости, если вы точно не знаете, понадобится ли вам какое-то еще язык, помимо английского. Все это можно добавить и потом. Но если точно знаете, что нужен еще один язык в системе, например, Русский может понадобиться, если будете использовать Сервер 1С, то добавляйте сразу.

То же самое с клавиатурой. Если нужен набор на еще каком-то языке, то добавляйте его в разделе Keyboard.

  1. Добавляем необходимые раскладки. Я добавил Russian.
  2. Нажимаем Options и выбираем, как будет происходить переключение раскладок.
  3. Тестируем раскладки и переключение. Если все в порядке, идем дальше.

Далее нужно указать, откуда будет производиться установка. Как я уже говорил, в данном примере я использую полный iso образ dvd1, который позволяет выполнить установку centos 8 полностью локально. Сетевую установку я рассмотрю отдельно позже. Так что в данном случае нам ничего отдельно настраивать не надо, по-умолчанию и так выбран виртуальный cd-rom в виде устройства sr0 в качестве источника.

Просмотр логов

В каталоге /var/log находится несколько общих журналов:

  • wtmp
  • utmp
  • dmesg
  • messages
  • maillog или mail.log
  • spooler
  • auth.log или secure

Файлы wtmp и utmp отслеживают пользователей, вошедших и покинувших систему. Содержимое данных журналов нельзя читать с помощью простой команды «cat», для этого есть специальные команды, с которыми теперь нужно ознакомиться.

Чтобы узнать, кто в текущий момент находится на сервере Linux, нужно использовать команду «who». Она извлекает информацию из /var/run/utmp (в CentOS и Debian) или из /run/utmp (в Ubuntu).

Это пример ее работы в CentOS:

Команда «sysadmin» выводит историю входа пользователей:

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

Чтобы узнать время последней перезагрузки системы, используйте следующую команду:

Результат имеет примерно такой вид:

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

Результат на CentOS выглядит примерно так:

Для просмотра содержимого текстовых журналов можно использовать команды «cat», «head» или «tail».

В приведенном ниже примере просматриваются последние 10 строк журнала /var/log/messages на Debian:

Вывод:

Изменения 8-й версии

Пройдемся по основным нововведениям CentOS 8, которые показались интересными лично мне. Функционально это полная копия RHEL 8, поэтому все его изменения на 100% актуальны для центос. Вот список наиболее интересных изменений:

  1. Разделение основного репозитория на 2 — BaseOS и AppStream. Первый будет работать как и раньше, а второй — appstream, сделали для того, чтобы была возможность устанавливать разные версии пакетов на сервер. Этот репозиторий поддерживает новый модульный формат rpm пакетов.
  2. Переход на пакетный менеджер DNF, который поддерживает модульный формат пакетов. Прощай YUM. Теперь это просто алиас для запуска dnf.
  3. Традиционно обновился весь софт и ядро (4.18) Linux. Теперь мы какое-то время будем иметь свежий софт. Прощай php5.4 из базового репозитория :) Я не буду по тебе скучать. Здравствуй php 7.2 и Python 3.6 из коробки.
  4. Замена iptables на nftables. Тут для меня самые серьезные изменения. Iptables я активно использую и настраиваю почти на всех серверах. С nftables не знаком вообще. Надо срочно переучиваться и осваивать новый функционал. Будут статьи на эту тему. Пожалуй этому нововведению я совсем не рад. Лично меня iptables устраивали целиком и полностью в первую очередь тем, что они используются почти везде. Можно брать готовый набор правил и спокойно переносить между серверами с разными ОС. Именно поэтому я всегда пользуюсь голыми iptables, а не надстройками над ними в виде firewalld или ufw. Мне достаточно знать только iptables, чтобы настроить firewall на любом linux сервере.
  5. Убрана поддержка Btrfs. Лично я ей никогда не пользовался, но я знаю, что это популярная штука и удаление ее поддержки значительное событие.
  6. До кучи обновился openssl и tls до последних версий 1.1.1 и 1.3. Некоторое время назад приходилось отдельно собирать пакеты для использования свежих версий. Теперь это на некоторое время ушло в прошлое, пока текущий релиз CentOS 8 не устареет. Года 2-3 будем жить спокойно.
  7. Network scripts для настройки сети объявлены устаревшими и по дефолту не поддерживаются. Можно поставить отдельно пакет для их работы. Для настройки сети надо использовать исключительно NetworkManager, который лично я предпочитаю отключать сразу после установки сервера. Не знаю, чем network-scripts не угодили. Простой и удобный инструмент.

Более подробно с изменениями 8-й версии можете познакомиться на opennet или почитать полный список в оригинале на сайте redhat. Я полистал последний. Там в overview есть ссылки на подробное описание по каждому компоненту системы.

Проксирование подключений к Kibana через Nginx

Я не буду подробно рассказывать о том, что такое проксирование в nginx. У меня есть отдельная статья на эту тему — настройка proxy_pass в nginx. Приведу просто пример конфига для передачи запросов с nginx в kibana. Я рекомендую использовать ssl сертификаты для доступа к Kibana. Даже если в этом нет объективной необходимости, надоедают уведомления браузеров о том, что у вас небезопасное подключение. Подробная инструкция по установке, настройке и использованию ssl в nginx так же есть у меня на сайте — настройка web сервера nginx. Все подробности настройки nginx смотрите там.

Вот примерный конфиг nginx для проксирования запросов к Kibana с ограничением доступа по паролю:

server {
	listen 443;

	server_name kibana.site.ru;
	ssl_certificate /etc/letsencrypt/live/kibana.site.ru/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/kibana.site.ru/privkey.pem;

	location / {
		auth_basic "Restricted Access";
		auth_basic_user_file /etc/nginx/htpasswd.kibana;
		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;
	}
}

Создаем файл для пользователей и паролей:

# htpasswd -c /etc/nginx/htpasswd.kibana kibanauser

Если утилиты htpasswd нет в системе, то установите ее:

# yum install httpd-tools

После этого выйдет запрос на ввод пароля. С помощью приведенной выше команды мы создали файл с информацией о пользователе и пароле kibanauser для ограничения доступа к web панели кибана.

Настройка сети при установке CentOS 8

В окне «Network & Host Name» вы увидите список ваших сетевых интерфейсов, они по умолчанию отключены. В моем примере их два. Каждый сетевой интерфейс имеет отличительное имя, в моем примере, это ens33 и ens36. Видно, что текущий статус «Disconnected», чтобы это изменить переведите тумблер с состояния «Off» на «On».

Если в вашей с локальной сети есть сервер DHCP, в моем примере на CISCO, то вы должны получить нужные настройки, как видно я поймал IP адрес 192.168.31.10/24 и DNS 192.168.31.1, 192.168.31.2. Чуть ниже в левом нижнем углу вы можете сразу задать имя вашего сервера CentOS 8. Если вас не устраивает, что CentOS 8 будет получать настройки сети по DHCP и вы хотите задать статический IP-адрес, то нажмите кнопку «Configure».

В окне свойств сетевого интерфейса найдите вкладку IPV4 Settings, обратите внимание, что тут будет поле «Method», в котором по умолчанию стоит «Automatic (DHCP)», то есть динамическое получение сетевых настроек в CentOS 8. На выбор у вас будут вот такие пункты:

  • Automatic (DHCP) — автоматическое получение всех настроек: IP, маску, DNS, Основной шлюз, маршруты
  • Automatic (DHCP) addresses only — вы получите автоматически только IP-адрес
  • Manual — ручная настройка сети CentOS 8
  • Link-Local Only — Локальные ссылки назначаются автоматически, когда компьютер не настроен на использование статического IP-адреса и не может найти DHCP-сервер. По сути, то APIPA адрес из диапазона 169.254.0.0
  • Shared to other computers — это совместное использование сетевого интерфейса. Простой пример у вас есть сервер с двумя сетевыми интерфейсами один LAN второй WAN, и есть другой сервер, где просто один сетевой интерфейс с LAN и без интернета. Вы можете выставить на первом сервере WAN в режим «Shared to other computers» и указать его в маршрутах для выхода в интернет.
  • Disabled — отключение получения настроек

Давайте я настрою статический IP-адрес на моем сетевом интерфейсе ens33. Выставляю в методе получения «Manual». В поле «Address» я нажимаю кнопку «Add», для добавления новых настроек, задаю Ip-адрес, маску в «Netmask» и основной шлюз в «Gateway». Чуть ниже я указываю свои DNS сервера, у меня это 192.168.31.1, 192.168.31.2, так же можете в поле «Search domains» указать ваше имя домена Active Directory, у меня это root.pyatilistnik.org.

Галка «Require IPv4 addressing for this connection to complete (Требовать адресацию IPv4 для этого соединения)» — Чтобы разрешить системе устанавливать это соединение в сети с поддержкой IPv6, если конфигурация IPv4 завершится неудачно, но конфигурация IPv6 будет успешной. Кнопка «Routes» позволяет вам настроить дополнительные маршруты в CentOS 8.

Нажмите кнопку «Add», чтобы добавить IP-адрес, маску сети, адрес шлюза и метрику для нового статического маршрута. Можете выбрать «Use this connection only for resources on its network», чтобы ограничить подключения только к локальной сети.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: