Обзор систем мониторинга серверов. заменяем munin на…

основные черты

TrueNAS CORE — это новое название популярной операционной системы FreeNAS, ориентированной на NAS, операционной системы, специально предназначенной для работы в качестве высокопроизводительного профессионального NAS-сервера. Эта операционная система может быть установлена ​​на любой платформе x64 благодаря тому, что базовой операционной системой является FreeBSD версии 12. TrueNAS включает в себя совместимость с большим количеством оборудования, будь то материнские платы и сетевые карты, которые являются двумя устройствами, которые могут вызвать больше проблем. . Аббревиатура NAS означает «сетевое хранилище», а TrueNAS значительно упрощает использование и настройку всех служб, которые должен иметь сервер NAS, таких как сервер Samba, FTP, NFS, хранилище с RAID, удаленный доступ через OpenVPN и многое другое. .

TrueNAS Core включает в себя большое количество сервисов для максимально эффективного использования серверного оборудования, в частности, у нас будут следующие сервисы:

  • Active Directory
  • LDAP
  • NIS
  • Kerberos
  • AFP
  • ISCSI
  • NFS
  • WebDAV
  • CIFS / SMB (Samba)
  • FTP (Proftpd)
  • Динамический DNS-сервер
  • OpenVPN клиент
  • Сервер OpenVPN
  • Rsync
  • S3
  • SNMP
  • Плагины: мы можем легко и быстро установить большое количество дополнительного программного обеспечения
  • Тюрьмы: мы можем создавать тюрьмы для безопасного хранения различных плагинов, изолированных от операционной системы.
  • Виртуальные машины для установки любой ОС
  • BitTorrent-клиент с передачей
  • Консольный доступ для командной строки

Мы также хотели бы подчеркнуть, что TrueNAS CORE позволяет устанавливать большое количество плагинов почти автоматически, однако мы всегда сможем установить любое программное обеспечение вручную через SSH или консоль.

Что касается разработки этой операционной системы и ее обновлений, одним из основных аспектов, которые мы ценим в этой статье, являются обновления. В случае этой операционной системы проект стал более живым, чем когда-либо, с новым изменением названия и благодаря компании IxSystems, которая стоит за разработкой операционной системы. Конечно, мы должны иметь в виду, что эта ОС основана на FreeBSD, поэтому все новости и исправления безопасности, включенные в FreeBSD, мы также будем иметь в TrueNAS.

Шаг 3: Установите Munin и Munin-Node

Теперь пришло время установить Munin и Munin-Node, как показано на рисунке.

—————— На RHEL, CentOS и Fedora —————— # yum -y установить munin munin- узел —————— В Fedora 22+ Releases —————— # dnf -y установить munin munin- узел

По умолчанию вышеупомянутая установка создает следующие каталоги.

  1. /etc/munin/munin.conf : главный файл конфигурации Munin.
  2. /etc/cron.d/munin : файл Munin cron.
  3. /etc/httpd/conf.d/munin.conf : файл конфигурации Munin Apache.
  4. / var / log / munin : каталог журналов Munin.
  5. / var / www / html / munin : веб-каталог Munin.
  6. /etc/munin/munin-node.conf : главный конфигурационный файл узла Munin.
  7. /etc/munin/plugins.conf : файл конфигурации плагинов Munin.

Проверка работы

Для про­вер­ки сер­ве­ра нам нуж­но уста­но­вить кли­ен­та stun. Это мож­но сде­лать либо на тот же сер­вер, либо на дру­гой компьютер.

а) Под Ubuntu доста­точ­но выпол­нить одну команду:

apt-get install stun-client

б) В CentOS нуж­но уста­но­вить ста­рый репо­зи­то­рий, после саму программу:

yum install https://download-ib01.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install stun

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

а) в CentOS:

stun-client <IP-адрес сер­ве­ра STUN/TURN>

б) в Ubuntu:

stun <IP-адрес сер­ве­ра STUN/TURN>

* в при­ме­рах ниже мы будем исполь­зо­вать вари­ант для CentOS.

И так, при­мер для выпол­не­ния тесто­во­го запроса:

stun-client 192.168.0.15

* где 192.168.0.15 — IP-адрес во внут­рен­ней сети наше­го сер­ве­ра STUN/TURN.

Мы долж­ны полу­чить ответ:

STUN client version 0.96
Primary: Open
Return value is 0x000001

Если сер­вер не рабо­та­ет, мы полу­чим что-то на подобие:

STUN client version 0.96
Primary: Blocked or could not reach STUN server
Return value is 0x00001c

Если наш сер­вер досту­пен из сети Интер­нет, мы можем выпол­нить онлайн тест на пор­та­ле Trickle ICE.

CentOS 7 установка на raid

Теперь рассмотрим наиболее сложный вариант установки. Мы будем ставить CentOS 7 на программный рейд. Для примера возьмем 2 диска и raid 1. Все установки будут такие же, как мы рассмотрели ранее, кроме одной — INSTALLATION DESTINATION.

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

Жмем Done. Открывается немного кривое окно управления разделами жесткого диска.

Здесь мы первым делом удаляем все существующие разделы:

Должно получиться примерно так:

Нажимаем Done, когда закончим. В новом окне подтверждаем разбивку диска, нажимая Accept Сhanges:

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

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

После завершения установки на raid зайдем в систему и проверим состояние массива:

# df -h
# cat /proc/mdstat

Посмотрим информацию о корневом массиве:

# mdadm -D /dev/md126

Все в порядке, установка сервера закончена. Рейд раздел нормально функционирует, обеспечивая отказоустойчивость сервера.

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

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Что?

Munin — достаточно не новая система, развившаяся на популярном среди администраторов средстве отрисовки графиков RRDTool. Напомню, что идеология RRDTool состоит в хранении данных по “карусельному” типу — при заполнении базы фиксированного размера RRDTool начинает затирать данные с хвоста базы (то есть со старых) к голове (к новым), что гарантирует потерю минимального количества полезных данных, но при этом позволяет базе не распухать до безумных размеров (как у HP OpenView или Zabbix). Обычно в базе RRDTool есть несколько каруселей — например “мгновенные данные” (хранятся неделю), среднее за 5 минут (генерируется на основе мгновенных данных, хранятся месяц) и средние за час (генерируются на основе 5минутных, хранятся год. Такая база весит всего несколько мегабайт, и в размерах никогда не меняется (если данных в базе нет, в хвосте карусели просто стоят нули, слоты в базе под данные создаются сразу все). Минус RRDTool в его же плюсе. Нужно очень внимательно расчитывать емкость базы, потому что отредактировать созданную базу уже невозможно, и вытащить данные с целью перенести в другую базу (аналог DUMP в SQL базах) — тоже. Кроме того, RRDTool отвечает только за хранение данных, а их ведь еще откуда-то надо брать… Изначально админы использовали для этого самописные скрипты “на чем печень возжелает”, традиционно первые места занимали всесущий Bash и мозголомный Perl (в последнем даже присуствует расширение для работы с RRD, остальные языки вынуждены использовать “подпорки” в виде вызова rrdtool прямиком из командной строки). Скрипты у всех были разные, качество кода и оптимизация работы таких скриптов гуляла в широчайших пределах. Сам я, на самой заре своей админской карьеры, писал подобные скрипты, причем писал “в лоб”, простенький скрипт на пяток параметров мог выполнятся несколько секунд. Разумеется, в случае, когда возникает потребность (в инструменте удобного рисования графиков) — возникает и инструмент. Именно таким инструментом стал проект Munin.

Обзор и архитектура

Munin состоит из двух раздельных частей. Первая — это сервер (собственно, munin) — он опрашивает клиентов, хранит базу и рисует графики. Вторая — клиент (munin-node). Соединение с клиентом всегда инициирует сервер (он запускается по cron). При запуске сервер читает конфиг со списком адресов клиентов, обращается к каждому клиенту (порт — 4949/tcp), получает список возможных параметров, после чего — по списку — значения параметров. Полученые данные загружаются в RRD-файлы (если таковых нет — сервер их создаст). Рисованием готовых графиков ведает отдельный процесс, который хоть и входит в пакет munin, но живет совершенно самостоятельной жизнью.

В отличае от сервера, клиент — это постоянно находящийся в памяти демон. Написан он, как и сервер, на чистом perl. К слову сказать, единственный способ авторизации — IP, с которого инициируется соединение. Шифрования там также никакого, так что светить демона не советую, firewall и внимательную настройку конфига никто не отменял. Интересный факт, но сам демон ничего не знает о системе, в которой находится. Данные, которые клиент отдает серверу, он получает от плагинов-программ, которые последовательно запускает. За счет этого оптимизируется нагрузка на сервер (всегда можно оставить только те плагины, которые нужны), и вместе с тем — уменьшается время простоя демона, который уже не должен мучительно выдумывать параметры, которых в данной конкретной системе отродясь не бывало.

3: Настройка удаленного мониторинга

Munin может мониторить несколько серверов одновременно. Оставшаяся часть статьи посвящена настройке клиента, который будет отправлять свои данные на ранее настроенный сервер (т.е, сервер, на котором установлена утилита Munin). Этот план действий можно легко откорректировать, увеличив количество клиентов.

Настройка удаленного клиента

Войдите на клиентский сервер, который нужно отслеживать.

Машина удаленного клиента не нуждается в установке компонентов munin или веб-сервера apache2. Понадобятся только клиентские инструменты. Для их установки используйте apt-get:

Затем нужно отредактировать munin-node.conf, указав в нем, что основной сервер мониторинга может запрашивать информацию клиента. Откройте файл для редактирования:

Найдите раздел, который содержит строку «allow ^127\.0\.0\.1$». Замените указанный  IP-адрес адресом главного сервера.

Ввод IP должен начинаться с каре (символа ^), содержать четыре набора цифр, разделенных наклонной чертой влево и точкой (\.), и завершаться знаком доллара ($). То есть, адрес должен иметь следующую структуру:

Сохраните и закройте файл. Перезапустите сервис munin-node:

Настройка сервера мониторинга

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

Сначала откройте munin.conf:

Найдите имя хоста, измененное ранее:

Скопируйте данный раздел и вставьте ниже текущей записи. Нужно заменить имя и IP-адрес соответствующими данными клиентского сервера:

Сохраните и закройте файл. Перезапустите сервер apache, чтобы обновить настройки.

Опять же, на создание всех файлов уйдет несколько минут.

Через некоторое время на странице IP_адрес_главного_сервера/Munin можно будет увидеть опцию для просмотра клиентской машины.

ApacheLinuxMuninUbuntuUbuntu 12.04VPS

Установка на 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.

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.

Настройка Munin в CentOS/RedHat/Fedora

По умолчанию Munin создает конфигурационный файл конфигурации Apache в файле  /etc/httpd/conf.d/munin.conf. По этому, сейчас мы его немного отредактируем конфигурацию Munin и добавить следующее содержание в конфиг:

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

В самом верху я вставил следующие строки ( сразу после комментариев):

Alias /munin /var/www/html/munin
<Directory /var/www/html/munin>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Нам нужно еще один конфиг поправить:

# vim /etc/munin/munin.conf

Добавьте/Измените, как показано ниже.

#Uncomment the following lines
dbdir /var/lib/munin
htmldir /var/www/html/munin
logdir /var/log/munin
rundir /var/run/munin


# a simple host tree. Set your system name

address 127.0.0.1
use_node_name yes

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

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

# chown -R munin:munin /var/www/html/munin/

В файле можно изменить имя для веб-интерфейса ( по стандарту там написано Munin), но я изменил на свое:

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

и прописываем:

<directory /var/www/html/munin>
 AuthUserFile /etc/munin/munin-htpasswd
 AuthName "munin_admin"
 AuthType Basic
 require valid-user

 ExpiresActive On
 ExpiresDefault M310
</directory>
ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph

Создадим пользователя ( я его назвал munin_admin)  и назначим эму пароль, для этого выполните:

# htpasswd -cm /etc/munin/munin-htpasswd munin_admin

Это нужно для того чтобы мы смогли войти на веб-интерфейс программы munin.

Осталось совсем немного, нам нужно перезапустить сервис с апачем и стартануть сам мунин ( так же по желанию можно добавить сервис в автозагрузку вашей ОС), для этого:

# /etc/init.d/munin-node start
# chkconfig munin-node on
# service httpd restart

Откройте следующий адрес в браузере, чтобы получить доступ к веб-интерфейсу Munin. Измените IP / домен согласно вашей установки.

У меня это выглядит так:http://78.140.189.243/munin/

После этого вас попросят ввести логин ( у меня это munin_admin) и пароль и вы попадете на веб-интерфейс программы munin.

Это как выглядит моя панель Munin.

панель Munin

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

— диск (Disk);

— exim;

— Сеть (network)

— процессы (processes);

— Почта (sendmail);

— Система ( system).

У меня эти категории так как я установил на свою ВПСку VestaCP,  и панель выкачала и установила за меня всю необходимые программы. У вас может немного отличаться. Нечего собственно сложного в этом нет, все интуитивно понятно. На этом установка и настройка Munin в CentOS/RedHat/Fedora завершена, но не полностью, сейчас я покажу как можно добавить нового клиента для мониторинга в Munin.

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

Для запуска нашего приложения осталось выполнить несколько настроек.

1. Обновление правил

Для этого вводим команду:

suricata-update

Система выполнит загрузку правил и сравнит их с текущими. При необходимости, обновит файлы.

Также необходимо обновить индекс источника правил:

suricata-update update-sources

2. Настройка рабочего сетевого интерфейса

После установки, в настройках suricata прописан интерфейс eth0, на котором должен принимать запросы сервер. Однако, рабочий интерфейс может быть другой — посмотреть его можно командой:

ip a

Например, в моем случае это ens32:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:81:07:a0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.15/24 brd 192.168.0.255 scope global ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe81:7a0/64 scope link 
       valid_lft forever preferred_lft forever

И так, меняем по очереди интерфейс в двух файлах.

Сначала в настройках по умолчанию:

vi /etc/default/suricata

IFACE=ens32

Затем в пользовательских настройках:

vi /etc/suricata/suricata.yaml


af-packet:
  — interface: ens32

pcap:
  — interface: ens32

pfring:
  — interface: ens32

Перезапускаем сурикату:

systemctl restart suricata

5: Дополнительные плагины

Munin отслеживает систему при помощи скриптов плагинов; по умолчанию установлено и доступно около десяти наборов плагинов. Полный список доступных плагинов можно найти в /usr/share/munin/plugins. Чтобы узнать, какие плагины можно использовать в данной системе, используйте следующую команду:

На экране появится список плагинов:

Если в столбце Suggestions содержится yes, то такой плагин можно использовать. Если в столбце Used находится yes, то такой плагин уже используется. Если оба столбца содержат no, то такой плагин не используется и его нельзя использовать в данной системе.

На сервере и клиенте Munin список доступных плагинов можно найти в каталоге /etc/munin/plugins.

Пакет munin-plugins-extra должен был установиться во время установки Munin. Если это не так, установите его сейчас:

Чтобы включить доступный плагин, который ещё не используется, создайте символьную ссылку из каталога /usr/share/munin/plugins в каталог /etc/munin/plugin.

К примеру, чтобы включить плагин для Fail2ban, сначала установите Fail2ban:

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

Перезапустите Munin:

Подождите несколько минут, перезапустите веб-интерфейс. После этого на экране появятся графики для Fail2ban в категории Network под названием Hosts blacklisted by fail2ban на сервере Munin master.

Заключение

На этом статью по установке сервера на базе ОС CentOS 8 завершаю. Рекомендую сразу же заняться базовой настройкой. Надеюсь, было интересно и полезно. Я постарался подробно рассмотреть все основные нюансы установки, с которыми сам сталкиваюсь в процессе своей профессиональной деятельности. Основные отличия моих статей от подобных, которых развелось огромное количество в интернете в том, что они действительно уникальные и авторские. Я всегда стараюсь привнести в материал часть своих знаний и опыта, накопленного за годы работы в качестве системного администратора. Или просто какие-то свои мысли высказать.

Прежде чем написать статью, я погуглил как ru сегмент, так и мировой на тему установки centos 8 и с грустью констатирую, что не нашел ничего интересного. В топе выдачи банальные СЕО статьи со скриншотами и шагами инсталлятора. Ничего уникального и действительно полезного. Это удручает, потому что СЕО побеждает реальных авторов-практиков, у которых нет времени разбираться в продвижении, и делает их статьи невидимыми для людей, потому что их нет в ТОП 10 выдачи поисковиков. Если мне попадаются интересные сайты с качественным контентом, я добавляю их в закладки и просматриваю вручную, когда есть время.

Обозначенная выше проблема актуальна для всех информационных сайтов. Думаю, каждый это замечает, когда что-то ищет в интернете не по коммерческим запросам. На первых местах всегда СЕО статьи с рерайтом одной и той же фигни. Практическая ценность подобных статей стремится к нулю. Поисковики что-то постоянно пытаются с этим сделать, но получается не очень, потому что сеошники подстраиваются. В этом плане Гугл работает более качественно, чем Яндекс. У последнего выдача более мусорная, что косвенно подтверждается тем, что он с каждым годом теряет свои позиции в качестве поисковика.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Онлайн курс «SRE практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «SRE практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и Linux. Обучение длится 3 месяц, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

На курсе вы узнаете как:

  • Внедрить SRE практики в своей организации
  • Управлять надежностью, доступностью и эффективностью сервисов
  • Управлять изменениями
  • Осуществлять мониторинг
  • Реагировать на инциденты и производительность
  • Работать со следующим технологическим стеком: Linux, AWS, GCP, Kubernetes, Ansible, Terraform, Prometheus, Go, Python.

Проверьте себя на вступительном тесте и смотрите подробнее программу по .

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

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