Мониторинг сервера своими руками

Мониторинг игровых серверов своими руками

Большинству из игроков знакомы сайты мониторинга серверов http://www.gametracker.com/ или http://www.gamearmy.ru. Однако есть менее громоздкие и более практичные способы организации локального мониторинга. В этой статье я расскажу о том, как просто и быстро разместить у себя на странице элемент вывода мониторинга игровых серверов.

Для начала необходимо скачать бесплатную php библиотеку GameQ, которая содержит средства для получения сбора данных с серверов более чем 100 различных игр. Установите ее в папку со страницей, на которой будет выведен мониторинг.

Далее в саму страницу вставьте следующий код:

//создание объекта GameQ, добавление в него списка серверов
$gq = new GameQ();
$gq->addServers($servers);

//Дополнительные настройки
$gq->setOption(‘timeout’, 200);
$gq->setFilter(‘normalise’);
$gq->setFilter(‘sortplayers’, ‘gq_ping’);

//Опрос серверов
$results = $gq->requestData();

function insert_var($results, $s_id, $name, $is_und) <

foreach ($results as $id => $data) <
if($id == $s_id) <
print_var($data, $name, $is_und);
return;
>
>
>

//Функция выборки конкретного значения из данных опроса
function print_var($data, $name, $is_und) <

foreach ($data as $key => $val) <

if (is_array($val)) continue;

Затем в необходимом месте страницы вызывать функцию

    $results – массив данных опроса, в нашем примере их имена совпадают: $results;
    $s_id – имя сервера, указаное в массиве $servers в примере ‘killingfloor’;
    $name – имя выводимого параметра, для каждой игры они разные. Список доступных можно получить, добавив свой сервер в такой же массив файла example.php, входящего в состав библиотеки GameQ;
    $is_und – ключ, при установке в 1 выводит имя карты в нижнем регистре и заменыет ‘-’ на ‘_’.

Пример вызова функции:

Таким образом, GameQ демонстрирует высокую скорость работы при низком потреблении ресурсов.

Поделиться:

Опубликовано 27 апр 2011 в 0:08. Рубрика: Уроки. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить отзыв или трекбек со своего сайта.

Источник

Как сделать мониторинг сервера

Недавно меня попросили написать статью про то, как сделать мониторинг сервера на PHP. Сразу говорю, здесь не будет сразу готового скрипта с пользовательским интерфейсом. Я расскажу и покажу лишь самый базовый код и объясню, как его можно использовать для мониторинга сервера на PHP.

Скрипт мониторинга сам по себе очень и очень простой:

Но смысла в таком скрипте нет, вместо echo лучше записывать данные, например, в log-файл, а при недоступности сайта отправлять письмо его администратору. Сделать это всё очень просто, если Вы знаете PHP. Для тех, кто не знает, вот обучающий курс.

Также очевидно, что скрипт должен запускаться автоматически. Для этого надо воспользоваться cron. Как часто запускать данный скрипт, решать Вам. Но в большинстве случаев будет достаточно это делать каждые 5-10 минут.

Ещё один важный момент, мониторить сайт нужно с другого сервера, поэтому Вам потребуется ещё один хостинг, а это стоит денег. Отсюда вывод: если Вы не хотите создавать сервис для мониторинга сайтов для всех желающих, то свой сайт лучше мониторить с помощью отдельных сервисов. Их достаточно много, а цены там существенно ниже, чем на хостинг (если, конечно, Вам не нужен мониторинг каждую минуту).

Теперь Вы знаете, как сделать мониторинг сервера на PHP. Если хотите мониторить свои сайты, то лучше используйте сторонние сервисы. А если у Вас есть какой-нибудь «бесплатный» хостинг или сервер, то можете использовать данный скрипт, либо можете создать свой собственный сервис мониторинга сайтов.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 7 ):

    Ну самое простое — это яндекс-метрика, зарегиться там, добавить сайт, и этот сервис отправляет письма на почту, если сайт недоступен.

    Да кстати зачем утруждать сервер и себя лишний раз) а тут яндекс делает за тебя работу) а так за статейку спасибо)

    Также можно использовать сервис http://ping-admin.ru/

    Здравствуй Михаил! Подскажи пожалуйста, как сделать кнопку в меню активной? То есть нажимаю на кнопку перехожу в раздел, кнопка стала активной, перехожу в другой раздел — соответствующая кнопка стала активной. По моему так на большинстве сайтов сделанно.

    Обычно активной её делает движок, выделяя нужный пункт меню через css для текущей страницы.

    По идее, это мониторинг сайта. А как сделать мониторинг сервера игры и получить, сколько на нем игроков?(Искал долго, но не нашел нужного)

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Читайте также:  Походный умывальник для кемпинга своими руками

    Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

    Источник

    Делаем свой статус\мониторинг сервера Minecraft

    Некоторое время назад я задался вопросом, как же сделать свой статус сервера? Так, чтоб показывать онлайн или оффлайн сервер Minecraft, сколько слотов доступно, сколько игроков играет. Кто по никам играет?
    Я нашел плагин для этого, и скрипт на сайт, который выводит данную информацию.
    Я пытался продать установку и настройку скрипта, но покупателей не было

    Плагин не мой, скрипт тоже, сделаю инструкцию, может кто спасибо скажет?
    И так, у вас есть свой сервер Minecraft на bukkit, так же сайт на какой то CMS в которой можно редактировать шаблон(код страницы), загрузить php файлы в директорию сайта. Гордые обладатели сайтов на ucos идут лесом

    Что нужно сделать? Первым делом качаем плагин Minequery online (он есть общем файле в конце новости), устанавливаем его на ваш сервер,
    в server.properties необходимо добавить строчку minequery-port=25566.

    Готово, переходим к сайту , тут все несколько сложнее, но попробуйте разобраться, а я попробую объяснить.

    В разархивируем, видим папку core, файл status.php, в папке core есть папка inc и несколько файлов.

    Файл mc.inc.php, init.inc.php трогать не надо.

    Открываем файл config.inc.php, тут вот такая джигурдень.

    $admins,$moderators — ники админов и модераторов, для выделения цветом в списке игроков

    Дальше открываем файл status.php, тут Джигурдень намного сложнее

    0)
    <
    $str = » «;
    $str .= $info[‘playerList’][$key];
    $str .= » «;
    unset($info[‘playerList’][$key]);
    array_unshift($info[‘playerList’], $str );
    >
    endwhile;

    reset($admins);
    while (list ($rr, $val) = each ($admins) ) :
    $key = array_search($val, $info[‘playerList’]);
    if ($key > 0)
    <

    $str = » «;
    $str .= $info[‘playerList’][$key];
    $str .= » «;
    unset($info[‘playerList’][$key]);
    array_unshift($info[‘playerList’], $str );

    Источник

    Создаем систему мониторинга большой сети удаленных филиалов своими руками

    50-60 Cisco маршрутизаторов и 80 серверов на платформе Windows 2003/2008, чтобы службе поддержки было видно когда что-либо падает, отваливаются службы на серверах, тунели на цисках, загруженность каналов и так далее.

    Оборудование: Систему в общем то потянет любой сервер, тестировалась со всей этой сеткой она у меня на стареньком Celeron с 768Mb RAM, сейчас стоит на мощном Xeon’е с 8Gb оперативной памяти, но практически не ест ресурсов.

    Программное обеспечение: CentOS 5 + Nagios + Cacti + Plugins
    По желанию систему можно грузить еще чем-угодно, у меня например на ней же стоит форум phpBB3 использующийся как база знаний Техподдержки, файловая помойка и ssh терминалы.
    Nagios был выбран как платформа для мониторинга доступности хостов по пингу, серверов на платформе Windows и сетевых принтеров HP. Cacti — в основном для мониторинга сети.

    Почему выбираем эту связку? Решений для мониторинга сейчас очень много, из испробованных мной — эта связка пришлась по душе больше всего, т.к. она а) полностью бесплатная б) не требует много ресурсов в) эстетически приятный вид мониторингов г) высокая конфигурироемость

    Описывать как устанавливать CentOS я не буду, в сети достаточно мануалов по этой теме, да и установка там сложностей не представляет. Единственное, что пожалуй добавлю — ставил его в редакции server. Скачать установщик можно тут.

    После установки сразу же поставим все необходимые нам пакеты. Для этого установим парочку репозиториев и перезагрузимся:
    rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
    rpm -ivh http://rpm.livna.org/livna-release-5.rpm
    rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
    yum -y update
    reboot

    Теперь можем установить непосредственно пакеты:
    yum install -y gcc glibc glibc-common gd gd-devel mysql mysql-server mysql-devel httpd httpd-devel php php-mysql php-gd phpimap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mcrypt curl curl-devel perl-libwwwperl libxml2 php-mbstring mc webmin openssh-server openssh-clients net-snmp net-snmp-utils rrdtool php-snmp net-snmp-devel

    Включаем сервисы для доступа по ssh:
    chkconfig sshd start
    service sshd start

    Включаем apache:
    chkconfig httpd on
    service httpd start

    Открываем доступ к 80 и 22 портам, для этого редактируем файл /etc/sysconfig/iptables (файрволл):
    nano /etc/sysconfig/iptables
    Добавляем туда строки:
    -A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 80 -j ACCEPT
    -A RH-Firewall-1-INPUT -p tcp -m tcp —dport 80 -j ACCEPT
    И убираем или комментируем строку:
    -A RH-Firewall-1-INPUT -j REJECT —reject-with icmp-host-prohibited

    У меня после всех модификаций файл выглядит так:
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :RH-Firewall-1-INPUT — [0:0]
    -A INPUT -j RH-Firewall-1-INPUT
    -A FORWARD -j RH-Firewall-1-INPUT
    -A RH-Firewall-1-INPUT -i lo -j ACCEPT
    -A RH-Firewall-1-INPUT -p icmp —icmp-type any -j ACCEPT
    -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
    -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp —dport 5353 -d 224.0.0.251 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp -m udp —dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -p tcp -m tcp —dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
    -A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT
    #-A RH-Firewall-1-INPUT -j REJECT —reject-with icmp-host-prohibited
    -A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 80 -j ACCEPT
    -A RH-Firewall-1-INPUT -p tcp -m tcp —dport 80 -j ACCEPT
    COMMIT

    Но на этом наши пляски с бубном вокруг фаерволов не закончены. В CentOS есть еще такая вещь, как SELinux (Security Enchanced Linux).
    Его нам тоже надо выключить, чтоб не мешался:
    Открываем /etc/sysconfig/selinux
    nano /etc/sysconfig/selinux
    и меняем в нем SELINUX=enforcing на SELINUX=disabled

    Читайте также:  Как сделаю чехол для планшета своими руками

    С фаерволом покончили.

    Теперь перейдем к установке непосредственно NAGIOS — его я использую для мониторинга доступности цисок (по пингу) и служб и сервисов Windows.
    Создадим юзера для нагиоса и добавим его в нужные группы:
    /usr/sbin/useradd -m nagios
    /usr/sbin/groupadd nagcmd
    passwd nagios
    /usr/sbin/usermod -a -G nagcmd nagios
    /usr/sbin/usermod -a -G nagcmd apache

    Качаем сам нагиос, распаковываем его:
    wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
    wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
    tar -xzf nagios-3.2.3.tar.gz
    tar -xzf nagios-plugins-1.4.15.tar.gz

    Идем к нему в директорию и инсталлируем:
    cd nagios-3.2.3
    ./configure –with-command-group=nagcmd
    make all
    make install
    make install-init
    make install-config
    make install-commandmode
    make install-webconf

    Перезапускаем apache:
    service httpd restart

    Теперь ставим плагины:
    cd nagios-plugins-1.4.15
    ./configure –with-nagios-user=nagios –with-nagios-group=nagios
    make
    make install

    Выставляем пароль на Nagios и запускаем его:
    htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
    /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    service nagios start

    Поздравляю, маленькую часть работы мы завершили. Пару слов о нагиосе как о системе.
    Все конфигурации как и везде осуществляются через конфиги .cfg в конфигурационных папках нагиоса:
    /usr/local/nagios/etc/

    Любые хосты, как и любые процедуры для их мониторинга описываются через эти конфиги.
    Из основных, которые вам 100% пригодятся —
    hostgroups_nagios2.cfg
    extinfo_nagios2.cfg
    В первом файле — хосты объединяются в группы мониторинга, по которым потом можно будет упорядочивать просмотр
    Во втором — хостгруппам можно присвоить значки, как например:

    Иконки размером 40х40 лежат в
    /usr/local/nagios/share/images/logos/
    Для линуксовых систем есть куча плагинов, которыми можно мониторить систему — их все легко посмотреть в примере локалхоста, который создается автоматически. Нас же интересует мониторинг именно Windows систем.
    Для него мы будем использовать Nsclient++ — его нужно установить на все хосты, которые будем мониторить. Он распространяется в пакете msi, так что его можно легко накатить через групповую политику на все машины.

    Устанавливать можно в дефолтной конфигурации, т.к. вся конфигурация осуществляется через .ini файл. Единственное что нужно будет сделать — в свойствах службы NSclient (Start -> Run -> Services.msc) нужно выставить «Allow service to interact with desktop»

    В файле NSC.ini вам нужно будет поправить несколько параметров:
    allowed_hosts=192.168.2.10 ; IP адрес сервера NAGIOS
    use_file=1 ; Указывает, что необходимо брать параметры из файла
    port=12489 ; Номер порта (стандартный)
    На этом настройка клиентов в-общем то закончена.

    Настройка конфигов мониторинга:
    Мне надо было мониторить большую группу (около 50) серверов с одинаковыми функиями и сервисами. Поэтому я использовал следующую структуру — хосты описаны в одном файле (пример):
    define host <
    use generic-host
    host_name SHOP9
    alias SHOP 9
    address 10.0.9.25
    check_period 24×7
    check_interval 5
    retry_interval 1
    >
    define host <
    use generic-host
    host_name SHOP10
    alias SHOP 10
    address 10.0.10.25
    check_period 24×7
    check_interval 5
    retry_interval 1
    >

    Кстати пинги до хостов проверяются автоматически, когда вы хосты создаете.
    Все эти сервера объединены в группу shopservers в файле hostgroups, описанном выше.
    И cfg файл для описания сервисов, которые будут мониторится для группы этих хостов:
    # Стандартные процедуры мониторинга (версия клиента, загрузка ЦПУ, оперативки, места на жестком диске)
    define service <
    use generic-service
    hostgroup_name Shopservers
    service_description NSClient++ Version
    check_command check_nt!CLIENTVERSION
    >
    define service <
    use generic-service
    hostgroup_name Shopservers
    service_description Uptime
    check_command check_nt!UPTIME
    >
    define service <
    use generic-service
    hostgroup_name Shopservers
    service_description CPU Load
    check_command check_nt!CPULOAD!-l 5,80,90
    >
    define service <
    use generic-service
    hostgroup_name Shopservers
    service_description Memory Usage
    check_command check_nt!MEMUSE!-w 80 -c 90
    >
    define service <
    use generic-service
    hostgroup_name Shopservers
    service_description C: Drive Space
    check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
    >

    # Пример мониторинга состояния службы с именем SETExchange (определяет работает ли она)

    define service <
    use generic-service
    hostgroup_name Shopservers
    service_description SES Transport
    check_command check_nt!SERVICESTATE! -d SHOWALL -l SETExchange
    >

    # Пример мониторинга состояния процесса в памяти (определяет запущен ли ехешник, в данном случае sqlservr.exe)

    define service <
    use generic-service
    hostgroup_name Shopservers
    service_description SQL Server
    check_command check_nt!PROCSTATE! -d SHOWALL -l sqlservr.exe
    >

    Если для какого то сервера нужно мониторить что-то отдельное — можете дописывать процедуру сразу же после описания хоста сервера в 1-м файле. Она будет действовать только для него. Т.е. у вас сначала должен идти тег define host <> , а потом define service <>

    Собственно нагиосом я мониторю:
    1) Пинги, телнет и ssh до маршрутизаторов Cisco 871 / 1841 / 2841
    2) Пинги, телнет, ssh, вебсервер для Juniper Netscreen
    3) ЦПУ, температуру, жесткий диск, оперативку, аптайм серверов, службы виндовс серверов, например Exchange и так далее
    4) Состояние принтеров в локальной сети. Для сетевых HP принтеров — показывает даже состояния замятия бумаги и недостатка чернил. Весьма полезная функция.

    Вот скрин одной из страниц мониторинга для примера:

    Теоретически плагины пишутся для чего угодно, но графические решения Nagios лично мне не приглянулись, поэтому ставим Cacti!
    Пакеты мы уже установили, так что включаем и конфигурим MySQL:
    chkconfig mysqld on
    service mysqld start
    mysql_secure_installation

    В конфигурации MySQL нас сначала попросят ввести рутовый пароль, его по умолчанию нет — нажимаем Enter, затем попросят его установить — устанавливайте какой вам удобно. Это понадобится вам, если вы потом решите поставить например Webmin или форум какой-то на тот же сервер.
    Убираем anonymous users, на вопрос Disallow root login remotely? отвечаем no, удаляем тестовую базу и перезагружаем таблицу привилегий.
    Включаем snmpd:
    chkconfig snmpd on
    service snmpd start

    Читайте также:  Правильный шкаф для холодного копчения своими руками

    Создаем папку с кактусом:
    mkdir /var/www/cacti

    Скачиваем и распаковываем пакеты инсталляции кактуса:
    wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
    tar -xzvf cacti-0.8.7g.tar.gz
    wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.9.tar.gz
    tar -xzvf cacti-plugin-0.8.7g-PA-v2.9.tar.gz
    wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
    tar -xzvf cacti-spine-0.8.7g.tar.gz
    cp -rf cacti-0.8.7g/* /var/www/cacti/

    Создаем пользователя для кактуса и даем ему права:
    useradd -c CactiUser -d /var/www/cacti/ -s /sbin/nologin cactiuser
    chown -R cactiuser /var/www/cacti/log /var/www/cacti/rra

    Создаем MySQL базу для кактуса:
    mysql -u root -p

    Вводим пароль рута для MySQL (тот, который вводили при конфигурации MySQL) и создаем непосредственно базу.
    create database cacti;
    GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘ ВАШ ПАРОЛЬ ‘;
    flush privileges;
    quit

    Даем Cacti понять, что ей нужно работать с этой базой:
    mysql -u cactiuser -p cacti

    Открываем файл конфигурации:
    nano /var/www/cacti/include/config.php

    В нем правим пароль на тот, который вы указали, затем идем в директорию кактуса и начинаем его патчить.
    cd /var/www/cacti
    wget http://www.cacti.net/downloads/patches/0.8.7g/data_source_deactivate.patch
    wget http://www.cacti.net/downloads/patches/0.8.7g/graph_list_view.patch
    wget http://www.cacti.net/downloads/patches/0.8.7g/html_output.patch
    wget http://www.cacti.net/downloads/patches/0.8.7g/ldap_group_authenication.patch
    wget http://www.cacti.net/downloads/patches/0.8.7g/script_server_command_line_parse.patch
    wget http://www.cacti.net/downloads/patches/0.8.7g/ping.patch
    wget http://www.cacti.net/downloads/patches/0.8.7g/poller_interval.patch
    patch -p1 -N

    Создаем файл конфигурации для апача:
    nano /etc/httpd/conf.d/cacti.conf

    Вот что в нем у меня:
    Alias /cacti/ /var/www/cacti/

    DirectoryIndex index.php
    Options -Indexes
    AllowOverride all
    order deny,allow
    allow from all
    AddType application/x-httpd-php .php
    php_flag magic_quotes_gpc on
    php_flag track_vars on

    Затем открываем файл конфигурации самого apache;
    nano /etc/httpd/conf.httpd.conf

    Там меняем следующие строчки (у меня сервер лежит на IP 10.11.8.251)
    ServerName 10.11.8.251:80

    ServerAdmin root@root.root
    DocumentRoot /
    ServerName 10.11.8.251
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common

    Теперь создаем задачу для кактуса и перезагружаем apache:
    nano /etc/cron.d/cacti
    */5 * * * * cactiuser php /var/www/cacti/poller.php > /dev/null 2>&1

    service httpd restart

    Ставим необходимые плагины:
    cp cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff /var/www/cacti/
    cd /var/www/cacti/
    patch -p1 -N

    Теперь открываем /var/www/cacti/include/config.php
    nano /var/www/cacti/include/config.php

    И правим в нем строчку $url_path = «/»; на $url_path = «/cacti/»

    Импортируем базу данных плагина в нашу MySQL, вводим ВАШ ПАРОЛЬ.
    mysql -u cactiuser -p cacti

    Ставим Spine (чтоб графики были красивее и плавнее обрабатывались)
    cd /root/cacti-spine-0.8.7g
    ./configure —prefix=
    make
    make install
    mv /etc/spine.conf.dist /etc/spine.conf

    Редактируем файл его конфигурации:
    nano mv /etc/spine.conf.dist /etc/spine.conf

    Он должен быть вот такой:
    DB_Host localhost
    DB_Database cacti
    DB_User cactiuser
    DB_Pass ВАШ ПАРОЛЬ
    DB_Port 3306
    DB_PreG 0

    Заходим на веб страницу:
    server_ip/cacti
    Инсталлируем кактус (жмем next -> next -> finish)
    Логинимся и меняем пароль на свой:
    login:admin
    password: admin

    Заходим в User Management, ставим галочку на Plugin Management

    Заходим в Settings -> Paths и в поле Spine Puller File Path вводим:
    /bin/spine

    Потом заходим в Poller и выбираем там Poller Type — Spine

    Теперь ставим несколько нужных плагинов (settings, monitor, discovery, thold, aggregate, rddclean) которые нам будут помогать (более подробно можно на сайте docs.cacti.net прочитать для чего они нужны) и самое главное ради чего лично я все это затевал — weathermap:
    cd /var/www/cacti/plugins
    wget http://docs.cacti.net/_media/plugin:settings-v0.7-1.tgz
    wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip
    wget http://docs.cacti.net/_media/plugin:aggregate-v0.75.tgz
    wget http://cactiusers.org/downloads/discovery.zip
    wget http://cactiusers.org/downloads/monitor.tar.gz
    wget http://cactiusers.org/downloads/thold.tar.gz
    wget http://docs.cacti.net/_media/plugin:rrdclean-v0.41.tgz

    Распаковываем все для быстроты через mc (mc — midnight commander, он же far для linux)
    Заходим в консоль кактуса в Plugin Management и устанавливаем их все.

    Настройка самого мониторинга:
    Предварительно включаем SNMP версии 2 на Cisco девайсах:
    conf t
    access-list 1 permit ИП нашего сервера
    access-list 1 deny any
    dialer-list 1 protocol ip permit
    snmp-server community public RO 1

    Во вкладке Devices создаем девайс, как пример приведем циску. Использую я snmp версии2, для мониторинга кучи устройств это проще чем третья.
    Заполняем поля с IP и так далее, в поле host Template выбираем Cisco Router, в snmp — Version2.
    Жмем ОК. Затем создаем графики для этого устройства с помощью соответствующей кнопки Create New Graphs
    Для примера сейчас мы можем создать графики по загрузке интерфейсов трафиком и загрузке CPU:

    Выглядеть они будут вот так. Правда появятся они не сразу, а как только CRON начнет отрабатывать задание, возможно придется 5-10 минут подождать. Для их отображения в меню Graph Trees нужно добавить в дерево графиков соответствующий хост, или отдельный график. Там все интуитивно понятно.
    Теперь о карте сети, а конкретно о плагине Weathermap. С его помощью делается например вот такая карта сети:

    На ней можно практически в режиме реального времени посмотреть процентную загрузку интерфейсов, пингов, всего чего захотите.
    По кликам на стрелочки и устройства можно открыть привязанные к ним графики.
    Для того, чтобы пользоваться всем этим добром нужно в User Management дать права на создание и редактирование карт и дать права веб юзеру на файлы самих карт.
    chmod -R 777 /var/www/cacti/plugins/weathermap/

    Редактирование и создание карт производится из встроенного редактора: адрес_кактуса/plugins/weathermap/editor.phpДля отображения карт из под админа зайдите в Console -> weathermaps и поставьте галочки на нужных картах.
    Рекомендую сначала сделать основную схему, потом уже баловаться с фонами, цветами и так далее. И почаще бекапить карту, т.к. эдитор достаточно глючный.

    Напоследок поделюсь также одним шаблоном для отслеживания пингов и потерь до оборудования:

    Выглядит примерно вот так:

    Более подробно по настройкам самих систем естественно в мануалах т.к. описывать все это можно бесконечно.

    Удачи в мониторинге, и чтоб все стояло как надо.

    Источник

    Оцените статью
    Своими руками