Мониторинг сервера с помощью Shinken в Ubuntu 16.04
На этой странице
- Шаг 1. Установите сервер Shinken
- Шаг 2. Установите Shinken Webui2
- Шаг 3. Установите подключаемые модули Nagios и пакеты Shinken
- Шаг 4. Добавьте новый хост Linux/хост-один
- Шаг 5. Доступ к Shinken Webui2
- Шаг 6. Распространенные проблемы с Shinken
- Ссылки
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