Мониторинг памяти жесткого диска на сервере

pmap

Команда pmap предоставляет подробную карту памяти, используемой процессом. Для работы с этой командой необходимо сначала найти идентификатор нужного процесса. Его можно получить командой ps, или даже командой top, если речь идет о процессе, потребляющем много процессорного времени.
Для запуска утилиты необходимо в терминале выполнить команду:

pmap *параметр* * идентификатор процесса*

Например:
Основные параметры:-x — эта опция используется для отображения карты памяти в расширенном формате.-p — эта опция используется для отображения полного пути к файлам.-d — эта опция используется для отображения формата устройства.-q — эта опция используется для игнорирования имен столбцов при отображении отчета карты памяти.-A — эта опция используется для отображения результатов в заданном диапазоне

Обратите внимание, что аргументы low и high — это одна строка, разделенная запятой.-XX — эта опция используется для отображения всего, что предоставляет ядро.-n — эта опция используется для создания новой конфигурации.-c — эта опция используется для чтения конфигурации по умолчанию.-h — эта опция используется для отображения текста справки.-v — эта опция используется для отображения информации о версии и выхода

Как проверить все открытые файлы пользователем или процессом в Linux

В некоторых ситуациях на Linux могут возникать ошибки, связанные с превышением лимита использования файловых дескрипторов.
Эти лимиты накладываются как самим ядром Linux, так и его программными модулями, например PAM.

Лимит ядра Linux

Узнать текущее значение максимального количества файловых дескрипторов, определяемое ядром Linux можно командой:

# cat /proc/sys/fs/file-max

Этот лимит может быть изменён без перезагрузки системы (начинает действовать сразу и действует до перезагрузки):

# echo "1221724" > /proc/sys/fs/file-max

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

sysclt.conf
...
fs.file-max=1221724
...

Методика подсчёта открытых файлов

Для получения информации о количестве всех открытых файлов всеми процессами в Linux некоторые «знатоки» предлагают использовать команду типа

# lsof | wc -l

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

Поэтому проще для получения общего числа открытых файлов использовать данные ядра Linux

# cat /proc/sys/fs/file-nr

Первое число — общее количество занятых/используемых на данный момент времени файловых дескрипторов.

Второе число — количество выделенных процессам, но не используемых в данный момент дескрипторов.

Третье число — максимальное количество открытых дескрипторов

Примеры получения данных

Получить список TOP-20 процессов с самым большим количеством открытых файловых дескрипторов:

# for x in `ps -eF| awk '{ print $2 }'`; \
 do echo `ls /proc/$x/fd 2> /dev/null | \
 wc -l` $x `cat /proc/$x/cmdline 2> /dev/null`; \
 done | sort -n -r | head -n 20

Подсчитать количество открытых файлов в разрезе процессов (в первой колонке будет выведен PID процесса, во второй количество открытых файлов этим процессом):

# ps aux | sed 1d | awk \
 '{print "fd_count=$(lsof -p " $2 " | wc -l) && echo " $2 " $fd_count"}' | \
 xargs -I {} bash -c {}

Посмотреть открытые файловые дескрипторы во всех процессах для отдельно взятого пользователя, например «apache»

# lsof -u apache

Подсчитать количество открытых файлов в каждом процессе для отдельно взятого пользователя:

# lsof -u apache | awk '{print $2}' | sort | uniq -c | sort -n

Тоже самое, только в реальном режиме времени:

# watch 'lsof -u vdsm | awk '\''{print $2}'\'' | sort | uniq -c | sort -n'

Посмотреть открыте файловые дескриптры для отдельно взятого процесса (по PID процесса):

# lsof -p 9189

Подсчитать количество файловых дескриптров для отдельно взятого процесса:

# lsof -p 9189 | wc -l

Дополнительные источники информации:

Блог Дениса Тулякова — Количество открытых файлов, сокетов

Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux 8.10 (jessie)

Автор первичной редакции:Алексей Максимов
Время публикации: 09.06.2018 11:18

Cacti — веб-инструмент для мониторинга Linux

Cacti — это комплексное решение для построения сетевых графиков, предназначенное для использования возможностей RRDTool по хранению и графическому отображению данных. В Cacti есть функционал для обследования сети, расширенные шаблоны графиков, несколько методов сбора данных и функции управления пользователями. Все это сведено в интуитивно понятный и простой в использовании интерфейс, который подходит даже для сложных сетей с сотнями устройств. Он может предоставлять данные о сети, процессоре, памяти, пользователях вошедших в систему, Apache, DNS-серверах и многое другое.

Доступ в web интерфейс Freepbx

Переходим в браузере по ip адресу или доменному имени сервера и создаем учетную запись администратора Freepbx. При первом заходе в 14-ю версию я увидел ошибку.

Текст ошибки.

Whoops \ Exception \ ErrorException (E_DEPRECATED)
Methods with the same name as their class will not be constructors in a future version of PHP; gui_hidden has a deprecated constructor in /var/www/html/admin/libraries/components.class.php on line 571

Насколько я понял, это сообщение о том, что используется какая-то конструкция, которая объявлена Deprecated и скоро не будет работать. Что с этим делать сейчас, я не понял. Нашел баг репорт с этой ошибкой — https://issues.freepbx.org/browse/FREEPBX-19941 Он почему-то отклонен, помещен как дублирующий, но найти эту же ошибку в трекере я не смог.

Если взять версию php 5.6, то там этой ошибки не будет. Freepbx 14 официально поддерживает только 5.6, но откатываться на нее совсем не хочется.

Я решил просто отключить обработчик ошибок bootstrap. Для этого открываем конфиг freepbx и добавляем туда новое значение.

# mcedit /etc/freepbx.conf
$bootstrap_settings = false;

Заходим в web интерфейс freepbx еще раз и создаем администратора.

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

После этого оказываетесь в веб панели Freepbx. Нажмите сверху на Dashboard и увидите сводную информацию по системе. Теперь можно начинать ее настройку, но это тема отдельной статьи. Возможно, до нее у меня когда-нибудь дойдут руки.

Бонус: дополнительные инструменты

Еще немного инструментов:

  • nmap – сканирует сервер на наличие открытых портов.
  • lsof – список открытых файлов, сетевых подключений и многое другое.
  • ntop — веб-инструмент для наблюдения за использованием сети, программное обеспечение для мониторинга сетевого трафика. Вы можете видеть состояние сети, распределение трафика по протоколам для UDP, TCP, DNS, HTTP и других протоколов.
  • Conky – еще один классный инструмент мониторинга для системы X Window. Он легко настраивается и способен отслеживать многие системные переменные, включая состояние процессора, памяти, места подкачки, дискового пространства, температуры, процессов, сетевых интерфейсов, заряда батареи, системных сообщений, почтовых ящиков и т. д.
  • GKrellM – этот инструмент можно использовать для мониторинга состояния процессоров, основной памяти, жестких дисков, сетевых интерфейсов, локальных и удаленных почтовых ящиков и многого другого.
  • mtr – mtr объединяет функциональность программ traceroute и ping в одном инструменте диагностики сети.
  • vtop – графический монитор активности терминала в Linux.
  • gtop – панель мониторинга системы для терминала Linux/macOS Unix.

Оригинал статьи — https://www.cyberciti.biz/tips/top-linux-monitoring-tools.html.

Каждую неделю мы в live режиме решаем кейсы на наших открытых онлайн-практикумах, присоединяйтесь к нашему каналу в Телеграм, вся информация там.

Больше руководств по cli:

  • Оболочка Bash
  • Введение в сценарии оболочки Bash
  • Раковина рыбы
  • Оболочка, наблюдайте за содержимым файла по мере его заполнения
  • Как выйти из Vim
  • Редакторы UNIX
  • Команды файловой системы UNIX
  • Учебник по оболочкам Unix
  • Как установить псевдоним в оболочке macOS или Linux
  • Практическое руководство по домашнему пиву
  • Как исправить ошибку неверного пути к активному разработчику xcrun в macOS
  • Командная строка для начинающих
  • Введение в Linux
  • Как найти процесс, использующий порт
  • Команды Linux: mkdir
  • Команды Linux: cd
  • Команды Linux: pwd
  • Команды Linux: rmdir
  • Команды Linux: ls
  • Команды Linux: mv
  • Команды Linux: cp
  • Команды Linux: меньше
  • Команды Linux: хвост
  • Команды Linux: коснитесь
  • Команды Linux: cat
  • Команды Linux: найти
  • Команды Linux: ln
  • Команды Linux: ps
  • Команды Linux: echo
  • Команды Linux: вверх
  • Команды Linux: kill
  • Команды Linux: killall
  • Команды Linux: псевдоним
  • Команды Linux: вакансии
  • Команды Linux: bg
  • Команды Linux: fg
  • Команды Linux: введите
  • Команды Linux: какие
  • Команды Linux: whoami
  • Команды Linux: кто
  • Команды Linux: очистить
  • Команды Linux: su
  • Команды Linux: sudo
  • Команды Linux: chown
  • Команды Linux: chmod
  • Команды Linux: passwd
  • Команды Linux: открыть
  • Команды Linux: wc
  • Команды Linux: история
  • Команды Linux: du
  • Команды Linux: umask
  • Команды Linux: grep
  • Команды Linux: man
  • Команды Linux: uname
  • Команды Linux: сортировка
  • Команды Linux: uniq
  • Команды Linux: diff
  • Команды Linux: nohup
  • Команды Linux: df
  • Команды Linux: xargs
  • Команды Linux: gzip
  • Команды Linux: gunzip
  • Команды Linux: ping
  • Команды Linux: traceroute
  • Команды Linux: tar
  • Команды Linux: экспорт
  • Команды Linux: crontab
  • Команды Linux: dirname
  • Команды Linux: базовое имя
  • Команды Linux: printenv
  • Команды Linux: env
  • Краткое руководство по редактору ed
  • Краткое руководство по vim
  • Краткое руководство по emacs
  • Краткое руководство по нано
  • Linux, на устройстве не осталось места
  • Как использовать Netcat

Что такое Monit

Monit — это система мониторинга за службами в Linux (Debian, Ubuntu, CentOS). Есть дистрибутивы под BSD (FreeBSD, OpenBSD), а также OS X и Solaris.
Возможности:

  • Слежение за работоспособностью и доступностью MySQL, NGINX и другими подобными службами;
  • При сбое в работе одного из подопечных (их недоступности) monit может, в зависимости от настроек, уведомить о проблеме по email и попытаться восстановить их работоспособность.
  • Определение, что какая-служба (например, Apache) потребляет слишком много ресурсов (скажем, при DoS-атаке), и остановить или перезапустить эту службу, уведомив при этом администратора по email.
  • Контроль за характеристиками процесса: сколько оперативной памяти или циклов процессора используется
  • Вы можете использовать Monit для мониторинга процессов демона или аналогичных программ, запущенных на localhost. Monit особенно полезен для мониторинга процессов демона, например, запущенных при загрузке системы из / etc / init / Например sendmail, sshd, apache и mysql.
  • Вы также можете использовать Монит для мониторинга файлов, каталогов и файловых систем на локальном хосте. Монит может контролировать эти элементы для изменений, таких как изменения временных меток, изменения контрольной суммы или изменения размера. Это также полезно по соображениям безопасности — вы можете контролировать контрольную сумму md5 или sha1, которые не должны меняться, получать предупреждение или выполнять действие, если они должны измениться.
  • Контролируйте сетевые подключения к различным серверам, либо на локальном хосте, либо на удаленных хостах. Поддерживаются порты TCP, UDP и Unix. Сетевые тесты могут выполняться на уровне протокола; Монит имеет встроенные тесты для основных интернет-протоколов, таких как HTTP, SMTP и т.д. Даже если протокол не поддерживается, вы все равно можете протестировать сервер, так как вы можете настроить Monit для отправки любых данных и проверки ответа с сервера.
  • Monit можно использовать для тестирования программ или сценариев в определенное время, например, cron, но, кроме того, вы можете проверить значение выхода программы и выполнить действие или отправить предупреждение, если значение выхода указывает на ошибку. Это означает, что вы можете использовать Monit для выполнения любого типа проверки, для которого вы можете написать сценарий.
  • Наконец, Monit можно использовать для мониторинга общих системных ресурсов на локальном хосте, таких как общее использование процессора, оперативной памяти и Load Average.

На мой взгляд, самое важное для вебмастера, что может Monit — это обеспечение бесперебойной работы вебсервера (NGINX, MySQL, PHP-FPM). Эту систему и настроим далее

Для работы с консолью SSH используется Far Manager или putty

Установка Monitorix на RedHat/Centos/Fedora

Monitorix является свободным, с открытым исходным кодом- инструмент для мониторинга системы, предназначенный для контроля множество услуг и системных ресурсов. Он был создан для использования в производственных серверов Linux / UNIX, но из-за его простоты и небольшой размер может быть использован на встроенных устройствах.
Он состоит в основном из двух программ: коллектора, называется monitorix, который является демон Perl, который автоматически запускается, как и любая другая системная служба, и некий скрипт называется monitorix.cgi. Начиная с версии 3.0 Monitorix включает в себя собственный HTTP сервер, так что вам не нужно устанавливать никакой сторонний веб-сервер.

Все его развития изначально была создана для мониторинга Red Hat, Fedora и системы CentOS Linux, так что этот проект был сделан с учетом этих типов распределений. Сегодня он работает на различных дистрибутивов GNU / Linux и даже в других системах UNIX, как FreeBSD, OpenBSD и NetBSD.

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

Требования

Perl
Perl-CGI
Perl-libwww
Perl
-MailTools
Perl-MIME-Lite
Perl-DBI
Perl-XML-Simple
Perl-Config-General
Perl-HTTP-Server-Simple
perl-IO-Socket-SSL
RRDTool и его Perl привязки (Perl-RRDtool или RRDtool-Perl)
(Необязательно) CGI на веб-сервере (Apache, Nginx, Lighttpd, и т.д.)

1. В первую очередь подключаем следующие репозитории:

  • EPEL
  • Repoforge

2. Нужно загрузить и установить пакет Monitorix :

# rpm -ivh http://www.monitorix.org/monitorix-3.5.1-1.noarch.rpm

У меня выбило предупреждение что у меня не хватает perl-IO-Socket-SSL, по этому я решу проблему очень легко:

# yum install perl-IO-Socket-SSL

3. Нужно запустить сервисы апача и мониторикса:

# service httpd start
# service monitorix start

4. Поправим конфигурационный файл Monitorix:

# vim /etc/httpd/conf.d/monitorix.conf

И вставьте следующий текст ( я приведу его готовым файлом), прочитать можно тут, а чтобы скачать:

# wget http://linux-notes.org/wp-content/uploads/files/monitoring/monitorix/monitorix.conf

Изменить только нужно имя аутентификации ( у меня это «captain»).

5. Нужно выключить SElinux:Как отключить SELinux на CentOS

6. Переходим в браузер ( открываем его):http://your_domain_or_IP/monitorix

пример использования monitorix

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

На этом статья «Установка Monitorix на RedHat/Centos/Fedora» завершена.

Базовая настройка сети

Смотрим все установленные сетевые адаптеры в системе:

ip a

В результате получаем что-то подобное:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:81:28:3c brd ff:ff:ff:ff:ff:ff
    inet 192.168.156.22/22 brd 192.168.159.255 scope global ens32
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:81:3f:22 brd ff:ff:ff:ff:ff:ff
    inet 10.243.254.68/26 brd 10.243.254.127 scope global ens34
       valid_lft forever preferred_lft forever

* Из примера видно, что в моем CentOS есть 3 сетевых карты — lo (локальная петля), ens32 и ens34 — сетевые Ethernet адаптеры.

Если нужно настроить сеть для адаптера ens32, открываем на редактирование следующий конфигурационный файл:

vi /etc/sysconfig/network-scripts/ifcfg-ens32

И приводим его к следующему виду:

DEVICE=ens32
BOOTPROTO=static
IPADDR=192.168.0.155
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.54
DNS2=192.168.0.11
ONBOOT=yes

… а также для CentOS 8 добавим:

NM_CONTROLLED=yes

Основные опции

Опция Описание Возможные значения
DEVICE Имя сетевого адаптера Должно совпадать с именем в системе. В данном примере ens32
BOOTPROTO способ назначения IP-адреса static: ручное назначение IP, dhcp: автоматическое получение IP
IPADDR IP-адрес адрес, соответствующий вашей сети
NETMASK Сетевая маска должна соответствовать вашей сети
GATEWAY Шлюз по умолчанию IP-адрес сетевого шлюза
DNS1 Основной DNS-сервер IP-адрес сервера имен
DNS2 Альтернативный DNS-сервер IP-адрес сервера имен
ONBOOT Способ запуска сетевого интерфейса yes: автоматически при старте сервера, no: запускать вручную командой
NM_CONTROLLED Указываем, должен ли интерфейс управляться с помощью NetworkManager yes: управляется NetworkManager, no: не может управляться NetworkManager

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

а) для CentOS 7:

systemctl restart network

б) для CentOS 8 вводим 2 команды:

systemctl restart NetworkManager

nmcli networking off; nmcli networking on

* в большей степени, это основное отличие версий 7 и 8. Чтобы команды смогли поменять настройки, для интерфейсов необходима настройка NM_CONTROLLED=yes.

Дополнительные опции (не обязательны для работы сети)

Опция Описание Возможные значения
DOMAIN Указываем домен, который необходимо добавлять к имени хостов, если он не указан в запросе явно. Строковое значение, соответствующее имени домена.
IPV4_FAILURE_FATAL Отключение сетевого интерфейса, если IP-адрес (v4) имеет неверную конфигурацию yes: отключать, no: не отключать
IPV6_FAILURE_FATAL Отключение сетевого интерфейса, если IP-адрес (v6) имеет неверную конфигурацию yes: отключать, no: не отключать
IPV6_AUTOCONF Разрешает или запрещает автоконфигурирование IPv6 с помощью протокола Neighbor Discovery yes: разрешить автоконфигурирование, no: запретить
IPV6INIT Говорит о возможности использовать сетевой интерфейс для адресации IPv6 yes: адресация может использоваться, no: не используется
PEERROUTES Задает приоритет настройки шлюза по умолчанию, полученного от DHCP yes: маршрут от DHCP важнее, чем назначенный вручную, no: важнее маршрут, заданный вручную
IPV6_PEERROUTES Задает приоритет настройки шлюза по умолчанию, полученного от DHCP (для IPv6)
UUID Уникальный идентификатор сетевого интерфейса. Его можно сгенерировать самостоятельно командой uuidgen Строка из 32-х символов в формате 8-4-4-4-12.
Например: fca8cc84-6f21-4bac-9ccb-36f281321ba4

Установка админ панели CWP

Перейдите в папку и скачайте скрипт:

# cd /usr/local/src && wget http://centos-webpanel.com/cwp-latest

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

# cd /usr/local/src && wget http://dl1.centos-webpanel.com/files/cwp-latest

Запускаем  скрипт-установщик CWP:

# sh cwp-latest

Вывод:

#############################
# CWP Installed #
#############################

go to CentOS WebPanel Admin GUI at http://SERVER_IP:2030/

http://87.89.137.241:2030
SSL: https://87.89.137.241:2031
---------------------
Username: root
Password: ssh server root password
MySQL root Password: ZVHJ3#$$yDQvdTLU6I

#########################################################
CentOS Web Panel MailServer Installer
#########################################################
SSL Cert name (hostname): linux-notes.org
SSL Cert file location /etc/pki/tls/ private|certs
#########################################################

Write down login details and press ENTER for server reboot!
Press ENTER for server reboot!

Добавление правил в Firewall /маршрутизатор.

Порты для веб-консоли CWP, по умолчанию — 2030 (HTTP) и 2031 (HTTPS). Вы должны добавить оба порта в брандмауэр / маршрутизатор для того, чтобы получить доступ к веб-консоли из удаленной системы.

Чтобы сделать это, отредактируйте:

# vim /etc/sysconfig/iptables

И добавляем правила:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 2030 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2031 -j ACCEPT

Сохраните и закройте файл. После чего выполните перезапуск службы Iptables чтобы все изменения вступили в силу:

# service iptables restart

Использование  веб интерфейса CWP 

Откройте свой браузер и введите:

http://IP-Address:2030/

Или

https://IP-Address:2031/

Данные для входа были выведены после установки панели:

Username: root
Password: your root password

вход в CWP admin panel

Вводим свои данные и попадаем в админ панель:

CWP admin panel

Создание нового аккаунта в CWP

Чтобы создать новый аккаунт, откройте админ панель->New Account как показано на рисунки ниже:

Создание нового аккаунта в CWP

Заполняем поля:

  • Domain — имя вашего домена;
  • Username — имя пользователя;
  • Password — пароль для пользователя;
  • Server IP — Выбираем ИП для сервера, я у себя ничего не менял в данном поле;
  • Package — имя пакета (можно ограничивать ресурсы), создать можно свой в разделе package;
  • Inode — количество инод (я оставил безлимит = 0);
  • Email — прописываем емейл;
  • Backup — если установлен чекбокс, то будет создаваться бекап для данного пользователя;
  • Shell access — позволить подключаться и работать через shell;
  • Processes — выставляем количество позволенных процессов для пользователя;
  • Open files — количество открытых файлов.

После ввода всей информации, нажимаем на «Create» и создаем новый аккаунт. Перезаходим уже с новыми логин деталями и настраиваем домен.

В меню Domains можно добавить все свои домены.

На мой взгляд, достойный «ответный удар» такому веб интерфейсу (панели) как cPanel. Много всего и очень хорошо выполнено, работал со многими панелями, но недавно остановился именно на этой. У нее есть небольшие недостатки ( на мой взгляд):

  1. Нет возможности использовать веб сервер nginx.
  2. Все само ставиться. Иногда нужно чтобы панель использовала все службы которые уже установленные и ничего большего.
  3.  Нет других веб серверов.
  4. Только можно использовать в CentOS/RedHat/Fedora и других RPM системах, нет поддержки других Unix/Linux ОС.

Надеюсь они скоро это исправят. На этом, я завершаю данную тему «Установка админ панели CWP на CentOS/RedHat».

Cкачать CentOS 7

Скачать свежую на текущий момент версию CentOS 7.2.1511 можно двумя способами:

  1. Через torrent сеть
  2. С ближайшего зеркала

Я в качестве такого зеркала предпочитаю использовать :

Скачать CentOS 7
Torrent Yandex Mirror Размер
Скачать CentOS 7 DVD torrent Скачать CentOS 7 DVD iso 4G
СкачатьCentOS 7 NetInstall torrent СкачатьCentOS 7 NetInstall iso 360M
СкачатьCentOS 7 Everything torrent СкачатьCentOS 7 Everything iso 7G
СкачатьCentOS 7 LiveGNOME torrent СкачатьCentOS 7 LiveGNOME iso 1G
СкачатьCentOS 7 LiveKDE torrent СкачатьCentOS 7 LiveKDE iso 1G
СкачатьCentOS 7 Minimal torrent СкачатьCentOS 7 Minimal iso 634M

Напоминаю, что 32 bit или i386 редакции CentOS 7 не существует. Все дистрибутивы только x86_64, то есть 64 bit.

Установка на raid

Рассмотрим еще один, более специфичный вариант установки. Он может быть актуален, когда вы настраиваете, к примеру, железный сервер для работы на нем гипервизора KVM, либо отдельной ноды кластера Kubernetes, на которой будет использоваться локальное файловое хранилище. Мы будем ставить CentOS 8 на программный рейд. Для примера возьмем 2 диска и raid 1. Все установки будут такие же, как мы рассмотрели ранее, кроме одной — Installation Destination.

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

Если на дисках есть какие-то разделы, то все удаляем. Дальше наша задача выполнить такую же разбивку диска, как и ранее, только в качестве разделов использовать массивы mdadm, которые предварительно надо создать. Должно получиться примерно вот так.

К сожалению, через стандартный установщик не получится установить centos 8 не только на mdadm raid 1, но затем на lvm разделы поверх mdadm массивов. Я не увидел такой возможности. К примеру, позволяет это сделать. Там более гибкие варианты настройки разметки дисков и создания разделов.

Дальше можно запускать установку centos на программный рейд. Проверим его после того, как система успешно загрузится.

# df -h
# cat /proc/mdstat

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

Сервер без проблем загрузился. Никаких ошибок загрузчика не было, кроме одного момента — загрузка была значительно дольше, чем обычно. Вместо нескольких секунд 3-5 минут. Все работает как и должно работать из коробки. Стандартный установщик отработал корректно, хотя так бывает не всегда. Проверим состояние массива.

# cat /proc/mdstat
# mdadm -D /dev/md126

Одного диска нет, но при этом все работает стабильно. Можно планово выполнить замену сбойного диска и добавить его в массив. Правда, тут могут быть ошибки, одну из которых я недавно словил. После выхода из строя одного диска в составе mdadm, массив с /boot разделом почему то перешел в статус inactive и система не грузилась. Но я это легко исправил и загрузил сервер. Подробности в статье — восстановление raid 1.

Я рекомендую использовать софтовый raid mdadm, если у вас нет железного raid контроллера. Mdadm надежен и прост в эксплуатации. У меня с ним никогда не было серьезных проблем и потери информации. Да, бывает, что сервер не грузится после выхода из строя диска, есть нюансы, но данные всегда остаются целы. Все можно исправить. Он намного надежнее, понятнее и стабильнее встроенных в материнскую плату контроллеров. Отдавать предпочтение аппаратному рейду следует только в том случае, если он действительно аппаратный, имеет батарейку и действительно увеличивает производительность сервера за счет кэширования. Во всех остальных случаях рекомендую пользоваться mdadm.

Настройка мониторинга MySQL, MariaDB

Содержимое конфигурационного файла для мониторинга MySQL, MariaDB (подходит для обоих типов баз данных):

 check process mysqld with pidfile /var/run/mysqld/mysqld.pid
   group database
   group mysql
   start program = "/usr/sbin/service mysql start"
   stop  program = "/usr/sbin/service mysql stop"
   if failed host localhost port 3306 protocol mysql with timeout 15 seconds for 3 times within 4 cycles then restart
   if failed unixsocket /var/run/mysqld/mysqld.sock protocol mysql for 3 times within 4 cycles then restart
   if 5 restarts with 5 cycles then timeout
   depend mysql_bin
   depend mysql_rc

 check file mysql_bin with path /usr/sbin/mysqld
   group mysql
   include /etc/monit/templates/rootbin

 check file mysql_rc with path /etc/init.d/mysql
   group mysql
   include /etc/monit/templates/rootbin

Загрузочная флешка для CentOS 8

Лично я давно не пользовался загрузочными флешками для чего-то кроме установки гипервизора. Стараюсь все сервера держать в виртуальных машинах для удобного бэкапа и миграции. Тем не менее, если вам понадобится загрузочная флешка с CentOS 8, вы без проблем ее сделаете. Думаю, это актуально для тех, кто ставит систему на рабочие компьютеры или ноутбуки. Правда в таком случае вам моя статья не подходит, так как она описывает в первую очередь нюансы установки и подготовки системы для работы на сервере. На рабочем ноутбуке я предпочитаю использовать не linux.

Сделать загрузочную флешку с CentOS 8 можно разными способами. Если у вас операционная система Windows, то рекомендую воспользоваться бесплатной программой Win32DiskImager. В случае с linux можно использовать Etcher. Хотя он и для windows есть, но мне показался тяжеловат. disk imager в этом плане удобнее, что не удивительно. Ведь Etcher написан на мерзком Electron, поэтому он тормозит и весит 80 Мб.

Тру админы для создания загрузочных флешек могут использовать DD примерно так:

# dd if=CentOS-8-x86_64-1905-dvd1.iso of=/dev/sdz

Предложенный способ лично не проверял, но не вижу причин, почему это может не работать.

Установка Freepbx 14 с php 5.6 на Centos 8

В целом, Freepbx 14 на php 7 работает. Я читал в буржунете, что вроде как работает нормально и особых проблем быть не должно. Но сразу предупреждаю, что сам я не проверял. Самый надежный вариант, как я написал выше, будет установить 14-ю версию на php 5.6. Давайте сделаем и это.

Для этого подключаем репозиторий remi и epel.

# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Устанавливаем php 5.6

# dnf install php56 php56-php-fpm php56-php-pear php56-php-cgi php56-php-common php56-php-curl php56-php-mbstring php56-php-gd php56-php-mysqlnd php56-php-gettext php56-php-bcmath php56-php-zip php56-php-xml php56-php-json php56-php-process php56-php-snmp --skip-broken

Php 5.6 в Centos 8 устанавливается в /opt. Конфиг php.ini лежит по адресу /etc/opt/remi/php56/php.ini, конфиг пула /etc/opt/remi/php56/php-fpm.d/www.conf. Их нам надо так же отредактировать, как и для 7-й версии. Увеличить лимиты и заменить пользователя на asterisk. Читайте об этом в разделе про настройку web сервера.

Запускается php 5.6 командой:

# systemctl enable --now php56-php-fpm

Добавьте path с php5.6 в окружение.

# source /opt/remi/php56/enable

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

# cat /opt/remi/php56/enable >> ~/.bash_profile

Установите права на директорию с сессиями php для пользователя asterisk.

# chown -R asterisk. /var/opt/remi/php56/lib/php/session

Дальше устанавливается точно так же Freepbx 14 и настраивается.

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

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