Системы мониторинга сервера Linux. Линукс сервер


Терминальный сервер на Linux / Хабр

Сейчас я расскажу вам о том, как можно сэкономить немалое количество времени и денег на вашей IT-инфраструктуре. Как централизованно админить большое количество linux рабочих станций не разводя при этом хаос в вашей экосистеме. И так, что же такое LTSP?

LTSP — Это терминальное решение на Linux. Говоря "терминальное", я в первую очередь имею в виду не подключение к удаленному рабочему столу как в Windows. Я подразумеваю гораздо более гибкую и продвинутую систему доставки ПО, конфигов, домашенего каталога, да и самой операционной системы на клиентские рабочие станции с вашего терминального сервера.

В частности, LTSP — это совокупность преднастроенных программ и скриптов которые позволят вам без особого труда превратить вашу свежеустановленную Ubuntu, или другой дистрибутив, в полностью готовое к работе терминальное окружение. Которое будет загружаться на любых компьютерах в вашей сети и предоставлять пользователю полноценный интерфейс.

У LTSP есть несколько режимов работы:

  • тонкий клиент
  • толстый клиент

Для того, чтобы понять в чем различие для начала нам нужно разобраться как LTSP работает.

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

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

Теперь о режимах работы:

  • тонкий клиент — Приложения выполняются на терминальном сервере и просто выводятся на дисплей терминального клиента.
  • толстый клиент — Приложения выполняются непосредственно на терминальном клиенте, а сервер просто предоставляет доступ к пользовательским файлам и программам.

Итак, какой же режим нам выбрать? — все зависит от того, что вы хотите получить. Вы можете немного сэкономить используя на клиентах слабые станции вкупе с мощным сервером в режиме тонких клиентов. Или разгрузить терминальный сервер и локальную сеть, купив терминальные станции помощнее, переложив ответсвенность за выполнение программ на клиентов, заставив их, тем самым, работать в режиме толстого клиента.

Кроме того, режимы можно комбинировать и некоторые приложения можно заставлять работать иначе, чем все остальные. Например запускать "тяжелый" браузер с flash локально на клиентах, а офисные приложения запускать на самом сервере.

Давайте рассмотрим какие же плюсы мы имеем по сравнению со стандартными принципами построения ит инфраструктуры:

  • Централизованное управление — У вас есть одна единая конфигурация, которой вы управляете из одного места.
  • Резервирование и бэкапирование — Все пользовательские данные у вас хранятся на одном сервере, а соотвественно настроив резервирование этого сервера, вы никогда не потеряете пользовательские данные.
  • Экономия на компьютерах — Бездисковые терминальные станции стоят заметно дешевле, чем полноценные компьютеры.
  • Быстрое развертывание — Вам больше не нужно устанавливать ОС. Прикупив очередную пачку терминалов их можно смело втыкать в сеть, они сразу подтянут операционку с сервера и они будут полностью готовы к работе. Точно так же нерабочий терминал можно быстро заменить другим.
  • Независимость от рабочего места — Пользователи могут работать под своей учетной записью независимо с любого компьютера в сети, всегда будет подгружаться именно их личный профиль.
  • OpenSource — Прежде всего, LTSP — это открытый и свободный проект. Вам не надо покупать лицензии для его использования. Кроме того, вы всегда можете посмотреть исходники, в основе которых лежат обычные bash-скрипты.

Минусы:

  • Требуется непрерывное подключение LAN — терминальные станции грузятся и работают по сети, поэтому требуется стабильное проводное подключение к сети.
  • Зависимость от сервера — понятное дело, без сервера все терминальные клиенты становятся бесполезными и превращяются в тыкву.

Первое, что мы должны знать, это компоненты из которых состоит сервер:

  • DHCP-сервер — используется для выдачи клиентам IP-адресов и информации о tftp-сервере и пути к загрузчику pxelinux. Вы так же можете использовать ваш собственный DHCP-сервер.
  • TFTP-сервер — отдает по tftp-протоколу загрузчик, ядро и главный конфиг lts.conf.
  • NBD-сервер — используется ядром для загрузки базовой системы по сети. Так же, при желании, может быть заменен на NFS
  • SSH-сервер — используется для авторизации пользователей и передачи их домашних каталогов на терминальные станции.

Во вторых разберемся в том как он работает:

Когда вы установите на ваш сервер пакет ltsp-server-standalone, вы, к полностью настроенным сервисам, получите еще несколько ltsp-скриптов:

  • ltsp-build-client — собирает для нас образ системы, который мы будем отдавать на клиентские машины.
  • ltsp-chroot — chroot'ит нас в клиентскую систему, например для установки дополнительных пакетов и изменения конфигов.
  • ltsp-config — генерит дефолтные конфиги для LTSP.
  • ltsp-info — выводит информацию о текущей установке.
  • ltsp-update-image — обновляет nbd-образ базовой системы.
  • ltsp-update-kernels — копирует ядро и загрузчик из клиентского образа, в директорию tftp-сервера
  • ltsp-update-sshkeys — добавляет ssh publickey вашего сервера, в known_hosts клиентского образа.

Их то мы и будем использовать для настройки нашего окружения.

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

  • Рабочая станция включается и опрашивает DHCP-сервер, как ей грузиться дальше: А точнее происходит запрос двух опций: next server — адрес TFTP-сервера и boot file — путь к загрузчику.
  • DHCP-сервер, выдает ответ с адресом сервера и путем к pxelinux.
  • Рабочая станция загружает загрузчик pxelinux по TFTP
  • pxelinux загружает ядро. В конфиге pxelinux в опциях ядра указанно откуда грузить основную систему по NBD
  • Когда ядро запускается, оно маунтит с сервера nbd-образ в корень системы и загружает процесс init, который в свою очередь и загружает все остальное обычным способом.
  • Так же в этот момент ltsp-читает главный конфиг lts.conf с сервера и запускает LDM, после чего пользователь видит приглашение к вводу логина и пароля.

LDM — это логон менеджер LXDE, который отвечает за авторизацию пользователей и начальный запуск окружения.

Скриншот окна входа

Когда пользователь логинится проиходит следующее:

  • В случае тонкого клиента, LDM заходит с введенным логином и паролем на ваш сервер по SSH,, если успешно, загружает окружение с сервера простым пробросом X'ов.
  • В случае толстого клиента, LDM пытается подключиться с введенным логином и паролем к вашему серверу, если успешно, то маунтит домашний каталог пользователя с сервера на клиент посредством sshfs, затем запускает окружение.

Если вам нужна более подробная информация о загрузке Linux по сети, рекомендую обратиться к циклу статей Roshalsky, вот ссылка на первую.

Я опишу установку LTSP в режиме толстого клиента, как наиболее сложную и интересную. Настройка в режиме тонкого клиента мало чем будет оличаться, за исключением того, что необходимое ПО вам придется устанавливать не в chroot, а в основную систему, и после этого вам не нужно будет пересобирать nbd-образ.

Маленькая оговорочка, для сервера лучше брать дистрибутивы посвежее, т.к. LTSP находится среди стандартных пакетов и обновляется вместе с дистрибутивом. Для гостевой ос лучше брать проверненную Ubuntu 14.04 LTS, т.к. если брать дистрибутив посвежее, потом начнутся проблемы, то загрузчик не станавливается, из-за переименования пакетов, то еще что.

UPD: Проверенно, с последней Ubuntu 16.04 LTS таких проблем не возникает.

Итак, приступим. Сначала устанавливаем ltsp-server-standalone:

apt-get update && apt-get install ltsp-server-standalone

Теперь с помощью ltsp-build-client мы установим клиентскую систему. LTSP поддерживает различные DE, но больше всего мне понравилось как работает LXDE. В отличии от Unity он потребляет совсем мало ресурсов и так-как работает на голых иксах, он почти полностью конфигурируется с помощью переменных среды, это очень удобно, так-как их можно указать в главном конфиге lts.conf.

ltsp-build-client --dist xenial --arch i386 --fat-client-desktop lubuntu-desktop

Все эти опции можно указать в конфиге /etc/ltsp/ltsp-build-client.conf, что бы не прописывать их вручную:

ltsp-build-client.conf# Distribution DIST=xenial # The chroot architecture. ARCH=i386 # ubuntu-desktop and edubuntu-desktop are tested. # If you test with [k|x]ubuntu-desktop, edit this page and mention if it worked OK. # kubuntu lucid (10.10) working okay. FAT_CLIENT_DESKTOPS="lubuntu-desktop" # Space separated list of programs to install. # The java plugin installation contained in ubuntu-restricted-extras # needs some special care, so let's use it as an example. #LATE_PACKAGES=" # ubuntu-restricted-extras # gimp # nfs-client #" # This is needed to answer "yes" to the Java EULA. # We'll create that file in the next step. DEBCONF_SEEDS="/etc/ltsp/debconf.seeds" # This uses the server apt cache to speed up downloading. # This locks the servers dpkg, so you can't use apt on # the server while building the chroot. MOUNT_PACKAGE_DIR="/var/cache/apt/archives/"

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

После запуска комманды, у вас в полностью автоматическом режиме, с помощью debootstrap, развернется система в каталог /opt/ltsp/i386.

Эта же система и будет использоваться в дальнейшем всеми командами LTSP, в нее будет устанавливаться дополнительное ПО, из нее будут генериться загрузчик с ядром и nbd-образ системы. В принципе, ее, так же можно отдавать по nfs при должной настройке загрузчика. После установки LTSP автоматически сгенерит из нее nbd-образ. Этот образ и будут загружить наши клиенты.

Для того, чтобы внести какие-нибудь изменения в гостевую ОС, например устанавливать дополнительное ПО, используется команда ltsp-chroot. Если вы хотите что-то поменять или добавить в гостевую систему, выполните ltsp-choot и вы окажетесь внутри нее. Затем произведите нужные вам действия, и выйдите командой exit. Чтобы изменения применились, нужно перегенерить nbd-образ командой ltsp-update-image

DHCP-сервер:

Вместе с метапакетом ltsp-server-standalone у нас установился и isc-dhcp-server. В принципе он уже из коробки работает как надо, но при желании вы можете поправить его конфиг /etc/default/isc-dhcp-server. Есть классная статья на OpenNet от 2010 года на тему настройки LTSP, там неплохо описана процедура настройки DHCP-сервера.

Но, так как я предполагаю, что у вас уже есть DHCP-сервер, предлагаю настроить его.

Удалим isc-dhcp-server:

sudo apt-get remove isc-dhcp-server

Теперь вам нужно добавить к вашему dhcp-серверу 2 опции:

next-server 192.168.1.2; # TFTP-сервер filename "/ltsp/i386/pxelinux.0"; # Загрузчик

Как это сделать, смотрите инструкции к вашему DHCP-серверу. Вот, например инструкция как это сделать на оборудовании Mikrotik.

Установка ПО
  • Давайте же войдем в нашу гостевую систему:

    ltsp-chroot
  • Теперь установим vim:

    apt-get update && apt-get install vim
  • Поддержку русского языка:

    apt-get update && apt-get install `check-language-support -l ru`
  • Последнюю версию Remmina:

    apt-add-repository ppa:remmina-ppa-team/remmina-next apt-get update apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard
  • Skype:

    add-apt-repository -y "deb http://archive.canonical.com/ $(lsb_release -sc) partner" apt-get -y update apt-get -y install skype
  • Браузер Chromium c плагином PepperFlash (свежий flash от google)

    sudo apt-get install chromium-browser sudo apt-get install pepperflashplugin-nonfree sudo update-pepperflashplugin-nonfree --install
  • Кстати, PepperFlash можно установить и запустить без Chromium, в Firefox:

Установка PepperFlash для Firefoxadd-apt-repository -y ppa:skunk/pepper-flash add-apt-repository -y ppa:nilarimogard/webupd8 apt-get -y update apt-get -y install pepflashplugin-installer freshplayerplugin mkdir -p /opt/google/chrome/PepperFlash ln -s /usr/lib/pepflashplugin-installer/libpepflashplayer.so /opt/google/chrome/PepperFlash
  • Чтобы администратор мог удаленно подключиться к сессии пользователя установим x11vnc:
Установка x11vnc# Скачиваем пакет apt-get -y install x11vnc # Создаем скрипт запуска cat > /usr/bin/x11vncd <<EOT #!/bin/bash x11vncd () { XAUTH=\`ls -1td /var/run/ldm-xauth-* | head -n1 | sed 's|$|/Xauthority|'\` logger -f /var/log/x11vnc "Starting with \$XAUTH" /usr/bin/x11vnc -display :7 -rfbauth /etc/x11vnc.pass -logfile /var/log/x11vnc -xauth \$XAUTH sleep 1 x11vncd } x11vncd EOT # Создаем init-скрипт cat > /etc/init.d/x11vnc <<EOT #!/bin/sh ### BEGIN INIT INFO # Provides:x11vnc # Required-Start:\$remote_fs \$syslog # Required-Stop:\$remote_fs \$syslog # Default-Start:2 3 4 5 # Default-Stop:0 1 6 # Short-Description:Start X11VNC # Description:Start VNC server X11VNC at boot ### END INIT INFO case "\$1" in start) start-stop-daemon --start --oknodo --pidfile /var/run/x11vnc.pid --background --nicelevel 15 --make-pidfile --exec /usr/bin/x11vncd ;; stop) logger -f /var/log/x11vnc "Stopping" start-stop-daemon --stop --oknodo --pidfile /var/run/x11vnc.pid ;; restart) logger -f /var/log/x11vnc "Restarting" \$0 stop \$0 start ;; status) PID=\`cat /var/run/x11vnc.pid\` if [ -e /proc/\$PID ]; then echo "Process \$PID is running" else echo "No process matching" fi ;; *) echo "Usage: \$0 start|stop|restart|status" exit 1 ;; esac exit 0 EOT # Разрешаем выполнение chmod +x /usr/bin/x11vncd /etc/init.d/x11vnc # Включаем службу при запуске update-rc.d x11vnc defaults # Задаем пароль x11vnc -storepasswd /etc/x11vnc.pass
  • И ssh-сервер:

    apt-get -y install openssh-server
  • Еще в Ubuntu 16.04 есть некая проблема, если не настроить xscreensaver, то через определенное время клиент покажет черный экран, из которого никак не выйти. Исправим это:

    Установим xscreenasver, если он еще не установлен:

    apt-get -y install xscreensaver

    Настроим автозапуск:

    cat > /etc/xdg/autostart/xscreensaver.desktop <<EOT [Desktop Entry] Type=Application Exec=/usr/bin/xscreensaver -nosplash Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[en_US]=xscreenasaver Name=xscreensaver Comment[en_US]= Comment= EOT

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

    LDM_PASSWORD_HASH=true

Не забываем выйти из chroot и обновить наш nbd-образ:

exit ltsp-update-image
Создание пользователей
  • Обычных пользователей терминального сервера можно создать стандартным способом:

    useradd -m -c "Иван Иваныч" -g users -s /bin/bash <username> passwd <username>

    Или через GUI если он установлен у вас на сервере

  • Также при желании можно создать локального администратора в клиентском образе:

    ltsp-chroot useradd -g adm -G sudo -s /bin/bash -m <adminname> passwd <adminname> exit ltsp-update-image
Конфиг lts.conf

Вот мы и подобрались к самому главному конфигу Находится он по адресу /var/lib/tftpboot/ltsp/i386/lts.conf и представляет ссобой нечто иное как описание глобальных переменных.

Конфиг поделен на секции, в секции Default описываются настройки общие для всех клиентов:

[Default] # Сессия LXDE LDM_XSESSION = /usr/bin/dbus-launch --exit-with-session /usr/bin/lxsession -s Lubuntu -e LXDE # Настройки локалей и системного языка LOCALE = Europe/Moscow LC_ALL = ru_RU.UTF-8 LANG = ru_RU.UTF-8 LDM_LANGUAGE = ru_RU.UTF_8 # Настройка переключения клавиатуры и хоткеев XKBLAYOUT = "us,ru" XKBOPTIONS = "grp:ctrl_shift_toggle,terminate:ctrl_alt_bksp" X_NUMLOCK = true KEYTABLE = ru LDM_NUMLOCK = true # Разрешаем флешки HOTPLUG = True # Разрешаем локальные диски LOCALDEV = true # Настраиваем звук и микрофон SOUND = True MIC_VOLUME = 0 CAPTURE_VOLUME = 100 CAPTURE_SWITCH = toggle # Включаем поддержку SSH RCFILE_01 = "ssh-keygen -A ; /usr/sbin/sshd" # Настраиваем сбор логов SYSLOG_HOST = server

Также можно добавить секции для отдельных клиентов, на основе hostname, IP или MAC-адреса:

# Настройка графики [oldmachine] X_COLOR_DEPTH=8 X_MODE_0=800x600 # Включить автологин [192.168.1.123] LDM_AUTOLOGIN = True LDM_USERNAME = user LDM_PASSWORD = password # Принт-сервер [00:11:25:93:CF:00] PRINTER_0_DEVICE=/dev/usblp0 SCREEN_07=shell # FreeRDP, вместо стандартной оболочки [00:11:25:93:CС:11] SCREEN_07=xfreerdp RDP_SERVER=192.168.100.10 RDP_OPTIONS="/f /sec:rdp /cert-ignore /multimon:force"

Вообще полный список опций вы можете найти на этой странице, или в

man lts.conf

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

К тому же, благодаря свободной лицензии все это достается вам абсолютно бесплатно.

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

UPD: widestream в комментариях отписал, что успешно использует похожую схему для создания рендер-фермы.

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

Несколько интересных ссылок:

  • LTSP.org — Официальный сайт проекта.
  • UbuntuLTSP — Страничка на Ubuntu Wiki.
  • LTSP-Cluster. — Проект по созданию кластера на LTSP (для больших установок).
  • Raspi-LTSP — Интересный проект, который позволяет использовать Raspberry Pi в качестве терминальных станций.

Русскоговорящее сообщество

Если у вас возникнут какие-нибудь вопросы присоединяйтесь к нашей группе в телеграмме:https://t.me/ltsp_ru

habr.com

Системы мониторинга сервера Linux | Losst

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

Существует множество систем, которые позволяют отслеживать различные параметры системы и производительности. Такие системы позволяют собирать данные не только с одного сервера, но и с целых кластеров, а также представлять их в удобном для чтения виде. В этой статье мы рассмотрим основные системы мониторинга сервера Linux, которые часто используются системными администраторами и которые вы можете применять в своих проектах. Существуют как глобальные системы для отслеживания всех параметров, так и более специализированные, предназначенные для определенных сервисов, такие мы тоже рассмотрим.

Содержание статьи:

1. Sarg

Sarg - это инструмент с открытым исходным кодом, который используется для мониторинга работы прокси сервера Squid. Он позволяет создавать отчеты об активности пользователей, просматривать IP адреса сайтов, которые они посещают, ссылки переходов, время, трафик и все другие параметры, доступные в логах Squid.

Особенности утилиты:

  • Свободная лицензия GPLv2;
  • Поддержка нескольких языков;
  • Работает под Linux и FreeBSD;
  • Выводит информацию в формате HTML;
  • Очень проста в установке и использовании.

2.  Monit

 

Monit - это целая платформа для мониторинга производительности сервера Linux или Unix. Вы можете контролировать все сервисы и параметры. Можно отслеживать состояние Apache, Nginx, размер различных кэшей и объем передаваемых данных и много других вещей.

Особенности Monit:

  • Свободный инструмент с открытым исходным кодом;
  • Доступ через веб-интерфейс или из командной строки;
  • Мониторинг всего программного обеспечения и сервисов;
  • Отображения графиков использования ОЗУ и нагрузки на процессор;
  • Поддерживается настройка автоматических действий в экстренных ситуациях.

3. Icinga

 

Это свободная система мониторинга серверов, основанная в 2009 году на исходном коде Nagios. Здесь вы можете посмотреть подробную информацию о нагрузке на процессор, сетевых соединениях, устройствах и процессах. Основное отличие от оригинала Nagios - это возможность сохранения данных мониторинга в базу данных MySQL, OracleSQL или Postgresql. Это отличный выбор для тех, кто ищет сетевую систему мониторинга.

Особенности Icinga:

  • Проект с открытым исходным кодом;
  • Можно отслеживать все параметры через сеть;
  • Поддержка MySQL и PostgreSQL;
  • Мониторинг в реальном времени с помощью веб-интерфейса;
  • Поддерживаются различные модули и расширения;
  • Поддерживает выполнение различных действий на сервере.

4. Observium

Observium - это инструмент для мониторинга сети, он был разработан для облегчения управления сетью серверов. Инструмент имеет две версии - полностью свободную версию для сообщества и коммерческую версию, подписка на которую стоит 150 $ в год.

Особенности:

  • Программа написана на PHP с поддержкой баз данных MySQL;
  • Имеет приятный веб-интерфейс для вывода информации;
  • Можно контролировать несколько серверов одновременно;
  • Есть бесплатная версия.

5.  PHP Server Monitoring

В отличие от других инструментов из этого списка, PHP Server Monitoring - это скрипт, написанный на PHP, который поможет вам управлять веб-сайтами и серверами достаточно просто. Здесь поддерживается экспорт данных в базу MySQL.

Особенности:

  • Хороший веб-интерфейс;
  • Возможность отправки уведомлений по электронной почте и SMS;
  • Современная система определения ошибок и отправки отчетов на электронную почту;
  • Поддержка работы с планировщиком Cron.

6. Linux Dash

Linux Dash - это веб-панель, которая показывает всю самую важную информацию про вашу систему Linux. Здесь отображаются такие параметры, как RAM, CPU, состояние файловой системы, запущенные процессы, пользователи и полосы пропускания в реальном времени. Система мониторинга Linux имеет приятный интерфейс и полностью бесплатна.

7. Cacti

Cacti - это свободный веб-интерфейс с открытым исходным кодом для инструмента RRDtool, он часто используется для мониторинга пропускной способности сети с помощью SNMP (Simple Network Management Protocol). Также панель можно использовать чтобы выполнять мониторинг linux серверов и использования памяти, а также нагрузки на процессор.

Особенности Cacti:

  • Свободный инструмент с открытым кодом;
  • Написанный на PHP и PQL;
  • Работает в Windows и Linux;
  • Управление пользователями.

8. Munin

Munin - это еще один графический интерфейс для RRDtool, он был написан на Perl и распространяется под лицензией GPL. Это отличный инструмент для мониторинга систем, приложений, сетей и сервисов. Он работает на всех Unix подобных операционных системах и имеет множество плагинов. Доступно более 500 плагинов для мониторинга всего, что вы пожелаете. Также можно отправлять уведомления администратору когда возникла ошибка и когда она была устранена.

9. Zabbix

Еще одно очень популярное решение, с открытым исходным кодом, которое позволяет выполнять мониторинг linux серверов. Поддерживается отслеживания множества параметров сети и состояния серверов. Также можно настроить отправку оповещений администратору практически для любого события. Благодаря этому можно очень быстро отреагировать на различные ошибки.

10. Nagios

Это один из лучших инструментов с открытым исходников. Его разработка началась в 1996 в США. Основная часть инструмента - это ядро, которое содержит базовую функциональность. Но дополнительно можно добавлять модули, которые будут расширять ее функциональность. Система поддерживает мониторинг различных сетевых служб, систем, параметров linux, среди которых настройка на сеть, процессор и занятая память. При возникновении ошибок можно отправлять сообщения администратору.

11. Netdata

Netdata - это одна новая система мониторинга серверов Linux в реальном времени с очень красивым и современным интерфейсом в плоском стиле. Как и другие системы мониторинга Linux здесь поддерживается отображения большинства важных параметров в реальном времени, таких как нагрузка на процессор, память, запущенные службы, операции ввода-вывода и другие параметры. Также возможности программы можно расширить с помощью плагинов.

Выводы

В этой статье мы рассмотрели системы мониторинга для linux, которые вы можете использовать в своих проектах. Конечно, это далеко не все решения, а только лучшие из них. Все программы доступны бесплатно или имеют бесплатную версию. А какие системы мониторинга используете вы для решения своих задач? Что-то было упущено в этом списке? Напишите в комментариях!

Оцените статью:

Загрузка...

losst.ru

Многофункциональный офисный сервер на Linux — PLOne HAcking

Проблема освещенная в этой статье весьма насущна для специалистов автоматизирующих деловые процессы в любом офисе. Это практическое руководство по созданию универсального, многофункционального сервера (типа все-в-одном) реализующего функции файл-сервера (SMB/CIFS с авторизацией пользователей учетными записями имеющегося домена AD), DNS сервера, NTP сервера, DHCP сервера, SSH сервера, почтового сервера, сервера интернет канала (с полноценной контентной фильтрацией), web-сервера и т.д. Изначально планировалось использовать в качестве платформы для этого проекта Gentoo Linux, но при ближайшем рассмотрении выяснилась масса сложностей (в том числе с поддержанием системы в актуальном состоянии и другие - в целом можно сказать, что для поддержания такой сложной системы на этом дистрибутиве возможностей одного специалиста будет недостаточно) склонивших меня отдать предпочтение активно развиваемой платформе Ubuntu Linux. В результате, получился аналог Zentyal , но доработанный в плане контентной фильтрации, подключения к AD и во многом другом однако не имеющий и некоторых функций (как то единая админка, пока не реализованы функции групповой работы, нет антивирусной фильтрации (которая, в моем случае, выполняется на пользовательских АРМ, а на шлюзе только добавит тормозов) и кое что еще).

Итак, качаем-устанавливаем Ubuntu 14.04 LTS Server (или DVD, я устанавливал DVD). Эта часть не представляет существенных сложностей - инсталлятор в Ubuntu Linux весьма толковый. Кроме того установка операционки весьма зависима от железа, а мне хотелось бы написать более-менее универсальное руководство. Здесь можно отметить, что в инсталляторе Ubuntu, установка на софт-рэйд выполняется в ручном режиме. Дело в том, что Груб по-прежнему понимает только RAID1, поэтому под /boot можно делать только зеркало; своп делать на софт-рэйде бессмысленно - он сам как рэйд работает - просто отдаем ему разделы на разных дисках - получается что-то вроде стрипа; ну и в целом - под рэйд проводим сначала разметку дисков (из расчета - раздел на диске - это виртуальный диск в рэйде) указываем в типе раздела raid, заходим в меню управления рэйд массивами установщика и создаем свои массивы с указанием сразу же файловой системы и точки монтирования. Можно сразу указать какие функции будет выполнять сервер (например почтовик (домен+smarthost), файловый сервер (samba4), вэб-сервер (LAMP), DNS (Bind9), прокси сервер (squid)), а можно доставлять нужные пакеты после установки ОС - sudo apt-get install <имя пакета> (я ставил перечисленное сразу и описывать буду именно такую платформу - поэтому делайте поправку - если не поставили что-то сразу). Для удобства дальнейшей настройки (чтобы не заморачиваться изучением nano и других не дружественных редакторов и не тратить время на поиск каждого нужного нам файла и на переход к нему) устанавливаем midnight commander:

sudo apt-get install mc

Общие обозначения принятые для описания системы в статье:

Домен AD: domain.lanLAN: 192.168.0.0/16Internet: 10.0.0.0/24Контроллер домена: dc.domain.lan (192.168.0.1) Настраиваемый сервер: smbsrv01 (192.168.0.2 - LAN, 10.0.0.1 - Internet)

Чтобы упростить себе жизнь, сразу же ставим сервер ssh:

sudo apt-get install ssh

правим /etc/ssh/sshd_config - в целом он остается в первоначальном виде, но обратите внимание на следующие опции:

# Говорим демону слушать только интерфейс в локальной сетиListenAddress 192.168.0.10 # Говорим использовать PAM механизм аутентификации пользователейUsePAM yes# Разрешаем подключения с любого адреса (из локалки)IgnoreUserKnownHosts no# Разрешаем аутентификацию (подтверждение имени пользователя) паролемPasswordAuthentication yes

Сохраняем конфигурацию и перезапускаем sshd (sudo service sshd restart). Теперь можно работать удаленно (подключившись к консоли сервера клиентом ssh, например PuTTY с Windows машины).

Еще немного упростим себе жизнь (в основном на будущее - в текущей настройке этот сервис лучше не использовать - он не всегда предсказуем и не все настройки последних версий пакетов знает) - установим webmin. Правим настройки репозитория нашей Ubuntu - файл /etc/apt/sources.list . В конец файла добавляем строку:

deb http://download.webmin.com/download/repository sarge contrib

Обновляем индекс пакетов и ставим webmin:

sudo apt-get update sudo apt-get install webmin

DHCP сервер можно настроить на контроллере домена, но если нужно настраивать сетевые параметры клиентам из разных сегментов локальной сети, то единственное решение это установить и настроить демона DHCP на шлюзовом компютере с интерфейсами во всех сегментах локалки.

Теперь можно поставить Самбу 4 и завести ее контроллером домена в имеющийся домен Active Directory (AD) работающий (в моем случае) на Windows 2008 Server. Но, у меня необходимости в дополнительном контроллере домена не было, а авторизоваться доменными учетками на почтовике, файл-сервере и Интернет-шлюзе можно используя Winbind и механизмы Самбы. Поэтому я просто установил-настроил Самбу, BIND DNS, NTP, Керберос, ввел Самбу в домен (member) и добавил в NSS возможность авторизации доменным пользователям. Настройку DNS сделал исходя, в первую очередь, из потребностей доменной Самбы. Однако, необходимо понимать, что в случае простой пересылки всех запросов на AD-шный DNS его необходимо настроить на последующую пересылку внешних запросов наружу (что является тривиальной задачей даже для доменного DNS).

Установим и настроим сервер NTP - основной сервер NTP в домене работает на контроллере домена, но чтобы частично разгрузить его и, главное, чтобы иметь доступ к NTP из других сегментов локальной сети (к которым подключен шлюз, но не контроллер домена).

sudo apt-get install ntp

Теперь правим конфигурацию в файле /etc/ntp.conf , в основном все оставляем как есть, но обратите внимание, что к серверам первой строкой нужно добавить наш контроллер домена. Обратите внимание на следующие настройки:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for# more information.server domain.lanserver 1.ru.pool.ntp.orgserver 2.ru.pool.ntp.orgserver 0.ubuntu.pool.ntp.orgserver 1.ubuntu.pool.ntp.orgserver 2.ubuntu.pool.ntp.orgserver 3.ubuntu.pool.ntp.org# далее описываются сервера с которых получаем данные. Разрешаем им все кроме# трапов и запросов к намrestrict gymnasium.lan noquery notraprestrict 1.ru.pool.ntp.org noquery notraprestrict 2.ru.pool.ntp.org noquery notraprestrict 0.ubuntu.pool.ntp.org noquery notraprestrict 1.ubuntu.pool.ntp.org noquery notraprestrict 2.ubuntu.pool.ntp.org noquery notraprestrict 3.ubuntu.pool.ntp.org noquery notraprestrict ntp.ubuntu.com noquery notrap# для локалки так же разрешаем все, кроме трапов и модификацийrestrict 10.0.1.0 mask 255.255.255.0 nomodify notrap nopeerrestrict 192.168.0.0 mask 255.255.0.0 nomodify notrap nopeer

Теперь перепускаем демон ntpd и пользуемся сервисом синхронизации времени.

 

Устанавливаем CMS и создаем на ее базе сайт организации (внутренний, внешний, сколько угодно сайтов).

ploha.ru