Как каждый идет о контроле memcached статистика в OpenNMS?

Мы размещаем все наши системы разработки в серверной. Почему виртуализируют на рабочем столе?

2
задан 9 July 2009 в 02:48
5 ответов

Создайте следующий сценарий (и сделайте его исполняемым файлом):

#!/bin/bash
exec 5<> /dev/tcp/127.0.0.1/11211
if [ $? -eq 0 ]; then
        echo "stats" >&5
        echo "quit" >&5
        while read -u 5 -d $'\r' stat name value;
        do
                echo $value
        done
        exit 0
fi
exit 1

Мой-/usr/local/bin/memcached_stats.sh

Это соединяется с memcached демоном и выкладывает санированную версию memcached команды статистики и произвело что-то как:

2754
2129139
1243545563
1.2.2
64
2299.898362
7336.774640
217721
7091925
1909177049
108
27653
633
234138327
7091925
220430936
13707391
352833
89610818966
1385141563315
2147483648
4

Добавьте следующее к своему/etc/snmp/snmpd.conf и перезапустите snmpd:

extend .1.3.6.1.4.1.1.900.100 memcached /usr/local/bin/memcached_stats.sh

Это составляет таблицу на основе вывода сценария, где каждая строка получает свой собственный узел.

Если Вы хотите подтвердить это выполнение следующее:

snmpwalk -v2c -c public 127.0.0.1 .1.3.6.1.4.1.1.900.100

Необходимо получить что-то как:

SNMPv2-SMI::enterprises.1.900.100.3.1.3.9.109.101.109.99.97.99.104.101.100 = INTEGER: 23
SNMPv2-SMI::enterprises.1.900.100.3.1.4.9.109.101.109.99.97.99.104.101.100 = INTEGER: 0
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.1 = STRING: "2754"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.2 = STRING: "2123005"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.3 = STRING: "1243539429"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.4 = STRING: "1.2.2"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.5 = STRING: "64"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.6 = STRING: "2290.369810"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.7 = STRING: "7308.630919"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.8 = STRING: "217652"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.9 = STRING: "7066934"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.10 = STRING: "1909286395"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.11 = STRING: "108"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.12 = STRING: "27628"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.13 = STRING: "633"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.14 = STRING: "233251848"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.15 = STRING: "7066934"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.16 = STRING: "219593496"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.17 = STRING: "13658352"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.18 = STRING: "348593"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.19 = STRING: "89233569948"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.20 = STRING: "1380956068373"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.21 = STRING: "2147483648"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.22 = STRING: "4"

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

В datacollection-config.xml добавляют следующее к вершине, но после всей конфигурации rrd:

<resourceType name="MemcachedStats" label="memcached stats" resourceLabel="memcached">
    <persistenceSelectorStrategy class="org.opennms.netmgt.collectd.PersistAllSelectorStrategy"/>
    <storageStrategy class="org.opennms.netmgt.dao.support.IndexStorageStrategy"/>
</resourceType>

Затем в разделе групп добавляют следующее:

<group name="memcached_stats" ifType="all">
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.1" instance="MemcachedStats" alias="pid" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.2" instance="MemcachedStats" alias="uptime" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.3" instance="MemcachedStats" alias="time" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.4" instance="MemcachedStats" alias="version" type="string" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.5" instance="MemcachedStats" alias="pointer_size" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.4" instance="MemcachedStats" alias="rusage_user" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.7" instance="MemcachedStats" alias="rusage_system" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.8" instance="MemcachedStats" alias="curr_items" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.9" instance="MemcachedStats" alias="total_items" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.10" instance="MemcachedStats" alias="bytes" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.11" instance="MemcachedStats" alias="curr_connections" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.12" instance="MemcachedStats" alias="total_connections" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.13" instance="MemcachedStats" alias="connection_structures" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.14" instance="MemcachedStats" alias="cmd_get" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.15" instance="MemcachedStats" alias="cmd_set" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.16" instance="MemcachedStats" alias="get_hits" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.17" instance="MemcachedStats" alias="get_misses" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.18" instance="MemcachedStats" alias="evictions" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.19" instance="MemcachedStats" alias="bytes_read" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.20" instance="MemcachedStats" alias="bytes_written" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.21" instance="MemcachedStats" alias="limit_maxbytes" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.22" instance="MemcachedStats" alias="threads" type="integer" />
</group>

И наконец далее вниз Вы хотите найти теги systemDef для Net-SNMP & Net-SNMP (UCD) и добавить следующее в собрать тегах:

<includeGroup>memcached_stats</includeGroup>

Перезапустите OpenNMS и и там у Вас есть он..., когда capsd повторно просканирует хосты, он начнет собирать эти статистические данные

Ниже ссылка для данных, которые могут быть получены от memcached:

  • pid: идентификатор процесса этого serverprocess
  • время работы: число секунд этот сервер работало
  • время: текущее время UNIX согласно серверу
  • версия: строка версии этого сервера
  • pointer_size: размер по умолчанию указателей на хосте ОС
  • rusage_user: накопленное пользовательское время для этого процесса
  • rusage_system: накопленное системное время для этого процесса
  • curr_items: текущее количество объектов сохранено сервером
  • total_items: общее количество объектов, сохраненных этим сервером с тех пор, как это запустилось
  • байты: текущее число байтов, используемых этим сервером для хранения объектов
  • curr_connections: количество открытых соединений
  • total_connections: общее количество соединений открылось, так как сервер начал работать
  • connection_structures: количество структур соединения выделяется сервером
  • cmd_get: совокупное число запросов извлечения
  • cmd_set: совокупное число запросов на хранение
  • get_hits: количество ключей, которые требовали и нашли существующие
  • get_misses: количество объектов, которые требовали и не нашли
  • замещения: количество допустимых объектов, удаленных с кэша на свободную память для новых объектов
  • bytes_read: общее количество байтов, считанных этим сервером из сети
  • bytes_written: общее количество байтов, отправленных этим сервером для сетей
  • limit_maxbytes: числу байтов этот сервер позволяют использовать для устройства хранения данных
  • потоки: количество рабочих потоков требуют

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

(Работы над CentOS 5.2, OpenNMS 1.5.93-1, сетевыми-snmp 5.3.1, memcached 1.2.2)

5
ответ дан 3 December 2019 в 08:52

Хорошая работа, Nathan! Всего несколько комментариев.

Вы сделали это немного тяжелее, чем это должно было быть - использование пользовательского resourceType не необходимо для объектов, которые являются скаляром, т.е. которые появляются всего одно время на узел. При отбрасывании resourceType необходимо будет просто переместить последнюю цифру каждого <mibObj> атрибута "oid" в его атрибут "экземпляра" и изменить "ifType" атрибут Вашего <группа> от "всех", чтобы "проигнорировать".

Вы определенно испытываете необходимость для обработки части этой статистики как счетчики (монотонно увеличивающий значения, такие, что дельта между двумя образцами - то, что действительно имеет значение) путем определения "счетчика" вместо "целого числа" (или "индикатор", который эквивалентен, но более ясен) для их типа. Хорошая мнемосхема для запоминания, что является индикатором и что является счетчиком, - то, что индикатор представляет, например, число людей в комнате прямо сейчас, тогда как счетчик представляет, например, число людей, которые когда-либо проходили через турникет для ввода комнаты. Таким образом, "curr_items" должен быть индикатором, и "total_items" должен быть счетчиком. Другим нужно изменение также, но этого должно быть достаточно для получения Вас движение. Необходимо будет перезапустить и удалить любые файлы RRD, которые были созданы с неправильным типом; OpenNMS автоматически воссоздаст файлы.

Наконец, Вы, возможно, сделали это использование theHTTP Коллектор также, но затем Вы не будете испытывать радости работы с SNMP ;)

Одна самая последняя вещь - обычно предпочтительно зарегистрировать эти виды "рецептов" на Wiki opennms.org, а не на внешних сайтах как ServerFault. Поэтому годы с этого времени XML-схема для сбора данных SNMP может измениться, и хорошо смочь обновить инструкции соответственно, не имея необходимость создавать учетные записи на миллионе сайтов или разыскивать адреса электронной почты для миллиона авторов.

1
ответ дан 3 December 2019 в 08:52
  • 1
    Я на самом деле couldn' t заставляют это работать с пользовательским resourceType вообще. Я пошел плоскость jane snmp маршрут с уникальными экземплярами, и это хорошо работало. –  diq 29 May 2009 в 02:26

протокол кэш-памяти определяет stat использование команды, которое можно получить всю ту информацию, Какой бы ни API Вы используете, он должен иметь привязку для этой команды.

0
ответ дан 3 December 2019 в 08:52

Я осуществил рефакторинг Ваш сценарий: (требует netcat),

#!/bin/bash
echo -e "stats\nquit"|nc $1 11211 | while read  -d $'\r' stat
    name value;
        do
            echo $value
        done

к вашему сведению: OpenNMS> 1.7.4 теперь имеет собственный контроль memcached. Проверьте OpenNMS wiki на наполовину законченную статью, которую я написал.

1
ответ дан 3 December 2019 в 08:52

Это встроено с тех пор 1.7.4.

См. http://www.opennms.org/wiki/Memcached_Monitor

2
ответ дан 3 December 2019 в 08:52

Теги

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