Netdata мониторинг в реално време

мониторинг

Вече разгледахме въпроса за наблюдението, събирането и съхраняването на показатели повече от веднъж в предишни публикации. Днес ще говорим за друг инструмент - Netdata. За разлика от други инструменти от подобен план, той е фокусиран върху събирането и визуализирането на показатели в реално време (ако е необходимо, можете да свържете бекенд за събиране и съхраняване на събраните показатели). С помощта на netdata можете да проследявате само огромен брой индикатори: статистика за използването на процесора, потребление на памет, I / O операции, мрежа (списъкът далеч не е пълен). Netdata също е оборудвана с плъгини за проследяване на различни услуги: Postfix, Squid, PHP-FPM и други.

В тази статия ще ви покажем как да инсталирате и конфигурирате Netdat на сървър, работещ с Ubuntu 16.04 OC.

Преди да продължим с инсталирането на Netdata, нека инсталираме всички необходими зависимости:

След като инсталацията приключи, клонирайте официалното хранилище на netdata:

Последната команда ще стартира скрипта за автоматично изграждане и инсталиране за Netdata. След като инсталацията приключи, Netdata е готова за работа. И ако промените някои настройки на конфигурацията, всичко ще работи с много по-голяма скорост и производителност. Ще говорим за това по-подробно в следващите раздели.

Активиране на дедупликацията на страницата

Ще започнем с активиране на KSM (Kernel Same-Page Merging, комбиниране на идентични страници с памет). Тази технология позволява страници от паметта да се споделят между различни процеси. Както самите създатели на Netdata уверяват в своя блог, той може да се използва за увеличаване на производителността с 40 - 60%.

Файлът rc.local (името му е съкращение от run control) е скрипт, койтокойто се изпълнява след стартиране на всички други услуги и процеси. Трябва да редактирате този файл по следния начин:

Първата команда записва едно във файла /sys/kernel/mm/ksm/run и по този начин активира KSM, а втората указва, че KSM демонът трябва да се изпълнява веднъж в секунда и да проверява 100 страници за дубликати.

KSM ще бъде активиран след рестартиране на сървъра.

Задайте периода на запазване на показателите

Всички настройки на Netdata са записани в конфигурационния файл /etc/netdata/netdata.conf.

В раздела [global] (в него са записани общи настройки) ще намерим параметъра за история. Стойността му е периодът (в секунди), през който се съхраняват събраните показатели. Консумацията на памет директно зависи от този период:

  • за съхраняване на данни за 3600 секунди (1 час) са необходими 15 MB RAM;
  • в рамките на 7200 секунди (2 часа) - 30 MB RAM;
  • в рамките на 14400 секунди (4 часа) - 60 MB RAM;
  • в рамките на 28800 секунди (8 часа) - 120 MB RAM;
  • в рамките на 43200 секунди (12 часа) - 180 MB RAM;
  • в рамките на 86400 секунди (т.е. дни) - 360 MB RAM.
Ето индикатори за стандартни табла за управление; за персонализирани табла за управление количеството консумирана памет може да бъде повече или по-малко. Задайте желаната стойност (в нашия случай е 14 400) и запазете промените.

Можете да прочетете повече за функциите за конфигуриране на Netdata в официалната документация.

Табла: структура и функции

Първото табло показва основните показатели на системата:

Следват графики за използване на ресурсите на процесора, потребление на памет, I / O операции, мрежадейности и други:

Можем да увеличим (или, обратно, да намалим) интервалите от време на диаграмите: за да направите това, преместете курсора на таблото, натиснете SHIFT и превъртете колелото на мишката. Към страницата могат да се добавят множество допълнителни графики; можете да прочетете повече за това тук.

Задаване на предупреждения

Някои типове сигнали в Netdata се конфигурират директно от кутията, по-специално:

  • известия за спиране на някое от наблюдаваните приложения;
  • известия за грешки на мрежови интерфейси;
  • сигнали за ниско дисково пространство.
Netdata също така изчислява колко свободно място остава на диска и колко време ще отнеме, за да остане свободно място; ако този период е по-малък от 48 часа.

Както можете да видите, за типични ситуации такива сигнали са повече от достатъчни. И ако трябва да настроите персонализирани сигнали, Netdata има специални шаблони, които са описани в конфигурационните файлове, съхранени в директорията /etc/netdata/health.d.

Нека разгледаме структурата и синтаксичните характеристики на тези шаблони. Да започнем със следния пример:

Тук всичко е интуитивно: шаблонът указва кога да се изпращат предупреждения за изчерпване на дисковото пространство. Нека анализираме структурата му.

Полето за шаблон съдържа името на шаблона. Полето on указва, че шаблонът трябва да се приложи към всички диаграми, където context=disk.space (т.е. към всички табла за управление със статистика за I/O операции). Полето calc е може би най-интересното за нас: то съдържа формулата, по която се изчислява критичното количество свободно дисково пространство. Изглежда така: $used * 100 / ($avail + $used). Както можете да предположите, $used е използваното количество, а $avail е безплатнодисково пространство.

В полето единици указваме, че показателят е изразен в проценти, а в полето всяко, че проверката трябва да се извършва веднъж в минута.

Обърнете внимание на полетата за предупреждение и критика: те показват стойностите, при които трябва да изпратите предупреждение (в нашия случай това е 80 -90%) и съобщение за критичната стойност на индикатора (98%).

Тук предоставяме само кратко описание; Можете да прочетете повече за шаблоните тук.

Ограничения

Като всеки инструмент, Netdata има своите ограничения и недостатъци. Първият недостатък е, че Netdata не може да се използва за наблюдение на клъстер от сървъри: трябва да се инсталира на всеки сървър поотделно. И ако тези сървъри са достъпни и от Интернет, тогава интерфейсът Netdata трябва да бъде затворен за външни посетители безпроблемно (: нападателите могат да използват данните за наблюдение като помощ при организирането на DOS атака.

Друг недостатък е поддръжката на много ограничен брой бекендове за съхраняване на показатели: днес Graphite и OpenTSDB са декларирани като такива. Разбира се, можете да „закрепите“ други бекенди (вижте тук), но не е толкова лесно, особено за начинаещи потребители, които нямат умения за програмиране.

Сред недостатъците на Netdata е необходимо също така да се подчертае недостатъчно подробната и лошо структурирана документация (засега тя е достъпна само в wiki на Github): понякога е изключително трудно да се намери отговорът на правилния въпрос в нея.

Заключение

В заключение, както обикновено, предоставяме полезни връзки за тези, които искат да научат повече: