Создание площадки
Для каждого клиента можно создать одну или несколько площадок, каждая из которых будет использоваться под определенный сайт.
1. Создаем каталоги:
mkdir -p /var/www/u10001/site1.ru/{www,cgi,tmp,log}
mkdir -p /var/www/u10001/site1.ru/log/{apache,nginx}
* подразумевается, что мы создаем площадку для сайта site1.ru.
2. Задаем права на каталоги:
chown -R u10001:virtwww /var/www/u10001/site1.ru
chown -R root:u10026 /var/www/u10001/site1.ru/log
chmod -R 04770 /var/www/u10001/site1.ru
chmod 0710 /var/www/u10001/site1.ru/cgi
chmod -R 0750 /var/www/u10001/site1.ru/log
3. Создаем виртуальный домен в Apache:
vi /etc/httpd/conf.d/site1.ru.conf
<VirtualHost *:8080>
Define root_domain site1.ru
Define root_path /var/www/u10001/site1.ru
ServerName ${root_domain}
ServerAlias www.${root_domain}
DocumentRoot ${root_path}/www
ScriptAlias /cgi ${root_path}/cgi
ErrorLog ${root_path}/log/apache/error_log
TransferLog ${root_path}/log/apache/access_log
php_admin_value upload_tmp_dir ${root_path}/tmp
php_admin_value doc_root ${root_path}
php_admin_value user_dir www
php_admin_value open_basedir /var/www/u10001:/usr/local/share/smarty:/usr/local/share/pear
php_admin_value session.save_path «0;0660;${root_path}/tmp»
php_flag display_errors off
AssignUserID u10001 virtwww
</VirtualHost>
* где site1.ru — сайт, для которого мы создаем площадку; /var/www/u10001/site1.ru — путь, где будут расположены файлы сайта; AssignUserID определяет, под какими учетными данными будет работать виртуальный домен.
4. Создаем виртуальный домен в nginx:
vi /etc/nginx/conf.d/site1.ru.conf
server {
listen 80;
server_name site1.ru www.site1.ru;
set $root_path /var/www/u10001/site1.ru/www;
gzip on;
gzip_disable «msie6»;
gzip_min_length 1000;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
access_log /home/www/u10001/site1.ru/log/nginx/access_log;
error_log /home/www/u10001/site1.ru/log/nginx/error_log;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {
root $root_path;
expires modified +1w;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
}
Проверяем правильность настроек nginx и httpd:
nginx -t
apachectl configtest
Если ошибок нет, перезапускаем сервисы:
systemctl reload nginx
systemctl reload httpd
Установка MySQL в CentOS 7
Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.
Устанавливаем mariadb на CentOS 7:
# yum install -y mariadb mariadb-server
Добавляем mariadb в автозапуск:
# systemctl enable mariadb.service
Запускаем mariadb:
# systemctl start mariadb
Проверяем, запустилась или нет:
# netstat -tulnp | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 22276/mysqld
Обращаю внимание, что она даже в системе отображается как сервис mysqld. Теперь запускаем стандартный скрипт настройки безопасности:
# /usr/bin/mysql_secure_installation
Не буду приводить весь вывод работы этого скрипта, там все достаточно просто и понятно. Сначала задаем пароль для root (текущий пароль после установки пустой), потом удаляем анонимных пользователей, отключаем возможность подключаться root удаленно, удаляем тестового пользователя и базу.
Файл настроек mysql/mariadb лежит в /etc/my.cnf. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.
Перезапуск mariadb/mysql в CentOS 7:
# systemctl restart mariadb
На этом все. Базовый функционал web сервера на CentOS 7 настроен.
Если вам нужен phpmyadmin воспользуйтесь моим подробным руководством по установке и настройке phpmyadmin на centos 7.
Буду рад замечаниям и комментариям по теме статьи. Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.
Онлайн курс Основы сетевых технологий
Теоретический курс с самыми базовыми знаниями по сетям. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:
- На каком уровне модели OSI могут работать коммутаторы;
- Как лучше организовать работу сети организации с множеством отделов;
- Для чего и как использовать технологию VLAN;
- Для чего сервера стоит выносить в DMZ;
- Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
- и многое другое.
Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .
4: Создание юнит-файла для Kafka
Теперь нужно создать юнит-файлы systemd для сервиса Kafka. Это позволит управлять сервисом Kafka – запускать, останавливать и перезапускать его в соответствии с другими сервисами Linux.
Zookeeper – это сервис, который Kafka использует для управления состоянием и конфигурацией кластера. Он широко используется как неотъемлемый компонент во многих распределенных системах. Больше можно узнать в официальной документации Zookeeper.
Создайте файл:
Вставьте в него такое определение:
В разделе указано, что Zookeeper нужна сеть и файловая система, прежде чем сервис сможет начать работу.
Раздел указывает, что systemd должен использовать файлы оболочки zookeeper-server-start.sh и zookeeper-server-stop.sh для запуска и остановки сервиса. Он также указывает, что Zookeeper следует перезапускать автоматически, если он выходит из строя.
Теперь создайте юнит-файл для kafka:
Вставьте в файл такое объявление:
Раздел сообщает, что этот юнит-файл зависит от zookeeper.service. Благодаря этой зависимости zookeeper будет всегда автоматически запускаться раньше, чем kafka.
Раздел указывает, что systemd должна использовать файлы оболочки kafka-server-start.sh и kafka-server-stop.sh для запуска и остановки сервиса. Он также указывает, что Kafka следует перезапускать автоматически, если он выходит из строя.
Теперь юнит-файлы готовы. Можно запустить Kafka:
Чтобы убедиться, что сервис запустился успешно, проверьте логи юнита:
Вы получите:
Теперь сервис Kafka запущен и прослушивает порт 9092.
Однако пока что этот сервис не будет запускаться автоматически вместе с сервером. Чтобы добавить kafka в автозагрузку, введите:
Назначения ISO образов CentOS 7
CentOS-7-x86_64-DVD
Данный ISO образ является стандартным и содержит в себе все пакеты, которые можно выбрать при установке системы. Начинайте знакомство с CentOS именно с него
NetInstall
NetInstall образ предназначен для инсталляции системы через сеть или для восстановления повреждённой системы.
Вам предоставится выбор места из которого будут устанавливаться пакеты. Это очень удобно, если у вас есть локальный репозиторий с необходимым кол-вом пакетов.
Everything
В ISO образе Everything содержится самый полный набор пакетов операционной системы. Размер такого образа около 8 Гб.
LiveGNOME и LiveKDE
Эти два образа представляют собой LiveCD систему CenOS 7. Различие между ними только в графической оболочке KDE или GNOME. Вы можете протестировать систему без установки на ваш жёсткий диск.
Minimal
Минимальный ISO образ — ничего лишнего и его хватит лишь на базовый функционал системы с самым минимальным набором пакетов.
Всё остальное вам придётся уже самостоятельно устанавливать из репозиториев. Зато ничего лишнего и ненужного
Подготовка системы
Я рекомендую ознакомиться с моим материалом на тему первоначальной настройки centos 7. Многие вопросы там рассмотрены подробнее, здесь же я не буду на них задерживаться, просто выполню необходимые команды.
Прежде чем мы начнем устанавливать asterisk, нам надо выполнить целый ряд подготовительных действий. Первым делом отключаем selinux. Для этого открываем файл:
# mcedit /etc/sysconfig/selinux
и устанавливаем значение SELINUX=disabled. После этого применяем настройку без перезагрузки сервера:
# setenforce 0
Рекомендация по отключению selinux дается в официальной инструкции по установке freepbx, так как это может привести к нарушению процесса инсталляции.
Дальше обновляем систему и ставим пакеты Development Tools:
# yum update # yum groupinstall core base "Development Tools"
Apache + PHP
Открываем конфигурационный файл apache:
vi /etc/httpd/conf/httpd.conf
Редактируем строку:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
* добавляем index.php.
Создаем виртуальный домен:
vi /etc/httpd/conf.d/glpi.conf
<VirtualHost *:80>
Define root_domain glpi.dmosk.local
Define root_path /var/www/glpi
ServerName ${root_domain}
DocumentRoot ${root_path}
</VirtualHost>
* мы создали виртуальный домен glpi.dmosk.local, при обращении на который apache будет искать файлы в каталоге /var/www/glpi.
Перезапускаем apache:
systemctl restart httpd
Создаем каталог:
mkdir -p /var/www/glpi
Создаем файл со следующим содержимым:
vi /var/www/glpi/index.php
<?php phpinfo(); ?>
Открываем браузер и вводим имя виртуального домена (в нашем случае, glpi.dmosk.local) — мы должны увидеть, примерно, следующее:
1: Создание пользователя для Apache Kafka
Apache Kafka может обрабатывать запросы по сети, потому необходимо создать для него специального пользователя. Это сводит к минимуму возможные повреждения машины CentOS, на которой будет установлен сервер Kafka.
Примечание: После установки Apache Kafka рекомендуется создать нового не-root пользователя для работы на сервере.
Как пользователь sudo запустите следующую команду, чтобы создать пользователя kafka:
Флаг -m создаст домашний каталог пользователя. Этот каталог, /home/kafka, будет в дальнейшем использоваться в качестве рабочего пространства для запуска команд.
Установите пароль:
Добавьте этого пользователя в группу wheel, чтобы иметь возможность установить все зависимости брокера сообщений.
Пользователь kafka готов к работе. Перейдите в этот пользовательский аккаунт:
CentOS Stream
Новая ветка Stream описана как платформа с постоянным выпуском, которая будет помещаться где-то между Fedora.и RHEL. Идея заключается в том, что ПО и концепции пройдут первоначальное тестирование в Fedora. Затем Red Hat создаст версию Fedora, которая станет основой будущего выпуска RHEL.
Изменения и улучшения, которые вносятся внутри Red Hat до следующего RHEL, станут доступны общественности для комментариев в CentOS Stream.
В идеале, план здесь, по-видимому, заключается в том, что это даст большей части сообщества возможность опробовать новые идеи и сообщить о проблемах. Таким образом, предоставив Red Hat больше отзывов и возможность отточить свое коммерческое предложение.
Этот новый тип взаимодействия между Red Hat Enterprise Linux и CentOS поможет лучше согласовать две платформы в совместном процессе.
Как создать загрузочную флешку CentOS
Версии утилиты UNetbootin предлагаются для основных операционных систем:
- Windows
- Linux
- macOS
Для загрузки щелкните мышью по версии для вашей ОС. Программа CentOS совместима с показанными иллюстрацией дистрибутивами Linux.
Запустите исполняемый файл и установите UNetbootin. Вставьте чистую флешку в USB-порт вашего ПК. Перед этим перенесите все важные файлы с нее на другие накопители, поскольку вся информация на данном носителе будет удалена. Откройте программу.
Из списка ввеху выберите дистрибутив: CentOS. Из списка версий выберите самую свежую. Щелкните мышью по кнопке «…». Выберите файл ISO-образа системы на жестком диске.
В главном окне UNetbootin нажмите кнопку «ОК» и дождитесь завершения создания загрузочного USB-накопителя.
После того, как загрузочный накопитель создан:
- Закройте утилиту и извлеките флешку из USB-разъема.
- Выключите компьютер.
- Снова вставьте USB-накопитель в разъем.
- Включите ПК.
- Зайдите в UEFI или BIOS. На экране будет показано, какая клавиша или сочетание клавиш применяется для этого в вашей модели. Чаще всего: «Delete» («Del»), «F2» или «F10».
2: Установка и настройка Python 3
CentOS является производной системой от RHEL (Red Hat Enterprise Linux), которая сосредоточена на надёжности и стабильности. Поэтому в репозиториях системы можно найти только хорошо проверенные стабильные версии пакетов. На данный момент Python 3 таковым не является, потому в репозитории вы найдёте только пакет Python 2.
Чтобы получить наиболее актуальный и стабильный upstream релиз Python 3, нужно установить IUS (Inline with Upstream Stable). IUS предоставляет более актуальные версии пакетов для RPM (Red Hat Package Manager).
Установите IUS с помощью yum:
После завершения установки IUS можно установить последнюю версию Python (на момент написания руководства это Python 3.5.2).
После установки Python нужно убедиться, что всё работает должным образом. Для этого запросите версию Python:
Если установка прошла успешно, на экране появится:
Теперь нужно установить pip, пакетный менеджер Python.
Менеджер pip можно использовать для установки и управления пакетами, задействованными в разработке проектов. Чтобы установить пакет с помощью pip, используйте такой синтаксис:
Примечание: Замените package_name именем пакета или библиотеки Python.
К примеру, чтобы установить NumPy (пакет для научных вычислений), можно ввести:
Теперь нужно установить пакет python35u-devel, который содержит библиотеки и файлы заголовков, которые потребуются для разработки проектов в Python 3.
В набор python35u-devel входит пакет pyvenv, с помощью которого можно создать изолированную виртуальную среду для разрабатываемых проектов.
Типы iso образов CentOS 7
Релиз CentOS содержал в себе несколько видов iso образов. Подробное описание каждого из них представлено в таблице:
CentOS-7-x86_64-DVD | Этот DVD образ содержит все пакеты, которые могут быть установлены с помощью инсталлера. Рекомендуется для большинства пользователей. |
CentOS-7-x86_64-NetInstall | Этот NetInstall образ для установки по сети и для восстановления. Инсталлятор спросит, откуда будет производиться установка пакетов. Удобно использовать, если у вас есть локальный репозиторий пакетов. |
CentOS-7-x86_64-Everything | В этом Everything образе содержится полный набор пакетов CentOS 7. Он может быть использован для установки, либо обновления локального зеркала. Для этого образа требуется двухсторонний DVD, либо флешка на 8 Гб. |
CentOS-7-x86_64-LiveGNOME CentOS-7-x86_64-LiveKDE | Эти два образа являются LiveCD CenOS 7. В зависимости от названия используется та или иная графическая оболочка. Они разработаны для тестирования окружения CentOS 7. Они не устанавливаются на жесткий диск, если вы не собираетесь этого делать принудительно. Набор установленного программного обеспечения поменять нельзя, это можно сделать только на установленной операционной системе с помощью yum. |
CentOS-7-x86_64-Minimal | С помощью этого Minimal образа можно установить базовую систему CentOS с минимальным набором пакетов, необходимых для работоспособности системы. Все остальное можно доустановить позже с помощью yum. Набор пакетов в этом образе будет такой же, как и на DVD при выборе установки minimal. |
Я обычно использую для установки либо minimal образ, либо netinstall.
CentOS 7 minimal
Если вы используете диск centos minimal iso, то увидите следующий экран:
Здесь вам предлагают указать параметры установки. Восклицательным знаком помечен раздел, без настройки которого продолжение невозможно. Для настройки доступны следующие параметры установки:
- Выбор часового пояса centos.
- Выбор раскладки клавиатуры.
- Поддержка каких языков будет осуществляться на сервере.
- Откуда будет происходить установка. Так как у нас дистрибутив centos minimal, установка будет с локального iso.
- Выбор пакетов для установки. В образе minimal доступен только минимальный набор софта.
- Разбивка жесткого диска. Подробнее коснемся этого пункта, когда будем разбирать установку на raid.
- Настройка сетевых интерфейсов.
Для продолжения установки необходимо выполнить как минимум разбивку жесткого диска. Без этого продолжение установки невозможно. Но мы пройдемся по всем параметрам и установим необходимые для нас значения.
Итак, нажимаем на DATE & TIME и настраиваем параметры времени:
- Указываем регион.
- Выбираем город.
- Включаем при необходимости службу времени для синхронизации часов centos с внешними серверами.
Это возможно сделать только если вы уже настроили сетевые параметры. Если нет, то вернитесь к этой настройке позже. - Выбираем список внешних серверов для синхронизации времени:
- Указываем формат, в котором будет отображаться текущее время.
- При необходимости изменяем дату сервера.
После завершения настроек жмем сверху синюю кнопку Done.
Идем в следующую настройку — KEYBOARD LAYOUT:
- Добавляем необходимые раскладки. Я добавил Russian.
- Нажимаем Options и выбираем, как будет происходить переключение раскладок.
- Тестируем раскладки и переключение. Если все в порядке, идем дальше.
Нажимаем LANGUAGE SUPPORT:
Выбираем дополнительные языки, которые будет поддерживать система. Чаще всего мне это не нужно, но для примера добавим поддержку русского языка. Это может пригодиться, например, при создании файлового архива с русскими названиями в файлах. С поддержкой русского языка можно работать в консоли с русскими названиями папок и файлов. Если у вас, к примеру, сервер настраивается для работы в качестве шлюза, поддержка дополнительных языков скорее всего не пригодится. После выбора снова жмем Done.
Теперь выполним сетевые настройки. Идем в раздел NETWORK & HOSTNAME. Подробно о я указывал в одной из своих статей, поэтому останавливаться на этом вопросе не буду. Включаем ползунок в положение ON и получаем автоматически настройки по dhcp:
- Включение ползунка в положение ON активирует интерфейс, он получает настройки по dhcp.
- Если вы хотите изменить эти настройки, нажимаете Configure.
- Указываете hostname. Если забудете, то после установки этот параметр можно изменить.
Завершаем настройку нажатием на Done. Теперь можно вернуться в настройки часов и активировать Network Time.
Теперь перейдем в раздел INSTALLATION SOURCE. При установке centos minimal менять этот параметр нет необходимости. Там по-умолчанию установлен локальный источник, нам это подходит. Можно ничего не трогать:
В разделе SOFTWARE SELECTION при minimal установке тоже нечего выбрать, уже указан единственно возможный вариант:
Нам осталось рассмотреть последнюю обязательную настройку, без которой установка centos не начнется — INSTALLATION DESTINATION. Зайдя в нее вы увидите список подключенных к серверу дисков. В моем случае это один жесткий диск.
Если ваш диск определился правильно, выбираете его и нажимаете Done. Выскакивает окошко с предупреждением, что для установки системе понадобится примерно 1 Гб места на жестком диске, а на вашем жестком диске нет необходимого свободного места. Это происходит потому, что раньше на этом диске была установлена другая система и она занимала весь жесткий диск. Нам нужно удалить всю старую информацию для установки новой системы. Делаем это, нажимая Reclaim space:
Выбираем диск и удаляем все существующие разделы на нем — жмем сначала Delete all, а потом Reclaim space:
После этого установщик выберет весь диск в качестве диска для установки. После этого можно начать непосредственно установку centos, нажав кнопку Begin Installation.
Дальше рассмотрим вариант, когда вы выполняете установку с образа netinstall.
Установка CentOS 7 с флешки
После создания загрузочной флешки, можно приступить к установке. Вставляем флешку в сервер, указываем в качестве источника загрузки USB и запускаем компьютер. Нас встречает начальное меню установки CentOS:
Выбираем первый пункт: Install CentOS 7 и жмем enter . После загрузки инсталлера, нас встречает окно с выбором языка, который будет использоваться во время установки. Я всегда выбираю Еnglish , мне так привычнее:
Дальше загружается страница с выбором основных параметров установки. Она уже будет отличаться в зависимости от типа ISO образа, с которого происходит установка центос.
Что нового
Рассмотрим основные изменения, которые влияют на процесс настройки операционной системы и работы с ней.
1. Установка пакетов
Пакетный менеджер.
Пакетный менеджер YUM заменен на DNF. Последний потребляем меньше ресурсов и работает быстрее. Синтаксис установки пакетов, во многом, остается таким же, например:
dnf install bind
Однако, команда yum install bind также отработает — yum является алиасом для dnf, поэтому привычный формат установка пакетов и обновлений сохранен.
Репозитории.
Для установки и обновления пакетов используются базовый репозиторий и BaseOS и модульный AppStream. Базовый содержит минимально необходимый для работы набор пакетов, AppStream — все остальное. Более того, AppStream может использоваться в двух форматах — классическом RPM и модульном.
Модульный репозиторий содержит наборы с альтернативными версиями пакетов — таким образом можно установить программное обеспечение либо основной версии (которая по умолчанию поддерживается релизом CentOS), либо альтернативную (она тоже официально поддерживается операционной системой). Набор пакетов в модульном репозитории представляет из себя логическую единицу для установки приложения — само приложение, набор библиотек и инструментов для его работы. Все наборы тестируются перед размещением в репозиторий.
2. Сетевые настройки
Управление сетью.
Для управления сетью используется только NetworkManager. Скрипты ifup и ifdown объявлены как устаревшие. Для перезапуска сети теперь используется команда:
systemctl restart NetworkManager
* раньше это можно было сделать командой systemctl restart network.
Брандмауэр.
Пакетный фильтр nftables пришел на смену старому доброму iptables. firewalld переведён на использование nftables. Также появились утилиты iptables-translate и ip6tables-translate для конвертации старых правил под iptables.
TCP/IP.
TCP стек обновлен до версии 4.16. Разработчики отмечают увеличение скорости при обработке входящих соединений.
3. Установка
Инсталлятор.
Добавлена возможность установки системы на накопители NVDIMM. Инструмент Image Builder позволяет пользователям создавать настраиваемые системные образы в различных форматах, включая изображения, подготовленные для развертывания в облаках различных поставщиков.
4. Безопасность
Политики настройки криптографических подсистем.
Пакет OpenSSL обновлен до версии 1.1.1 с поддержкой TLS 1.3. Это позволит не пересобирать некоторые пакеты (например nginx для включения http/2).
Также с помощью команды update-crypto-policies можно выбрать один из режимов выбора криптоалгоритмов.
PKCS#11.
Включена поддержка смарткарт и HSM c токенами PKCS#11;
5. Виртуальзация
QEMU.
QEMU обновлен до версии 2.12. Виртуальные машины создаются с поддержкой PCI Express и с эмуляцией чипсета ICH9. Реализован режим sandbox-изоляции для ограничения системных вызовов.
Утилита virt-manager является устаревшей и вместо нее рекомендуется использовать веб-интерфейс Cockpit.
6. Веб-разработка
Языки программирования.
По умолчанию из репозитория теперь устанавливаются:
- php7.2 вместо php5.4
- Python 3.6 вместо 2.7
- Ruby 2.5
- Perl 5.26
- SWIG 3.0
Базы данных.
Также из коробки будут устанавливаться:
- MariaDB 10.3
- MySQL 8.0
- PostgreSQL 10 или PostgreSQL 9.6
- Redis 5
Веб-серверы.
Версии устанавливаемых по умолчанию пакетов — Apache 2.4 и nginx 1.14.
7. Графический интерфейс
Desktop.
По умолчанию устанавливается графический интерфейс GNOME версии 3.28. В качестве протокола организации графического сервера используется Wayland. По сравнению с Xorg, Wayland задействует меньше программных и аппаратных ресурсов и считается, что работает быстрее. Однако, использование Xorg в CentOS 8 также возможно.
Пакеты KDE удалены из состава дистрибутива.
Cockpit.
Cockpit — веб-интерфейс для управления CentOS. Он может оказаться полезным новичкам. Для его запуска нужно выполнить несколько несложных команд.
Установка:
dnf install cockpit
Настройка брандмауэра:
firewall-cmd —permanent —add-port=9090/tcp
firewall-cmd —reload
Запуск:
systemctl enable —now cockpit.socket
systemctl start cockpit
Можно заходить на интерфейс по адресу https://<IP-адрес компьютера>:9090/. В качестве логина используем системную учетную запись, например, root.
Весь список изменений можно найти на сайте Red Hat.
Защищенное соединение (https)
Для настройки https нам нужен сертификат. Его можно создать с помощью внутреннего центра сертификации, купить, получить бесплатно у Let’s Encrypt или, в качестве тестового варианта, создать самозаверенный сертификат командами:
mkdir /etc/httpd/ssl/
openssl req -new -x509 -days 1461 -nodes -out /etc/httpd/ssl/cert.pem -keyout /etc/httpd/ssl/cert.key -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=test.dmosk.local/CN=test»
Добавляем виртуальный домен:
vi /etc/httpd/conf.d/glpi.conf
<VirtualHost *:80>
Define root_domain test-glpi.dmosk.local
Define root_path /var/www/glpi
ServerName ${root_domain}
DocumentRoot ${root_path}
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
Define root_domain test-glpi.dmosk.local
Define root_path /var/www/glpi
ServerName ${root_domain}
DocumentRoot ${root_path}
SSLEngine on
SSLCertificateFile ssl/cert.pem
SSLCertificateKeyFile ssl/cert.key
</VirtualHost>
* в данном примере мы добавили виртуальный домен для 443 порта и добавили правило перенаправления всех запросов с http (80) на https (443).
Добавляем порт 443 в брандмауэр (если этого не было сделано при подготовке сервера):
firewall-cmd —permanent —add-port=443/tcp
firewall-cmd —reload
Устанавливаем модуль mod_ssl:
yum install mod_ssl
Перезапускаем apache:
systemctl restart httpd
HTTP/2
Для поддержки http2, добавляем новый репозиторий:
cd /etc/yum.repos.d
wget https://repo.codeit.guru/codeit.el`rpm -q —qf «%{VERSION}» $(rpm -q —whatprovides redhat-release)`.repo
Устанавливаем модуль mod_http2:
yum install mod_http2
В конфиг виртуального домена добавим:
Protocols h2 http/1.1
Перезапустим httpd:
systemctl restart httpd
Подробнее про настройку HTTP/2 на Apache.
Заключение
Я постарался рассказать подробно и понятно о полной настройке ELK Stack. Информацию в основном почерпнул в официальной документации. Мне не попалось более ли менее подробных статей ни в рунете, ни в буржунете, хотя искал я основательно. Вроде бы такой популярный и эффективный инструмент, но статей больше чем просто дефолтная установка я почти не видел. Буквально одна на хабре попалась с какой-то более ли менее кастомизацией.
Какие-то проверенные моменты я не стал описывать в статье, так как посчитал их неудобными и не стал использовать сам. Например, если отказаться от logstash и отправлять данные с beats напрямую в elasticsearch, то на первый взгляд все становится проще. Штатные модули beats сами парсят вывод, устанавливают готовые визуализации и дашборды в Kibana. Вам остается только зайти и любоваться красотой Но на деле все выходит не так красиво, как хотелось бы. Кастомизация конфигурации усложняется. Изменение полей в логах приводит к более сложным настройкам по вводу этих изменений в систему. Все настройки поступающей информации переносятся на каждый beats, изменяются в конфигах отдельных агентов. Это неудобно.
В то же время, при использовании logstash, вы просто отправляете данные со всех beats на него и уже в одном месте всем управляете, распределяете индексы, меняете поля и т.д. Все настройки перемещаются в одно место. Это более удобный подход. Плюс, при большой нагрузке вы можете вынести logstash на отдельную машину.
Я не рассмотрел в своей статье такие моменты как создание визуализаций и дашбордов в Кибана, так как материал уже и так получился объемный. Я устал писать эту статью Смотрите остальные мои материалы по данной теме. Там есть примеры.
Так же я не рассмотрел такой момент. Logstash может принимать данные напрямую через syslog. Вы можете, к примеру, в nginx настроить отправку логов в syslog, минуя файлы и beats. Это может быть более удобно, чем описанная мной схема. Особенно это актуально для сбора логов с различных сетевых устройств, на которые невозможно поставить агента, например mikrotik. Syslog поток так же можно парсить на ходу с помощью grok. Отдельно надо рассмотреть автоочистку старых индексов в elasticsearch.
Подводя итог скажу, что с этой системой хранения логов нужно очень вдумчиво и внимательно разбираться. С наскока ее не осилить. Чтобы было удобно пользоваться, нужно много всего настроить. Я описал только немного кастомизированный сбор данных, их визуализация — отдельный разговор. Сам я постоянно использую и изучаю систему, поэтому буду рад любым советам, замечаниям, интересным ссылкам и всему, что поможет освоить тему.
Все статьи раздела elk stack — https://serveradmin.ru/category/elk-stack/.
Онлайн курс «DevOps практики и инструменты»
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Проверьте себя на вступительном тесте и смотрите программу детальнее по .
Вывод
Если мы посмотрим на CentOS 8 то в нем много проблемных областей, которые мешают быть приятным из коробки. Большой проблемой является возможность управлять расширениями Gnome, без которых рабочий стол просто не может быть использован. Стоит отметить, CentOS, не предназначен для рабочего стола как таковой, все выглядит вполне достойно. Поскольку существует много специализированных систем для дома, которые управляют гораздо меньше, чем эта. Не забывайте стабильность и десять лет поддержки.
Вдобавок ко всему, можно самостоятельно добавить новое ПО, поддержка мультимедиа и смартфонов на высоте. Производительность выше, сеть может быть лучше, и должен быть упрощенный механизм для включения элемента рабочего стола. Плюс CentOS 8 лучше, чем его предшественник-это вызывает уважение.
Ну и напоследок, самое важное достоинство дистрибутива – это стабильность