Мониторинг. · 5 min read · Oct 20, 2025
Мониторинг серверов с Shinken на Ubuntu 16.04
Shinken — это фреймворк для мониторинга компьютеров и сетей с открытым исходным кодом, написанный на Python и совместимый с Nagios. Shinken можно использовать на всех операционных системах, которые могут запускать приложения на Python, таких как Linux, Unix и Windows. Shinken был написан Жаном Габесом как доказательство концепции новой архитектуры Nagios, но был отклонен автором Nagios и стал независимым инструментом мониторинга сетей и систем, который остается совместимым с Nagios.
В этом руководстве я покажу вам, как установить Shinken из исходников и добавить Linux-хост в систему мониторинга. Я буду использовать Ubuntu 16.04 Xenial Xerus в качестве операционной системы для сервера Shinken и контролируемого хоста.
Шаг 1 - Установка сервера Shinken
Shinken — это фреймворк на Python, его можно установить с помощью pip или установить из исходников. На этом шаге мы установим Shinken из исходников.
Есть несколько задач, которые необходимо выполнить перед тем, как мы начнем установку Shinken.
Установите несколько новых пакетов Python и создайте пользователя Linux с именем “shinken”:
sudo apt-get install python-setuptools python-pip python-pycurl
useradd -m -s /bin/bash shinkenСкачайте исходники Shinken из репозитория GitHub:
git clone https://github.com/naparuba/shinken.git
cd shinken/Затем установите Shinken с помощью команды ниже:
git checkout 2.4.3
python setup.py installДалее, для достижения лучших результатов, нам нужно установить ‘python-cherrypy3’ из репозитория Ubuntu:
sudo apt-get install python-cherrypy3Теперь Shinken установлен, далее мы добавим Shinken в автозагрузку и запустим его:
update-rc.d shinken defaults
systemctl start shinkenШаг 2 - Установка Shinken Webui2
Webui2 — это веб-интерфейс Shinken, доступный с shinken.io. Самый простой способ установить Sshinken webui2 — использовать команду shinken CLI (которая должна выполняться от имени пользователя shinken).
Войдите в систему как пользователь shinken:
su - shinkenИнициализируйте файл конфигурации shinken - команда создаст новый файл конфигурации .shinken.ini:
shinken --initИ установите webui2 с помощью этой команды CLI shinken:
shinken install webui2Webui2 установлен, но нам нужно установить MongoDB и другой пакет Python с помощью pip. Выполните команду ниже от имени root:
sudo apt-get install mongodb
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8Далее, перейдите в директорию shinken и добавьте новый модуль webui2, отредактировав файл ‘broker-master.cfg’:
cd /etc/shinken/brokers/
vim broker-master.cfgДобавьте новую опцию внутри модуля на строке 40:
modules webui2Сохраните файл и выйдите из редактора.
Теперь перейдите в директорию контактов и отредактируйте файл ‘admin.cfg’ для конфигурации администратора.
cd /etc/shinken/contacts/
vim admin.cfgИзмените значения, показанные ниже:
contact_name admin # Имя пользователя 'admin'
password yourpass # Пароль 'mypass'Сохраните и выйдите.
Шаг 3 - Установка Nagios-plugins и пакетов Shinken
На этом шаге мы установим Nagios-plugins и некоторые модули Perl. Затем установим дополнительные пакеты shinken с shinken.io для выполнения мониторинга.
Установите Nagios-plugins и cpanminus, который необходим для сборки и установки модулей Perl:
sudo apt-get install nagios-plugins* cpanminusУстановите эти модули Perl с помощью команды cpanm:
cpanm Net::SNMP
cpanm Time::HiRes
cpanm DBIТеперь создайте новую ссылку для файла utils.pm в директории shinken и создайте новую директорию для Log_File_Health:
chmod u+s /usr/lib/nagios/plugins/check_icmp
ln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/
mkdir -p /var/log/rhosts/
touch /var/log/rhosts/remote-hosts.logДалее установите пакеты shinken ssh и linux-snmp для мониторинга SSH и SNMP источников с shinken.io:
su - shinken
shinken install ssh
shinken install linux-snmpШаг 4 - Добавление нового Linux хоста/host-one
Мы добавим новый Linux хост, который будет мониториться с использованием сервера Ubuntu 16.04 с IP-адресом 192.168.1.121 и именем хоста ‘host-one’.
Подключитесь к Linux хосту host-one:
ssh [email protected]Установите пакеты snmp и snmpd из репозитория Ubuntu:
sudo apt-get install snmp snmpdДалее отредактируйте файл конфигурации ‘snmpd.conf’ с помощью vim:
vim /etc/snmp/snmpd.confЗакомментируйте строку 15 и раскомментируйте строку 17:
#agentAddress udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:161Закомментируйте строки 51 и 53, затем добавьте новую строку конфигурации ниже:
#rocommunity mypass default -V systemonly
#rocommunity6 mypass default -V systemonly
rocommunity mypassСохраните и выйдите.
Теперь запустите службу snmpd с помощью команды systemctl:
systemctl start snmpdПерейдите на сервер shinken и определите новый хост, создав новый файл в директории ‘hosts’.
cd /etc/shinken/hosts/
vim host-one.cfgВставьте конфигурацию ниже:
define host{
use generic-host,linux-snmp,ssh
contact_groups admins
host_name host-one
address 192.168.1.121
_SNMPCOMMUNITY mypass # SNMP Pass Config on snmpd.conf
}Сохраните и выйдите.
Отредактируйте конфигурацию SNMP на сервере Shinken:
vim /etc/shinken/resource.d/snmp.cfgИзмените ‘public’ на ‘mypass’ - он должен совпадать с паролем, который вы использовали в файле конфигурации snmpd на клиентском хосте host-one.
$SNMPCOMMUNITYREAD$=mypassСохраните и выйдите.
Теперь перезагрузите оба сервера - сервер Shinken и контролируемый Linux хост:
rebootНовый Linux хост был успешно добавлен на сервер Shinken.
Шаг 5 - Доступ к Shinken Webui2
Посетите Shinken webui2 на порту 7677 (замените IP в URL на ваш IP):
Войдите с именем пользователя admin и вашим паролем (тем, который вы установили в файле конфигурации admin.cfg).

Панель управления Shinken в Webui2.

Наши 2 сервера мониторятся с помощью Shinken.

Список всех служб, которые мониторятся с помощью linux-snmp.

Статус всех хостов и служб.

Шаг 6 - Общие проблемы с Shinken
- Проблемы с NTP сервером
Когда вы получаете эту ошибку с NTP.
TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server)
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )Чтобы решить эту проблему, установите ntp на всех Linux хостах.
sudo apt-get install ntp ntpdateОтредактируйте конфигурацию ntp:
vim /etc/ntp.confЗакомментируйте все пулы и замените их на:
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
pool 0.id.pool.ntp.org
pool 1.asia.pool.ntp.org
pool 0.asia.pool.ntp.orgДалее добавьте новую строку внутри restrict:
# Локальные пользователи могут более подробно опрашивать ntp сервер.
restrict 127.0.0.1
restrict 192.168.1.120 # IP адрес сервера shinken
restrict ::1ПРИМЕЧАНИЕ: 192.168.1.120 — это IP адрес сервера Shinken.
Сохраните и выйдите.
Запустите ntp и проверьте панель управления Shinken:
tnpd- Проблема check_netint.pl не найдена
Скачайте исходники из репозитория github в директорию lib shinken:
cd /var/lib/shinken/libexec/
wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.pl
chmod +x check_netint.pl
chown shinken:shinken check_netint.pl- Проблема с NetworkUsage
Есть сообщение об ошибке:
ERROR : Unknown interface eth\d+Проверьте ваш сетевой интерфейс и отредактируйте шаблон linux-snmp.
На моем сервере Ubuntu сетевой интерфейс ‘enp0s8’, а не eth0, поэтому я получил эту ошибку.
Отредактируйте пакеты шаблона linux-snmp с помощью vim:
vim /etc/shinken/packs/linux-snmp/templates.cfgДобавьте сетевой интерфейс в строку 24:
_NET_IFACES eth\d+|em\d+|enp0s8Сохраните и выйдите.
Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.