Munin — статистика сервера

До недавнего времени статистику загруженности сетевого интерфейса я просматривал благодаря ntop и vnstat . К сожалению ntop не зарекомендовал себя как надежное решение. Vnstat в свою очерерь работает весьма надежно, но при этом выдает статистику в очень общем виде. Посему избавимся от ntop и попробуем munin.


Munin позволяет просматривать через web-интерфейс разнообразную статистику сервера. И самое главное рисует графики наподобие MRTG, а также весьма прост в установке. Пример выдаваемой статистики можно посмотреть тут .

В моем распоряжении два сервера под управлением debian lenny со следующими ip:
munin-сервер — 192.168.2.1, 203.0.113.1
munin-клиент — 192.168.2.2
munin-win-клиент – 192.168.2.3

Munin-сервер

Устанавливаем сервер и клиент:















aptitude









 









install















 munin munin-node










Изменяем некоторые параметры /etc/munin/munin.conf:





















# Я консолидирую всю используемую статистику 
































# на одном доменном имени — http://st.example.com/ 
































# Там же расместим и munin, соответственно:
































#htmldir	/var/www/munin
















htmldir	









/









var









/









www









/









st









/









munin
 
















#Задаем параметры хостов:


























[















host1.example.com















]
















    address 127.0.0.1












    use_node_name 















yes










 
















#Дополнительный сервер (munin-клиент)


























[















host2.example.com















]
















    address 192.168.2.2












    use_node_name 















yes










 
















#Win-клиент


























[















host3.example.com















]
















    address 192.168.2.3












    use_node_name 















yes














Создаем каталог и задаем владельца:















mkdir









 









/









var









/









www









/









st









/









munin










chown















 munin:munin munin










Добавляем описание munin к соответствующему виртуалхосту со статистикой. На самом то деле это можно и не делать, всмысле прописывать munin в файле виртуалхоста приведенного ниже. Я это сделал для наглядности. Можно, например, задать доступ к каталогу munin лишь с определенного ip. Главное не забыть создать виртуалхост со всей статистикой:















<















VirtualHost 















*









:









80



















>
















    ServerName st.example.com












    ServerAlias www.st.example.com






 
    









# SSL
















    RewriteEngine On












    RewriteCond 















%



















{









HTTPS









}









 off






    RewriteRule 















(









.









*



















)









 https:









//%



















{















HTTP_HOST















}



















%



















{















REQUEST_URI















}










 
 
    ErrorLog 















"/var/log/apache2/st.example.com-error.log"






















    CustomLog 





















"/var/log/apache2/st.example.com-access.log"















 common
 










</















VirtualHost















>










 
















# Для внутреннего доступа


























<















VirtualHost 192.168.2.1:















443



















>
















    ServerAdmin admin















@















example.com












    DocumentRoot 















/









var









/









www









/









st






    ServerName st.example.com












    ServerAlias www.st.example.com






 
    ErrorLog 















"/var/log/apache2/st.example.com-ssl-error.log"






















    CustomLog 





















"/var/log/apache2/st.example.com-ssl-access.log"















 common
 
    









<















Directory 















/









var









/









www









/









st









>
















	AllowOverride None












	Order Allow,Deny












	Allow from 192.168.2.






	















#Allow from all
















 
	















# Аунтификация






















	AuthType Basic






	















# Описание при запросе логина и пароля
















	AuthName 















"Statistics"






















	AuthBasicProvider 















file
















	AuthUserFile 















/









var









/









www









/









st









/















.htpasswd












	Require valid-user






 
    









</















Directory















>










 
    















# Сертификаты






















    GnuTLSEnable on












    GnuTLSPriorities NORMAL












    GnuTLSCertificateFile 















/









etc









/









apache2









/









ssl









/















example.com.crt












    GnuTLSKeyFile 















/









etc









/









apache2









/









ssl









/















example.com.key






 
 
    















# Eximstats
















    









<















Directory 















/









var









/









www









/









st









/















eximstats















>
















	DirectoryIndex eximstats.html






    









</















Directory















>










 
    









# sqstat










    









<















Directory 















/









var









/









www









/









st









/









sqstat









>
















	DirectoryIndex sqstat.php






    









</















Directory















>










 
    















# lightsquid
















    









<















Directory 















/









var









/









www









/









st









/















lightsquid















>
















	AddHandler cgi-script .cgi












	AllowOverride All






    









</















Directory















>










 
    















# vnstat PHP frontend
















    









<















Directory 















/









var









/









www









/









st









/









vnstat









>
















	DirectoryIndex index.php






    









</















Directory















>










 
    









# ups










    Redirect 









/









ups http:









//















example.com















/









cgi-bin









/









apcupsd









/















multimon.cgi






 
    









# Awstst










    Redirect 









/









awstats









/















example.net http:















//















example.net















/









cgi-bin









/















awstats.pl






    Redirect 









/









awstats









/















example.com http:















//















example.com















/









cgi-bin









/















awstats.pl






 
    









# Munin










    









<















Directory 















/









var









/









www









/









st









/









munin









>
















	DirectoryIndex index.html






    









</















Directory















>










 










</















VirtualHost















>










 
 
 
















# Для внешнего доступа


























<















VirtualHost 203.0.113.1:















443



















>
















    ServerAdmin admin















@















example.com












    DocumentRoot 















/









var









/









www









/









st






    ServerName st.example.com












    ServerAlias www.st.example.com






 
    ErrorLog 















"/var/log/apache2/st.example.com-ssl-error.log"






















    CustomLog 





















"/var/log/apache2/st.example.com-ssl-access.log"















 common
 
    









<















Directory 















/









var









/









www









/









st









>
















	AllowOverride None












	Order Allow,Deny






	















#Allow from 203.0.113.1






















	Deny from all






 
	















# Аунтификация






















	AuthType Basic






	















# Описание при запросе логина и пароля
















	AuthName 















"Statistics"






















	AuthBasicProvider 















file
















	AuthUserFile 















/









var









/









www









/









st









/















.htpasswd












	Require valid-user






 
    









</















Directory















>










 
    















# Сертификаты






















    GnuTLSEnable on












    GnuTLSPriorities NORMAL












    GnuTLSCertificateFile 















/









etc









/









apache2









/









ssl









/















example.com.crt












    GnuTLSKeyFile 















/









etc









/









apache2









/









ssl









/















example.com.key






 
 
    















# Eximstats
















    









<















Directory 















/









var









/









www









/









st









/















eximstats















>
















	DirectoryIndex eximstats.html






    









</















Directory















>










 
    









# sqstat










    









<















Directory 















/









var









/









www









/









st









/









sqstat









>
















	DirectoryIndex sqstat.php






    









</















Directory















>










 
    















# lightsquid
















    









<















Directory 















/









var









/









www









/









st









/















lightsquid















>
















	AddHandler cgi-script .cgi












	AllowOverride All






    









</















Directory















>










 
    















# vnstat PHP frontend
















    









<















Directory 















/









var









/









www









/









st









/









vnstat









>
















	DirectoryIndex index.php






    









</















Directory















>










 
    









# ups










    Redirect 









/









ups http:









//















example.com















/









cgi-bin









/









apcupsd









/















multimon.cgi






 
    









# Awstst










    Redirect 









/









awstats









/















example.net http:















//















example.net















/









cgi-bin









/















awstats.pl






    Redirect 









/









awstats









/















example.com http:















//















example.com















/









cgi-bin









/















awstats.pl






 
    









# Munin










    









<















Directory 















/









var









/









www









/









st









/









munin









>
















	DirectoryIndex index.html






    









</















Directory















>










 










</















VirtualHost















>














Запускаем munin:















/









etc









/









init.d









/















munin-node start










Заходим на страницу статистики munin — http://st.example.com/munin/

Мониторинг дополнительного сервера (munin-клиент)

Linux

Устанавливаем:















aptitude









 









install















 munin-node










Добавляем в /etc/munin/munin-node.conf адрес нашего munin-сервера:





allow ^









192















\.168\.2\.1$










Стартуем:















/









etc









/









init.d









/















munin-node start










Перезапускаем munin на munin-сервере:















/









etc









/









init.d









/















munin-node restart










Через некоторое время можно будет наблюдать статистику дополнительного клиента.

Windows

Скачиваем клиент для windows





http:









//















sourceforge.net















/









projects









/















munin-nodewin32















/









files









/















munin-node-win32















/









Munin









%









20Node









%









20for









%















20Windows















%









20v1.5









/















munin-node-win32-v1.5.1942.msi















/









download




Проверяем доступность ноды:











telnet 192.168.2.3 















4949
















Trying 192.168.2.3... 












Connected to host3.example.com.












Escape character is 















'^]'









. 
















# munin node at host3
















list 










df















 memory processes network cpu hdd speedfan 












fetch memory 












apps.value 





















2074263552















 






swap.value 















0









 






free.value 





















2722803712




















Через некоторое время можно будет наблюдать статистику win-клиента.

Плагины

В каталоге /etc/munin/plugins можно посмотреть активные на данный момент плагины.
В каталоге /usr/share/munin/plugins находятся все доступные плагины.
Также есть соответствующая команда для просмотра доступных плагинов:











munin-node-configure










Вот что она нам покажет:





Plugin                     









|









 Used 









|















 Extra information                      
















------









                     









|









 









----









 









|









 















-----------------















                      
acpi                       









|









 









yes









  









|









                                        
amavis                     









|









 no   









|









                                        






apache_accesses            















|









 









yes









  









|









                                        






apache_processes           















|









 









yes









  









|









                                        






apache_volume              















|









 









yes









  









|









                                        
...
if_                        









|









 









yes









  









|









 eth0 eth1                              
if_err_                    









|









 









yes









  









|









 eth0 eth1                              
...      
sensors_                   









|









 









yes









  









|















 fan volt temp                          






smart_                     









|









 









yes









  









|









 sdb sda




Используя ключ —suggest можно выявить причину неработоспособности того или иного плагина:











munin-node-configure 





















--suggest
























Plugin                     









|









 Used 









|















 Suggestions                            
















------









                     









|









 









----









 









|









 















-----------















                            
...
if_                        









|









 









yes









  









|









                                        
if_err_                    









|









 









yes









  









|









                                        
ip_                        









|









 no   









|









                                        
...






nfs_client                 















|









 no   









|









 









[









no 









/









proc









/









net









/









rpc









/









nfs









]









                 
nfsd                       









|









 no   









|









 









[









no 









/









proc









/









net









/









rpc









/









nfsd









]









                






postfix_mailqueue          















|









 no   









|









 









[















spooldir not found















]









                   






postfix_mailvolume         















|









 no   









|









 









[















postfix not found















]














Например, мы видим проблему с плагином postfix_mailqueue. Но в данном случае в этом нет ничего удивительного, так как я использую exim.

Чтобы проверить возможность запуска плагина можно воспользоваться ключом autoconf:















/









usr









/









share









/









munin









/









plugins









/















apache_accesses 















autoconf










no 









(















no apache server-status or ExtendedStatus missing on ports 















80



















)














Тут мы видим, что с запуском плагина apache_accesses проблема связанная, по всей видимости, с невозможностью подключиться к статистике апача.
Кстати, эта проблема у меня была из-за того, что я на сервере использую GnuTLS и заходя по ip в каталог server-status апач автоматически перебрасывал меня на защищенное соединение https. Выход оказался до безобразия простым. Если заходить по имени, например, localhost то мы без проблем попадаем на статистику апача — http://localhost/server-status. Итого достаточно было в плагине apache_accesses заменить стоку “http://127.0.0.1:%d/server-status?auto” на “http://localhost:%d/server-status?auto”

Работоспособность плагина проверяется командами:















/









etc









/









munin









/









plugins









/















apache_accesses












accesses80.value 















19911














либо











munin-run apache_accesses












accesses80.value 















19943














Выше мы видим нормально функционирующий плагин apache_accesses. А вот пример не работающего плагина:















/









etc









/









munin









/









plugins









/















mysql_slowqueries












queries.value U










Если вы хотите добавить новый плагин то достаточно сделать соответствующий симлинк:















ln









 









-s









 









/









usr









/









share









/









munin









/









plugins









/



















uptime









 









/









etc









/









munin









/









plugins









/



















uptime














Если вам не нужна статистика определенного плагина достаточно удалить симлинк этого плагина из /etc/munin/plugins.

Для примера разберем работу с плагином sensors_
sensors_ показывает температуру, скорость вращения вентиляторов и вольтаж.
Устанавливается элементарно:















ln









 









-s









 









/









usr









/









share









/









munin









/









plugins









/









sensors_ 









/









etc









/









munin









/









plugins









/















sensors_temp
















ln









 









-s









 









/









usr









/









share









/









munin









/









plugins









/









sensors_ 









/









etc









/









munin









/









plugins









/















sensors_fan
















ln









 









-s









 









/









usr









/









share









/









munin









/









plugins









/









sensors_ 









/









etc









/









munin









/









plugins









/















sensors_volt










Проверим показания сенсоров:





sensors






w83627thf-isa-0290 






temp3:       -









48.0









°C  









(









high = +









80.0















°C, hyst = +















75.0









°C









)















  sensor = thermistor










Как видно сенсор зоны temp3 показывает явно недостоверную температуру. И созерцать это на графике нет никакого желания.
Автором плагина sensors_ предусмотрена возможность отключать ненужные параметры. К сожалению эта функция в данном плагине корректно не работет.
Выйти из положения можно следующим образом — занести в файл /etc /sensors3.conf значение «ignore temp3»(без кавычек).

По умолчанию в нашем распоряжении 99 плагинов:















ls









 









/









usr









/









share









/









munin









/









plugins









/









 









|



















wc









 









-l




















99














Если вам этого мало, то можно установить дополнительные плагины:















aptitude









 









install















 munin-plugins-extra










Итого, теперь в нашем распоряжении 138 плагинов:















ls









 









/









usr









/









share









/









munin









/









plugins









/









 









|



















wc









 









-l




















138














Ссылки


  1. Munin

  2. Установка и настройка Munin в Debian / Ubuntu

  3. Monitoring Multiple Systems With munin (Debian Etch)

  4. Простой мониторинг серверов. Munin

Похожие статьи:

6 комментариев

  1. max :

    А у вас нормально плагин cpu для винклиента правильно отрабатывает?

  2. max :

    А версия форточек какая была? У меня проблема с форточками 2к8r2.. Самое ужасное, что snmp тоже что-то не отрабатывает как надо. Я нашел несколько форков munin0mode-win32, но они либо не запускаются, либо работают также =)

  3. Я так и подумал =) Ладно, ещё помучаюсь, вроде понял примерно как решается. Спасибо.

  4. funvit :

    спасибо за наводку на munin-node-configure — помогло с mongodb плагинами!

Оставить комментарий