Поиск по сайту:

Мониторинг сервера с помощью Shinken в Ubuntu 16.04


На этой странице

  1. Шаг 1. Установите сервер Shinken
  2. Шаг 2. Установите Shinken Webui2
  3. Шаг 3. Установите подключаемые модули Nagios и пакеты Shinken
  4. Шаг 4. Добавьте новый хост Linux/хост-один
  5. Шаг 5. Доступ к Shinken Webui2
  6. Шаг 6. Распространенные проблемы с Shinken
  7. Ссылки

Shinken — это платформа для мониторинга компьютеров и сетей с открытым исходным кодом, написанная на python и совместимая с Nagios. Shinken можно использовать во всех операционных системах, которые могут запускать приложения Python, таких как Linux, Unix и Windows. Shinken был написан Jean Gabes в качестве доказательства концепции новой архитектуры 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 с помощью этой команды Shinken CLI:

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       # Username 'admin'
password        yourpass    # Pass 'mypass'

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

Шаг 3 — Установите плагины Nagios и пакеты Shinken

На этом этапе мы установим плагины Nagios и некоторые модули Perl. Затем установите дополнительные пакеты shinken с сайта shinken.io для мониторинга.

Установите плагины Nagios и cpanminus, необходимые для сборки и установки модулей Perl:

sudo apt-get install nagios-plugins* cpanminus

Установите эти модули Perl с помощью команды cpanm:

cpanm Net::SNMP
cpanm Time::HiRes
cpanm DBI

Теперь создайте новую ссылку для файла utils.pm, чтобы скрыть каталог и создать новый каталог для 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-1:

ssh 

Установите пакеты 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

Затем добавьте новую строку внутри ограничения:

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict 192.168.1.120 #shinken server IP address
restrict ::1

ПРИМЕЧАНИЕ. 192.168.1.120 — это IP-адрес сервера Shinken.

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

Запустите ntp и проверьте панель управления Shinken:

ntpd

- Проблема check_netint.pl не найдена

Загрузите исходный код из репозитория github в каталог shinken lib:

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

- Проблема с использованием сети

Есть сообщение об ошибке:

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

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

использованная литература

  • http://www.roblayton.com/search/label/monitoring