[image]

Мониторинг сервера Авиабазы. Возможность заглянуть в душу сервера :)

 
+
-
edit
 

Balancer

администратор
★★★★★
Всё самое интересное на Munin :: airbase :: airbase :)

Примечание: параметры загрузки lighttpd умножайте на 12. Там плагин упрощённый, выдаёт информацию только одного из 12 потоков.
   
+
-
edit
 

Harsky

опытный

Balancer> Всё самое интересное на Munin :: airbase :: airbase :)
Balancer> Примечание: параметры загрузки lighttpd умножайте на 12. Там плагин упрощённый, выдаёт информацию только одного из 12 потоков.

а статистика чем собиралась / отрисовывалась?
   2.0.0.172.0.0.17
+
-
edit
 

Balancer

администратор
★★★★★
Harsky> а статистика чем собиралась / отрисовывалась?

В шапке и отмечено: Munin.

code text
  1. $ eix munin
  2. * net-analyzer/munin
  3.      Available versions:  ~1.3.2 ~1.3.2-r1 ~1.3.2-r2 ~1.3.2-r3 ~1.3.3 ~1.3.3-r1 ~1.3.3-r2 ~1.3.4 1.3.4-r1 {doc irc minimal munin-apache munin-dhcp munin-irc munin-squid munin-surfboard mysql postgres ssl}
  4.      Homepage:            http://munin.sourceforge.net
  5.      Description:         Munin Server Monitoring Tool
   
+
-
edit
 

Harsky

опытный

Harsky>> а статистика чем собиралась / отрисовывалась?
Balancer> В шапке и отмечено: Munin.

ясно. у меня с "Munin" никаких ассоциаций нет, отсюда и вопрос
   2.0.0.172.0.0.17
RU Спокойный_Тип #11.11.2008 23:27  @Harsky#06.11.2008 02:27
+
-
edit
 
круто, эта штука будет мощнее классического мртг, а по snmp умеет опрашивать?
   7.07.0
RU Balancer #12.11.2008 00:00  @спокойный тип#11.11.2008 23:27
+
-
edit
 

Balancer

администратор
★★★★★
Спокойный_Тип> круто, эта штука будет мощнее классического мртг, а по snmp умеет опрашивать?

Да. Даже в базовой поставке большой комплект snmp-плагинов.

Вот умеет ли сама отдавать данные по snmp - не помню.
   
+
-
edit
 

Harsky

опытный

меня тут на днях коллеги активно просклоняли для них (для всей сетки всмысле) сделать мониторинг с помощью zabbix
если кому-то интересны результаты, то напишу
   2.0.0.172.0.0.17
+
-
edit
 

HolyBoy

аксакал

После того, как нагляделся на nagios у знакомых, решил таки поднять себе munin.

Разумеется, поставил и настроил в основном без проблем. Когда стал смотреть, оказалось, что существуют некоторые сложности с плагинами.

К примеру, берём плагин postfix_mailvolume:

code perl
  1. #!/usr/bin/perl -w
  2.  
  3. =head1 NAME
  4.  
  5. postfix_mailvolume - Plugin to monitor the volume of mails delivered
  6.   by postfix.
  7.  
  8. =head1 APPLICABLE SYSTEMS
  9.  
  10. Any postfix.
  11.  
  12. =head1 CONFIGURATION
  13.  
  14. The following shows the default configuration.
  15.  
  16.   [postfix*]
  17.     env.logdir /var/log
  18.     env.logfile syslog
  19.  
  20. =head1 INTERPRETATION
  21.  
  22. The plugin shows the number of bytes of mail that has passed through
  23. the postfix installation.
  24.  
  25. =head1 MAGIC MARKERS
  26.  
  27.   #%# family=auto
  28.   #%# capabilities=autoconf
  29.  
  30. =head1 BUGS
  31.  
  32. None known
  33. (ага, щаззз)
  34. =head1 VERSION
  35.  
  36.  $Id: postfix_mailvolume.in 1532 2008-03-04 20:10:28Z janl $
  37.  
  38. =head1 AUTHOR
  39.  
  40. Copyright (C) 2002-2008.
  41.  
  42. No author is documented.
  43.  
  44. =head1 LICENSE
  45.  
  46. GPLv2
  47.  
  48. =cut
  49.  
  50. use strict;
  51. use Munin::Plugin;
  52.  
  53. my $pos   = undef;
  54. my $volume = 0;
  55. my $LOGDIR  = $ENV{'logdir'}  || '/var/log';
  56. my $LOGFILE = $ENV{'logfile'} || 'syslog';
  57.  
  58. sub parseLogfile {
  59.     my ($fname, $start) = @_;
  60.  
  61.     my ($LOGFILE,$rotated) = tail_open($fname,$start);
  62.  
  63.     my $line;
  64.  
  65.     while ($line =<$LOGFILE>) {
  66.         chomp ($line);
  67.  
  68.         if ($line =~ /qmgr.*from=.*size=([0-9]+)/) {
  69.             $volume += $1;
  70.         }
  71.     }
  72.     return tail_close($LOGFILE);
  73. }
  74.  
  75. if ( $ARGV[0] and $ARGV[0] eq "autoconf" ) {
  76.     my $logfile;
  77.     `which postconf >/dev/null 2>/dev/null`;
  78.     if (!$?) {
  79.         $logfile = "$LOGDIR/$LOGFILE";
  80.  
  81.         if (-f $logfile) {
  82.             if (-r "$logfile") {
  83.                 print "yes\n";
  84.                 exit 0;
  85.             } else {
  86.                 print "no (logfile '$logfile' not readable)\n";
  87.             }
  88.         } else {
  89.             print "no (logfile '$logfile' not found)\n";
  90.         }
  91.     } else {
  92.         print "no (postfix not found)\n";
  93.     }
  94.  
  95.     exit 1;
  96. }
  97.  
  98.  
  99. if ( $ARGV[0] and $ARGV[0] eq "config" ) {
  100.     print "graph_title Postfix bytes throughput\n";
  101.     print "graph_args --base 1000 -l 0\n";
  102.     print "graph_vlabel bytes / \${graph_period}\n";
  103.     print "graph_scale yes\n";
  104.     print "graph_category postfix\n";
  105.     print "volume.label throughput\n";
  106.     print "volume.type DERIVE\n";
  107.     print "volume.min 0\n";
  108.     exit 0;
  109. }
  110.  
  111.  
  112. my $logfile = "$LOGDIR/$LOGFILE";
  113.  
  114. if (! -f $logfile) {
  115.     print "delivered.value U\n";
  116.     exit 1;
  117. }
  118.  
  119. ($pos,$volume) = restore_state();
  120.  
  121. if (!defined($volume)) {
  122.    
  123.     # No state file present.  Avoid startup spike: Do not read log
  124.     # file up to now, but remember how large it is now, and next
  125.     # time read from there.
  126.  
  127.     $pos = (stat $logfile)[7]; # File size
  128.  
  129.     $volume = 0;
  130. } else {
  131.     $pos = parseLogfile ($logfile, $pos);
  132. }
  133.  
  134. print "volume.value $volume\n";
  135.  
  136. save_state($pos,$volume);
  137.  
  138. # vim:syntax=perl


После внесения соответствующих моей системе изменений и запуска оного плагина, в логах мунина идёт ругань на delivered, который ранее не был определён. Ок, правим далее:
code bash
  1. # diff postfix_mailvolume postfix_mailvolume.orig
  2. 56c56
  3. < my $LOGFILE = $ENV{'logfile'} || 'mail.log';
  4. ---
  5. > my $LOGFILE = $ENV{'logfile'} || 'syslog';
  6. 115c115
  7. <     print "volume.value Unknown\n";
  8. ---
  9. >     print "delivered.value U\n";


Перезапускаем munin-node, вроде ругани в логах нет. Пробуем исполнить этот файл:
code bash
  1. # sudo -u munin ./postfix_mailvolume
  2. volume.value 32625
  3. # sudo -u munin ./postfix_mailvolume config
  4. graph_title Postfix bytes throughput
  5. graph_args --base 1000 -l 0
  6. graph_vlabel bytes / ${graph_period}
  7. graph_scale yes
  8. graph_category postfix
  9. volume.label throughput
  10. volume.type DERIVE
  11. volume.min 0
  12. # sudo -u munin ./postfix_mailvolume autoconf
  13. yes


Всё вроде в порядке, файл /var/lib/munin/plugin-state/postfix_mailvolume создался автоматом и меняет свои значения после каждого распарсивания:

code text
  1. %MUNIN-STATE1.0
  2. 153602792
  3. 32625


Вот только график не строится. Не показываются изменения. Шоделать? :)
   
+
-
edit
 

Balancer

администратор
★★★★★
munin-run postfix_mailvolume что говорит?

А если в логах дебаг-уровень повысить?

...

Я, когда свои плагины лепил (правда, хватало bash'а) тоже пару раз нарывался на неработоспособность, но у меня обычно глюки были в правах доступа к скрипту плагина.
   
+
-
edit
 

HolyBoy

аксакал

Balancer> Я, когда свои плагины лепил (правда, хватало bash'а) тоже пару раз нарывался на неработоспособность, но у меня обычно глюки были в правах доступа к скрипту плагина.

Попробую уровень логов поднять, это да, что-то не сообразил. :)

Но здесь я пытаюсь воспользоваться стандартным плагином из поставки. У тебя, кстати, крутится этот график. Если не трудно, можешь текст плагина положить?
   
+
-
edit
 

Balancer

администратор
★★★★★
Нет, за почтой не слежу.
   
+
-
edit
 
+
-
edit
 

Balancer

администратор
★★★★★
HolyBoy> http://admin.airbase.ru/munin/airbase/airbase/postfix_mailvolume.html

Это «из коробки». Добавил, чтоб было. Даже не смотрел, соответствует ли истине или нет :)
   

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru