По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В предыдущей статье, мы рассказывали, как установить Asterisk 14.3.0 из источников, в сегодняшней статье, хотелось бы поговорить про базовые возможности управления Asterisk из командной строки после установки. По умолчанию, после запуска Asterisk будет работать как процесс в фоновом режиме и для того, чтобы подключиться и начать управлять работающим процессом, необходимо включить удаленную консоль следующей командой: [root@localhost ~]# asterisk -r Asterisk 14.3.0, Copyright (C) 1999 - 2016, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 14.3.0 currently running on localhost (pid = 1887) localhost*CLI> Опция -R также поможет подключить удаленную консоль, однако она будет автоматически пробовать переподключиться к Asterisk, если по каким-то причинам, соединение было разорвано. Чтобы отключиться от удаленной консоли Asterisk, нужно нажать сочетание клавиш Ctrl+C Существует несколько способов остановки работающего процесса Asterisk: core stop now - данная команда мгновенно останавливает процесс, обрывая все проходящие на сервере соединения и звонки core stop gracefully - данная команда не позволяет новым соединениям устанавливаться на Asterisk, но позволяет текущим соединениям продолжаться. Когда все соединения заканчиваются, то Asterisk останавливается core stop when convenient - данная команда также дожидается пока на сервере не останется текущих звонков, а затем останавливает Asterisk. Однако, новые звонки, поступающие на сервер - разрешены Команды для перезапуска процесса Asterisk работают аналогично командам, останавливающим процесс, которые описаны выше, но вместо того чтобы останавливать Asterisk, они его перезапускают в соответствии с синтаксисом команды: core restart now core restart gracefully core restart when convenient Существует также команда, которая отменяет введенную ранее команду остановки или перезапуска, если пользователь вдруг передумал: core abort shutdown Также можно подключиться к Asterisk как root, командой: [root@localhost ~]# asterisk -c Asterisk 14.3.0, Copyright (C) 1999 - 2016, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for detail s. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= [ Initializing Custom Configuration Options ] *CLI> Asterisk Ready. Мы категорически не рекомендуем запускать Asterisk с правами root’а, поскольку это опасно и может негативно повлиять на систему, на которой работает Asterisk. Управление степенью логирования событий в Asterisk Вы можете управлять тем, насколько подробно будут логироваться события Asterisk, для этого используется специальная опция -v. Каждая –v повышает уровень VERBOSE сообщений. Например, следующая команда повышает уровень логирования на 2: # asterisk –r –v -v Возможен и такой вариант ввода, разницы между ними нет # asterisk -rvv Другие опции Можно также запускать Asterisk от имени другого пользователя: # asterisk –U asteriskuser Для работы от имени другого пользователя, советуем убедиться, что у него есть разрешения на доступ к следующим директориям. Используйте команды: # sudo chown -R asteriskuser:asteriskuser /usr/lib/asterisk # sudo chown -R asteriskuser:asteriskuser /var/lib/asterisk # sudo chown -R asteriskuser:asteriskuser /var/spool/asterisk # sudo chown -R asteriskuser:asteriskuser /var/log/asterisk # sudo chown -R asteriskuser:asteriskuser /var/run/asterisk # sudo chown asteriskuser:asteriskuser /usr/sbin/asterisk Команды в консоль сервера IP - АТС Asterisk можно и давать с помощью графической оболочки FreePBX. Для этого, перейдите в раздел Admin → Asterisk CLI Существует большое множество других опций и режимов, доступных при запуске Asterisk, для того чтобы посмотреть и ознакомиться с ними, используйте команду: # asterisk –h Чтобы управлять сервисом Asterisk из командной строки Вашей операционной системы используйте следующие команды: Для запуска сервиса: # service asterisk start Starting asterisk (via systemctl): [ OK ] Для остановки сервиса: # service asterisk stop Stopping asterisk (via systemctl): [ OK ] Для перезапуска сервиса: # service asterisk restart Stopping asterisk (via systemctl): [ OK ] Starting asterisk (via systemctl): [ OK ] Для проверки статуса: # service asterisk status ? asterisk.service - LSB: Asterisk PBX Loaded: loaded (/etc/rc.d/init.d/asterisk; bad; vendor preset: disabled) Active: active (running) since Wed 2017-03-01 15:59:26 MSK; 2s ago Docs: man:systemd-sysv-generator(8) Process: 11611 ExecStop=/etc/rc.d/init.d/asterisk stop (code=exited, status=0/SUCCESS) Process: 11672 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS) Main PID: 11697 (asterisk) CGroup: /system.slice/asterisk.service +-11695 /bin/sh /usr/sbin/safe_asterisk L-11697 /usr/sbin/asterisk -f -vvvg -c Mar 01 15:59:26 localhost.localdomain systemd[1]: Starting LSB: Asterisk PBX... Mar 01 15:59:26 localhost.localdomain asterisk[11672]: Starting asterisk: Mar 01 15:59:26 localhost.localdomain systemd[1]: PID file /var/run/asterisk/... Mar 01 15:59:26 localhost.localdomain systemd[1]: asterisk.service: Supervisi... Mar 01 15:59:26 localhost.localdomain systemd[1]: Started LSB: Asterisk PBX. Hint: Some lines were ellipsized, use -l to show in full.
img
Создание единого устройства обработки пакетов - маршрутизатор (или коммутатор уровня 3, который теперь обычно называют просто коммутатором), являющийся наиболее распространенным примером, был до этого момента в центре внимания. Пришло время соединить маршрутизаторы вместе. Рассмотрим сеть на рисунке 1. Приложение, работающее на хосте A, должно получить некоторую информацию от процесса, запущенного на F. Устройства B, C, D и E, конечно же, являются обработчиками пакетов (маршрутизаторами). Для пересылки пакетов между хостами A и F маршрутизатор B будет вызван для пересылки пакетов на F, даже если он не подключен к F. аналогично маршрутизаторам C и D потребуется пересылать пакеты как A, так и F, даже если они не подключены ни к одному из этих хостов. В том разделе рассматривается следующий вопрос: Как сетевые устройства создают таблицы, необходимые для пересылки пакетов по свободным от петель путям в сети? Ответ гораздо сложнее, чем может показаться на первый взгляд, поскольку на самом деле в нем содержится несколько проблем: Как устройства узнают о топологии сети, какие каналы связи подключены к каким устройствам и назначениям. Как плоскости управления принимают эту информацию и создают в сети пути без петель? Как плоскости управления обнаруживают изменения в сети и реагируют на них? Каким образом уровни управления масштабируются для удовлетворения потребностей крупномасштабных сетей? Какие политики реализованы на уровне управления и как? Все эти проблемы будут рассмотрены далее. Обнаружение топологии Сетевые диаграммы обычно показывают всего несколько типов устройств, включая маршрутизаторы, коммутаторы, системы, подключенные к сети (различные типы хостов) и различные типы устройств (например, межсетевые экраны). Они часто связаны между собой каналами, представленными в виде линий. Пример представлен на рисунке 2. Сетевые диаграммы, как и многие другие формы абстракции, скрывают много информации, чтобы сделать встроенную информацию более доступной. Во-первых, сетевые диаграммы обычно находятся где-то между логическим и физическим представлением сети. Такие диаграммы обычно не показывают каждое физическое соединение в сети. Например, сетевая диаграмма может показывать связку каналов как одну линию связи или один физический провод, который был мультиплексирован как несколько логических каналов (например, Ethernet или какой-либо другой канал широковещательной передачи, который представляет собой один физический канал, используемый несколькими устройства для связи). Примечание В сетевой инженерии часто возникает некоторая путаница с термином мультиплексирование. Многие инженеры склонны рассматривать совместное использование двух виртуальных каналов как единственную форму сетевого мультиплексирования. Однако всякий раз, когда есть несколько устройств, совместно использующих одну линию связи, ситуация, в конечном счете требующая некоторой формы адресации, временного разделения трафика или частотного разделения трафика, используется мультиплексирование. Виртуализацию можно рассматривать как второй уровень мультиплексирования или мультиплексирование поверх мультиплексирования. Во-вторых, сетевые схемы часто не учитывают логическую сложность сервисов. Однако плоскость управления не маскирует такого рода сложности. Вместо этого плоскость управления должна собирать информацию о сети локально и с других плоскостей управления, объявлять ее другим устройствам, на которых работает плоскость управления, и создавать набор таблиц, которые плоскость данных может использовать для пересылки трафика через каждое устройство в сети от источника к месту назначения. В этой статье мы рассмотрим проблему: Как плоскость управления узнает о сети? Этот вопрос можно разбить на несколько частей: О чем пытается узнать плоскость управления? Или, возможно, каковы компоненты топологии сети? Как плоскость управления узнает об устройствах, подключенных к сети? Какие основные классификации используются при описании объявления информации о сети? Узлы сети, границы и достижимый пункт назначения. Первая проблема, которую необходимо решить, на самом деле является мета-вопросом: какие виды информации должна изучать и распространять плоскость управления, чтобы строить пути без петель в сети? Однако небольшое предупреждение по поводу следующего материала статьи: сетевые термины трудно однозначно определить, поскольку отдельные термины часто используются для описания множества "вещей" в сети, в зависимости от контекста, в котором они используются. Узел Узел либо обрабатывает пакеты (включая пересылку пакетов), либо отправляет пакеты, либо принимает пакеты в сети. Термин взят из теории графов, где их также можно назвать вершинами, хотя этот термин более широко применяется в сетевой инженерии. В сети есть несколько типов узлов, в том числе: Транзитный узел: любое устройство, предназначенное для приема пакетов на одном интерфейсе, их обработки и отправки на другом интерфейсе. Примерами транзитных узлов являются маршрутизаторы и коммутаторы. Их часто просто называют узлами, так они будут именоваться здесь в статье, а не транзитными узлами. Конечный узел: также называется конечной системой или хостом: любое устройство, предназначенное для запуска приложений, которые генерируют и/или принимают пакеты от одного или нескольких интерфейсов. Это сетевые источники и приемники, чаще всего эти узлы на самом деле называются хостами, а не конечными узлами, чтобы отличать их от shorthand узлов, что обычно означает транзитный узел. В этих двух определениях есть много очевидных дыр. Как должно называться устройство, которое принимает пакет на одном интерфейсе, завершает соединение в локальном процессе или приложении, генерирует новый пакет, а затем передает этот новый пакет из другого интерфейса? Проблема усложняется, если информация, содержащаяся в двух пакетах, примерно одинакова, как в случае с прокси-сервером или каким-либо другим подобным устройством. В этих случаях полезно классифицировать устройство как конечное или узел в определенном контексте, в зависимости от роли, которую оно играет по отношению к другим устройствам в контексте. Например, с точки зрения хоста прокси-сервер действует как устройство сетевой переадресации, поскольку работа прокси-сервера (в некоторой степени) прозрачна для хоста. Однако с точки зрения соседнего узла прокси-серверы являются хостами, поскольку они завершают потоки трафика и (как правило) участвуют в плоскости управления так же, как и хост. Граница (край) Граница - это любое соединение между двумя сетевыми устройствами, через которое пересылаются пакеты. Номинальный случай - соединение точка-точка (point-to-point), соединяющее два маршрутизатора, но это не единственный случай. В теории графов ребро соединяет ровно два узла. В сетевой инженерии существуют понятия мультиплексированных, многоточечных и других типов мультиплексированных каналов. Чаще всего они моделируются как набор соединений point-to-point, особенно при построении набора маршрутов без петель в сети. Однако на сетевых диаграммах мультиплексированные каналы часто изображаются как одна линия с несколькими присоединенными узлами. Достижимый пункт назначения Достижимый пункт назначения может описывать один узел или службу, или набор узлов или служб, доступных через сеть. Номинальным примером достижимого пункта назначения является либо хост, либо набор хостов в подсети, но важно помнить, что этот термин может также описывать службу в некоторых контекстах, таких как конкретный процесс, запущенный на одном устройстве, или множество вариантов службы, доступных на нескольких устройствах. Рисунок 3 иллюстрирует это. В сети, показанной на рисунке 3, достижимые пункты назначения могут включать: Любой из отдельных хостов, например A, D, F, G и H Любой из отдельных узлов, например B, C или E Служба или процесс, работающий на одном хосте, например S2. Служба или процесс, работающий на нескольких хостах, например S1. Набор устройств, подключенных к одному физическому каналу или границе, например F, G и H Этот последний достижимый пункт назначения также представлен как интерфейс на конкретном канале или на границе сети. Следовательно, маршрутизатор E может иметь несколько достижимых пунктов назначения, включая: Интерфейс на линии, соединяющей маршрутизатор E с C Интерфейс на линии, соединяющей маршрутизатор E с B Интерфейс на линии, соединяющей маршрутизатор E с хостами F, G и H Сеть, представляющая достижимость для хостов F, G и H Любое количество внутренних служб, которые могут быть объявлены как отдельные адреса, порты или номера протоколов Любое количество внутренних адресов, присоединенных к виртуальным каналам связи, которые не существуют в физической сети, но могут использоваться для представления внутреннего состояния устройства (не показано на рисунке3) Таким образом, концепция достижимого пункта назначения может означать множество разных вещей в зависимости от контекста. В большинстве сетей достижимый пункт назначения - это либо одиночный хост, одиночный канал (и хосты, подключенные к нему), либо набор каналов (и хосты, прикрепленные к этим каналам), объединенные в один достижимый пункт назначения. Теперь, почитайте материал про топологию сетей.
img
Icinga - это бесплатное средство мониторинга с открытым исходным кодом для вашего дата-центра. Это приложение для мониторинга компьютерных систем и работы сети, которое проверяет состояние готовности вашей сети и компьютерных ресурсов, уведомляет о перебоях в работе системы, генерирует данные о производительности ваших ресурсов, а также обеспечивает высокую степень работоспособности и возможность настройки мониторинга распределённых систем со встроенной функцией кластера. Icinga была создана в 2009 году в качестве разветвления средства мониторинга Nagios. Но потом была заново переписана на С++ и стала одним из самых популярных инструментов мониторинга в интернете. Слово "Ицинга" - это Зулусское слово, означающее "оно ищет", или "оно обозревает", или "оно исследует". В этом учебном пособии мы покажем вам, как установить и настроить инструмент мониторинга Icinga 2 на сервере LTS Ubuntu 20.04. Мы установим Icinga 2 из официального репозитория, а затем настроим icingaweb2, облегченный и расширяемый веб-интерфейс для системы мониторинга icinga2. Предпосылки Для этого руководства мы установим icinga2 и icingaweb2, используя сервер Ubuntu 20.04 с 2 ГБ оперативной памяти. Но эти данные меняются в зависимости от размера вашей ИТ-инфраструктуры. Что мы будем делать? Установка Icinga2 и Nagios Monitoring Plugins; Установка и настройка базы данных MySQL; Установка и настройка модуля Icinga MySQL; Установка Apache2 и PHP-пакетов; Установка и настройка Icingaweb2; Установка Icinga2 Stack Post. Шаг 1 - Установка Icinga2 и системы мониторинга Nagios Сперва мы добавим репозиторий icinga2 для Ubuntu 20.04 и установим пакеты icinga2 и плагины мониторинга Nagios. Добавьте GPG ключ Icinga2 в вашу систему. curl https://packages.icinga.com/icinga.key | apt-key add - Теперь перейдите в директорию '/etc/apt/sources.list.d' и создайте новый репозиторий 'icinga-focal.list'. cd /etc/apt/sources.list.d/ vim icinga-focal.list Вставьте следующую конфигурацию репозитория. deb http://packages.icinga.com/ubuntu icinga-focal main deb-src http://packages.icinga.com/ubuntu icinga-focal main Нажмите сохранить и закройте. Затем обновите все доступные репозитории и установите подключаемые модули Icinga2 и Nagios Monitoring с помощью команды apt ниже. sudo apt update sudo apt install icinga2 monitoring-plugins После завершения установки запустите службу Icinga2 и добавьте сервис в автозагрузку. systemctl start icinga2 systemctl enable icinga2 После этого проверьте службу icinga2, используя приведенную ниже команду. systemctl status icinga2 Ниже приведен результат, который вы получите. В результате сервис icinga2 запущен и работает на Ubuntu 20.04 FocalFossa. Шаг 2 - Установка и настройка базы данных MySQL На этом этапе мы установим последнюю версию сервера MySQL на нашем Ubuntu 20.04 и установим пароль по умолчанию для пользователя MySQL с root правами. Установите MySQL сервер с помощью команды apt, приведенной ниже. sudo apt install mysql-server mysql-client После этого запустите службу MySQL и добавьте её в автозагрузку. systemctl start mysql systemctl enable mysql И сервис MySQL готов и запущен. Далее мы зададим пароль для root - пользователя MySQL с помощью командной строки 'mysql_secure_installation', которые предоставлены MySQL-пакетами. Запустите команду 'mysql_secure_installation', которая представлена ниже. mysql_secure_installation Теперь вам будет предложено настроить новый пароль для пользователя root, введите надежный пароль, а затем введите "Y" для прочих конфигураций. Press y|Y for Yes, any other key for No: Please set the password for root here. New password: Re-enter new password: Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y В результате завершена установка сервера MySQL и сконфигурирован корневой пароль по умолчанию. Шаг 3 - Установка и настройка модуля Icinga MySQL После установки сервера MySQL мы установим модуль icinga2 для поддержки MySQL под названием 'icinga2-ido-mysql'. Установка 'icinga2-ido-mysql' возможна с помощью команды apt, приведенной ниже. sudo apt install icinga2-ido-mysql Теперь вам будет предложено включить функцию icinga2 ido-mysql, выберите "Да", чтобы продолжить. Сконфигурируйте 'icinga2-ido-mysql'с помощью команды dbconfig, затем выберите "Yes" для продолжения. Введите свой пароль для 'icinga2-ido-mysql'. Повторите пароль для 'icinga2-ido-mysql'. В результате установка пакета 'icinga2-ido-mysql' была завершена, и был создан новый пользователь MySQL 'icinga2'. Затем, чтобы Icinga работала с новой версией MySQL, мы настроим MySQL пользователя 'icinga2' с аутентификацией по встроенному паролю MySQL. Войдите в командную строку MySQL, используя нижеприведенную команду. mysql -u root -p Теперь измените аутентификацию пользователя 'icinga2@localhost' с помощью собственного плагина аутентификации MySQL, используя следующий запрос. ALTER USER icinga2@localhost IDENTIFIED WITH mysql_native_password BY 'aqwe123@#$'; flush privileges; Введите 'exit', чтобы выйти из командной строки MySQL, а пользователь MySQL 'icinga2' теперь будет использовать родной плагин аутентификации. Далее, включите функцию 'ido-mysql' и проверьте все включенные плагины, используя следующую команду. icinga2 feature enable ido-mysql icinga2 feature list Функция 'ido-mysql' будет включена, чтобы применить новую конфигурацию, перезапустите службу icinga2. systemctl restart icinga2 Таким образом, установка и настройка 'icinga2-ido-mysql' была завершена. Шаг 4 - Установка Apache2 и PHP-пакетов На этом шаге, мы установим пакеты Apache и PHP для icingaweb2 и мы будем использовать PHP 7.3, который доступен в репозитории PPA, потому что на данный момент icingaweb2 еще не поддерживается в новой версии PHP 7.4. Сначала установите пакет 'python3-software-properties' и добавьте репозиторий PHP PPA, используя следующую команду. sudo apt install python3-software-properties sudo add-apt-repository ppa:ondrej/php Далее установите Apache и PHP пакеты с помощью команды apt, описанной ниже. sudo apt install apache2 php7.3 php7.3-common php7.3-gd php7.3-ldap php7.3-intl php7.3-curl libapache2-mod-php7.3 php7.3-mysql php7.3-pgsql php7.3-xml После того, как вся установка будет завершена, отредактируйте конфигурацию 'php.ini' с помощью vim-редактора. vim /etc/php/7.3/apache2/php.ini Снимите комментарий с опции 'date.timezone' и введите свой часовой пояс. date.timezone = Asia/Singapore Раскомментируйте конфигурацию 'cgi.fix_pathinfo' и измените значение на '0'. cgi.fix_pathinfo=0 Сохраните и закройте. Далее перезапустите службу Apache2 и добавьте ее в автозагрузку. systemctl restart apache2 systemctl enable apache2 Служба Apache2 запущена и работает, проверьте её, используя следующую команду. systemctl status apache2 Ниже приведен результат, который вы получите. В результате была завершена установка Apache и PHP пакетов для icingaweb2. Шаг 5 - Установка и настройка Icingaweb2 После установки Apache и PHP-пакетов мы установим пакет icingaweb2 и создадим новую базу данных MySQL для icingaweb2. Начните установку пакетов icingaweb2 и icingacli с помощью команды apt. sudo apt install icingaweb2 icingacli После завершения установки сгенерируйте токен icingaweb2 для установки с помощью приведенной ниже команды. icingacli setup token create Ниже приведен результат, который вы получите. The newly generated setup token is: 9b871ead0a60c94f Теперь скопируйте код токена в надёжное место, он будет использован для установки icingaweb2. Далее войдите в командную строку MySQL, используя нижеприведенную команду mysql. mysql -u root -p Теперь создайте новую базу данных и пользователя, используя следующие запросы. create database icingaweb2; create user icingaweb2@localhost identified with mysql_native_password by "icingaweb2pass"; grant all privileges on icingaweb2.* to icingaweb2@localhost with grant option; flush privileges; Введите 'exit', чтобы выйти из командной строки MySQL. В результате этого установка icingaweb2 завершена и создана новая база данных icingaweb2. Шаг 6 - Установка Icinga2 и Icinga Stack Post Откройте веб-браузер и введите IP-адрес сервера, как показано ниже. Замените IP-адрес на IP-адрес своего сервера. http://IP_адрес/icingaweb2/setup Вставьте код токена установки в поле и нажмите кнопку 'Далее'. Теперь вам нужно выбрать модуль Icinga для установки, оставить модуль 'Monitoring' и нажать 'Далее'. После этого Icinga проверит состояние среды для его установки. Убедитесь, что все необходимые модули находятся в зеленом состоянии, за исключением 'Модулей PostgreSQL', затем нажмите 'Далее'. Теперь вам нужно выбрать Аутентификацию для доступа к icingaweb2, выбрать 'Database ' (База данных) и нажать 'Next ' (Далее). Введите все данные базы данных для 'icingaweb2' и нажмите 'Validate Configuration' (Проверить конфигурацию) для тестирования. После того, как все прошло успешно, нажмите кнопку 'Next ' (Далее). Теперь для аутентификации Backend Authentication выберите 'icingaweb2' и нажмите 'Next ' (Далее). Введите логин и пароль администратора для icingaweb2 и нажмите 'Далее' еще раз. В разделе Application Configuration (Конфигурация приложения) оставьте всё по умолчанию и нажмите 'Далее'. Подтвердите все настройки и нажмите "Далее". И вы получите страницу приветствия на icingaweb2. Снова нажмите "Далее", чтобы настроить backend мониторинга. Установите имя Backend как 'icinga2' с типом 'IDO', затем нажмите 'Далее'. Теперь вам нужно настроить MySQL IDO backend ресурс для приложения icinga2. Введите данные базы данных для icinga2 и нажмите кнопку 'Validate Configuration'. После успешного завершения нажмите кнопку 'Далее'. Для 'Command Transport' выберите 'Local Command File' и оставьте его по умолчанию. Затем нажмите 'Далее'. Для службы Monitoring Security оставьте всё по умолчанию и нажмите 'Далее'. Подтвердите все настройки и нажмите кнопку 'Готово'. Теперь установка Icinga 2 и Icinga web 2 завершена, нажмите кнопку 'Login to Icinga Web 2', и вы будете перенаправлены на страницу входа. Введите пользователя, которого вы настроили в самом начале и нажмите кнопку "Войти". И, наконец, установка и настройка icinga2 и icingaweb2 на сервере Ubuntu 20.04 успешно завершена.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59