WWW.LUSHNIKOV.NET

linux

Мой конфиг для MRTG

Будем рисовать графики загрузки сети, CPU, памяти и т.д.
Получиться должно примерно так:

Установить на debian 10:

# apt install nginx-light mrtg snmpd

Написать в /etc/snmp/snmpd.conf:

agentAddress  udp:127.0.0.1:161
com2sec AllUser default public
group AllGroup v1 AllUser
view SystemView included .1.3.6.1.2.1.1
view SystemView included .1.3.6.1.2.1.25.1.1
view AllView included .1
access AllGroup "" any noauth exact AllView none none

Поправить уровень логгирования в snmpd: snmpd options и systemd

Перезапустить snmpd:

# /etc/init.d/snmpd restart

Сгенерировать конфиг:

# cfgmaker public@localhost > /etc/mrtg.cfg

Посмотреть внимательно в конфиг и найти, как называется внешний интерфейс. В примере конфига (см.ниже) это localhost_2.

Пример конфига, в котором надо поменять только цифру в локальном интерфейсе (2 на то, что нашлось в предыдущем пункте) и количество тредов в процессоре:

WorkDir: /var/www/html
EnableIPv6: no

#Network Usage

Target[localhost_2]: 2:public@localhost:
MaxBytes[localhost_2]: 125000000
Options[localhost_2]: growright
Title[localhost_2]: Traffic Analysis
PageTop[localhost_2]: <h1>Traffic Analysis</h1>

# CPU Load and Load Average

Target[load]: (.1.3.6.1.4.1.2021.11.9.0&.1.3.6.1.4.1.2021.10.1.5.2:public@localhost + .1.3.6.1.4.1.2021.11.10.0&PseudoZero:public@localhost) * (.1.3.6.1.2.1.25.6.3.1.1.16&PseudoOne:public@localhost) / 2
#                                                                                                                                                                       ^^
#                                                                                   CPU count:                                                                          ||
#                                                                                               grep ^processor /proc/cpuinfo  | wc -l               ===================//
MaxBytes[load]: 100000
YLegend[load]: Usage
Options[load]: nopercent,growright,noinfo,gauge,unknaszero
LegendI[load]: CPU
LegendO[load]: Load
Legend1[load]: CPU
Legend2[load]: Load
YTicsFactor[load]: 0.01
Factor[load]: 0.01
ShortLegend[load]: &nbsp;
Title[load]: CPU Usage and Load Average
PageTop[load]: <h1>CPU Usage and Load Average</h1>

# TCP Connections

Target[tcp]: .1.3.6.1.2.1.6.6.0&.1.3.6.1.2.1.6.6.0:public@127.0.0.1
MaxBytes[tcp]: 1000000
Options[tcp]: perminute,nopercent,growright,noinfo,unknaszero
Title[tcp]: Newly Created Connections
PageTop[tcp]: <h1>Newly Created Connections</h1>
YLegend[tcp]: Conn per minute
LegendI[tcp]: Connections
LegendO[tcp]: Connections
Legend1[tcp]: Connections
Legend2[tcp]: Connections
ShortLegend[tcp]: per minute
Colours[tcp]: GREEN#00eb0c,GREEN#00eb0c,DARK GREEN#006600,VIOLET#ff00ff


Target[mem]: .1.3.6.1.4.1.2021.4.5.0&.1.3.6.1.4.1.2021.4.5.0:public@127.0.0.1 - .1.3.6.1.4.1.2021.4.6.0&PseudoZero:public@127.0.0.1 - .1.3.6.1.4.1.2021.4.14.0&PseudoZero:public@127.0.0.1 - .1.3.6.1.4.1.2021.4.15.0&PseudoZero:public@127.0.0.1

MaxBytes1[Mem]: 1000000000
MaxBytes2[Mem]: 1000000000
Colours[mem]: GREEN#00eb0c,RED#ff0000,DARK GREEN#006600,VIOLET#ff00ff
Options[Mem]: gauge, growright
YLegend[Mem]: Memory Used (Bytes)
ShortLegend[Mem]: Bytes
kilo[Mem]: 1024
kMG[Mem]: k,M,G,T,P
LegendI[Mem]: Used
LegendO[Mem]: Total
Legend1[Mem]: Memory Used [MBytes]
Legend2[Mem]: Memory Total [MBytes]
Title[Mem]: Memory Used
PageTop[Mem]: <H1>Memory Used</H1>

Сгенерировать index.html:

# indexmaker /etc/mrtg.cfg > /var/www/html/index.html

Задача в крон уже добавлена (см /etc/cron.d/mrtg).

Бонус: пояснение по поводу графика CPU Usage and Load Average и странной формулы.

В Linux можно получить по SNMP три полезных для этого графика значения:
.1.3.6.1.4.1.2021.11.9.0 – percentage of user CPU time
.1.3.6.1.4.1.2021.11.10.0 – percentages of system CPU time
.1.3.6.1.4.1.2021.10.1.5.2 – CPU load 5-min average

Первые два приходят в процентах (и мы их просто суммируем), третье – в попугаях. Нельзя просто так взять и выбросить всё это на один график. Но можно подобрать коэффициент, который сделает CPU Load и Load Average численно сопоставимыми, а график осмысленным. Этот коэффициент – количество тредов в процессоре. Просто так на написанную руками цифру MRTG умножить не даст. Ну то есть даст, но умножит на него и CPU Load и Load Average. А умножить только CPU Load можно либо на PseudoOne, либо на PseudoZero, либо на значение какой-либо другой записи. Готовой записи, которая отдавала бы количество тредов, в MIB нет. Но есть запись .1.3.6.1.2.1.25.6.3.1.1, которая содержит в себе пронумерованный список установленных пакетов. И если обратиться к например восьмому элементу этого списка, то мы получим число 8. Грязно, но подходит.

Tags:

Leave a Reply