Munin объединяет график сетевого трафика с нескольких серверов

Я просматривал вики и документацию munin, пробовал различные комбинации для настройки пользовательских графиков, но все закончилось безуспешно.

Дело в том, что я вообще не могу понять механизм создания настраиваемых графиков, и все, что я делал, было методом проб и ошибок, не понимая, что на самом деле произошло. Документы Munin по этому поводу очень скудны.

Я просто пытаюсь создать график с сетевым трафиком с 5 серверов, чтобы можно было быстро сравнить трафик на каждом из них.

Я отслеживаю только if_eth0 на 5 серверах и хочу иметь еще один график со всеми 5 серверами, показанными на нем.

1
задан 6 July 2016 в 14:29
2 ответа

В /etc/munin/munin.conf по умолчанию (стабильная версия 2.0) вы найдете этот шаблон:

# A more complex example of a host tree
#
## First our "normal" host.
# [fii.foo.com]
#       address foo
#
## Then our other host...
# [fay.foo.com]
#       address fay
#
## IPv6 host. note that the ip adress has to be in brackets
# [ip6.foo.com]
#       address [2001::1234:1]
#
## Then we want totals...
# [foo.com;Totals] #Force it into the "foo.com"-domain...
#       update no   # Turn off data-fetching for this "host".
#
#   # The graph "load1". We want to see the loads of both machines...
#   # "fii=fii.foo.com:load.load" means "label=machine:graph.field"
#       load1.graph_title Loads side by side
#       load1.graph_order fii=fii.foo.com:load.load fay=fay.foo.com:load.load
#
#   # The graph "load2". Now we want them stacked on top of each other.
#       load2.graph_title Loads on top of each other
#       load2.dummy_field.stack fii=fii.foo.com:load.load fay=fay.foo.com:load.load
#       load2.dummy_field.draw AREA # We want area instead the default LINE2.
#       load2.dummy_field.label dummy # This is needed. Silly, really.
#
#   # The graph "load3". Now we want them summarised into one field
#       load3.graph_title Loads summarised
#       load3.combined_loads.sum fii.foo.com:load.load fay.foo.com:load.load
#       load3.combined_loads.label Combined loads # Must be set, as this is
#                                                 # not a dummy field!
#
## ...and on a side note, I want them listen in another order (default is
## alphabetically)
#
# # Since [foo.com] would be interpreted as a host in the domain "com", we
# # specify that this is a domain by adding a semicolon.
# [foo.com;]
#       node_order Totals fii.foo.com fay.foo.com

В этом примере создается новый график, показывающий загрузку двух серверов (взят из http://munin-monitoring.org/wiki/LoaningData ):

[example.org;Overview]
address 127.0.0.1 
use_node_name no
update no

loadall.update no
loadall.graph_title Load of all servers
loadall.graph_args --base 1000  
loadall.graph_vlabel Load
loadall.graph_scale no
loadall.graph_category system

loadall.graph_order \
    Server1=sv1.example.org:load.load \
    Server2=sv2.example.org:load.load
0
ответ дан 4 December 2019 в 06:08

Первое, что не сразу становится очевидным, - это то, что каждый хост должен принадлежать какой-то группе. Итак, этот синтаксис является недействительным :

[;myhost]
    address  ip.add.re.ss;

Таким образом вы получите группу без хостов:

[myhost;]
    ...

Вы можете проверить это, добавив следующий код после следующая строка :

foreach my $k (keys %$gah) {
    DEBUG "-- $k";
    foreach my $h (keys %{$gah->{$k}{'hosts'}}) {
        DEBUG "   $h";
    }
}

Затем запустите (много вывода, возможно, вы захотите добавить | tail -n 100 или что-то в этом роде):

$ su - munin -s /bin/bash -c '/usr/share/munin/munin-update --debug'
...
2019/06/14 16:31:43 -- myhost1
2019/06/14 16:31:43 -- myhost2
2019/06/14 16:31:43    myhost2
2019/06/14 16:31:43 -- myhost3
2019/06/14 16:31:43    myhost3
...

Итак,

[myhost]                 # group "myhost", conaining host "myhost"
[foo.com]                # group "com", containing host "foo.com"
[group;foo.com]          # group "group", containing host "foo.com"
[group1;group2;foo.com]  # group "group1", containing group "group2",
                         # which in its turn contains host "foo.com"

С этим из кстати, синтаксис в основном следующий:

[group1;host1]
    ...
[group1;host2]
    ...
[group1;virt_host1]
    virt_plugin1.graph_title Some title
    virt_plugin1.graph_order resulting_field_name1=host1:plugin1.field_name1 resulting_field_name2=host2:plugin2.field_name2

virt_plugin1 , result_field_name1 , result_field_name2 - все имена произвольные. virt_plugin1 отображается в хлебных крошках страницы. result_field_name * становится меткой графика. Если вы не переопределите его:

[group1;virt_host1]
    ...
    virt_plugin1.resulting_field_name1.label = my_field_name

Относительно того, где получить (как подтвердить) имена подключаемых модулей и полей (источники данных):

$ nc host1 4949
# munin node at host1
fetch plugin1
field_name1.value 0.17
.

Затем, если вы заимствуете данные из другой группы, вы должны указать это явно :

[group1;host1]
    ...
[group2;host2]
    ...
[group2;virt_host1]
    virt_plugin1.graph_title Some title
    virt_plugin1.graph_order resulting_field_name1=group1:host1.plugin1.field_name1 resulting_field_name2=host2:plugin2.field_name2

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

Когда html_strategy равно cgi , munin-html (как часть munin-cron ) записывает состояние в / var / lib / munin / htmlconf.сохраняются каждые 5 минут . Состояние содержит настройки каждого хоста и используется munin-cgi-html в качестве конфигурации .

Итак, либо вы ждете следующего update или инициируйте обновление самостоятельно:

$ su - munin -s /bin/bash -c /usr/share/munin/munin-html

Или:

$ su - munin -s /bin/bash -c munin-cron

В той же жилке , munin-update обновляет / var / lib / munin / datafile.storable . Но часть файла данных помечена как включает базу , в отличие от htmlconf . Это означает, что содержимое /etc/munin/munin.conf объединено в часть файла данных . И munin-cgi-graph использует часть файла данных для конфигурации .

Таким образом, вы можете просто перезапустить munin-cgi-graph чтобы он заметил изменения.

И последняя вещь , munin-cgi-graph устанавливает заголовок Expires . Это означает, что вам нужно каким-то образом сбросить / отключить кеш браузера, чтобы браузер сделал запрос.

Если вы уведомите одного из них, но не другого ... Позвольте мне оставить это в качестве упражнения для читателя :)

0
ответ дан 4 December 2019 в 06:08

Теги

Похожие вопросы