Мониторинг. · 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 webui2

Webui2 установлен, но нам нужно установить 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):

http://192.168.1.120:7767

Войдите с именем пользователя admin и вашим паролем (тем, который вы установили в файле конфигурации admin.cfg).

Страница входа Shinken

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

Панель мониторинга Shinken

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

Оба сервера мониторятся с помощью 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

Сохраните и выйдите.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.