Jump to content

gvan

Forum Members
  • Posts

    210
  • Joined

  • Days Won

    2

Posts posted by gvan

  1. 8 часов назад, Cobain сказал:

    В логах кинетика периодически возникают ошибки, когда идет запись на диск

    Насколько периодически? Т.е., например, транзакции на запись идут постоянно, а потом раз - и проскочила ошибка. Или же диск не использовался некоторое время, а потом при попытке записать на него возникает данная ошибка и далее проблем не наблюдается?

    Я тоже фиксирую похожие изменения по работе с диском на 2.09 и 2.08 в отличии от версии 2.06. Но это проблема связана с тем, что у меня диск засыпает (отключается двигатель). Хотя пытался через параметры smart отключать остановку. Но он на это плюет. 

    Соответственно, при обращении к винту (если двигатель отключился), пока он не раскрутится в логах проскакивают ошибки (но номер сектора всегда разный). Далее никаких проблем с работой не наблюдается.

  2. В 30.12.2016 в 15:50, Downloader сказал:

    На скриншоте то, что хотелось бы видеть на роутере

    Если есть желание "рисовать картинки" прямо на роутере, то можно попробовать решение. Тем более пакет collectd включили в официальный список пакетов entware (т.е. можно ставить напрямую через opkg). Там же есть упоминание о готовом пакете netdata, который требует минимум настроек для получения результата, но статистика хранится не долговременно.

    Либо использовать внешний ресурс (сервер), который будет собирать статистику по SNMP с роутера и отображать ее (ссылки на такое ПО были в этой теме).

    14 часа назад, dexter сказал:

    наблюдаю непонятные скачки в счетчиках траффика

    6 минут назад, Le ecureuil сказал:

    Там порой бывают переполнения, которые нужно обрабатывать особенно

    Если используются 32-битные счетчики, то переполнение возникнет довольно быстро. Чтобы проверить из-за этого ли это происходит можно сделать следующее.

    Посчитать сколько времени прошло с предыдущего скачка (в секундах) и умножить на среднюю скорость по статистике нужного нам трафика. Если получим в сумме объем, равный примерно 4Гб (перевести биты в xБайты), то это оно - переполнение :-) Но это очень примерно.

  3. 1 час назад, John9110 сказал:

    destination messages { file("/opt/My_Files/log/$YEAR/$MONTH/$DAY/messages.txt" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));};

    Есть один небольшой (или большой) минус. Будьте готовы к тому, что после перезагрузки роутера часть лога до того момента, пока на нем не синхронизируются часы через интернет, может попасть в старые даты (логи).

    В роутере батарейки нет, поэтому при его загрузке дата берется из конфа.

  4. 2 часа назад, milokc сказал:

    /opt/etc/darkstat/init.cfg

    На Entware-3g тоже этого файла нет. Но необходимый интерфейс можно указать в скрипте старта/стопа /opt/etc/init.d/S54darkstat в строке 

    ARGS="-i ppp0 --chroot /opt/var/empty --syslog"

    Причем у меня он запускается (через данный скрипт) без ошибок (но у меня подключение с провайдером - PPPoE).

    • Thanks 1
  5. 3 часа назад, Roman_Petrov сказал:

    Если вы хотите писать логи с помощью syslog на NAS

    Сам не пробовал на внешний сервер отдавать, но, судя по всему, примерно так:

    destination remote {udp("192.168.1.111" port(514));};
    
    log { source(src); destination(remote); };

     

  6. 11 час назад, emlen сказал:

    А как можно создавать резервные копии только измененного конфига? Мне бы не хотелось бы иметь образно говоря сто одинаковых копий за опред. срок, а просто по одной копии всех версий конфига..

    Ну, собственно говоря сто копий не хранится. Остаются архивы за последние несколько дней в зависимости от значения переменной DAYSTOR. Да и объем этих архивов конфигов небольшой.

    Также при выполнении команды "show running-config" всегда изменяется MD5 конфига и строка "clock date". Так что задача не совсем тривиальная.

    Первое сообщение дополнил кодом по сохранению только измененного конфига. Для этого при каждом запуске бэкапа сохраняется локальная так называемая текущая версия конфига. При последующих запусках содержимого полученного с роутера и сохраненного конфига сравнивается. При этом указанные выше строки не учитываются (переменная EXCLCONFCMD="Md5 checksum:\|clock date").

    Т.к. логика скрипта усложнилась, то возможны какие-то неучтенные баги :-) Проверяйте.

    • Thanks 2
  7. 27 минут назад, vasek00 сказал:

    Для меня так же 15минут поставить новую entware (только ту которая текущая на данный момент времени, так как релизы имеют свойство изменяться, улучшаться и исправленные ошибки и не дочеты пред.версий), потом конфиги в /opt/etc.

    Да, если софта пару-тройку пакетов. Но у меня побольше. Да и вспоминать, что нужно поставить, а что нет, куда положить нужные данные и т.п., не хочется. 

    А по поводу изменений релизов, вообще не вижу проблем. Ведь указанный скрипт запускается каждую ночь и мы всегда получаем полный свежий слепок системы, причем в новом архиве. У меня он на данный момент занимает менее 20Мб.

    А обновление того же самого софта opkg update/upgrade также можно добавить в cron.

    Но каждый волен выбирать сам:D

    • Thanks 1
  8. 2 часа назад, vasek00 сказал:

    Вопрос, а зачем его конфиг так сложно вытаскивать, если он спокойно лежит "/flash/startup-config" берем куда надо, в место

    У меня это какой-то полубинарный файл. Если сделать:

    cp /flash/startup-config /opt/tmp/test.txt

    То вначале файла test.txt какая-то каша. Да и вариант с ndmq -p более универсальный (вдруг захочется сохранить в третьем файле результат вывода каких-либо других CLI команд).

    2 часа назад, vasek00 сказал:

    Да и Entware наверное не стоит копировать весь его (так как библиотеки и версии приложений тоже меняются) возможно достаточно /opt/etc

    Да, ничто не мешает изменить переменную BACDIR на 

    BACDIR=/opt/etc/

    Но у меня, например, кроме конфигов есть еще БД, которые лежат вне /opt/etc.

    Также мой вариант, если вдруг умрет флэшка, позволяет за 15 минут развернуть новую entware, без танцев с бубном и без каких-либо установок дополнительных программ. Рассказываю как.

    Есть переносимая флэшка, на которой развернут пустой entware. Ну, не совсем пустая. На ней есть fdisk, e2mkfs (и прочие дисковые утилиты).

    Запускаю entware с нее. Создаю раздел на новом диске, форматирую его, запускаю распаковку созданного в первом сообщении .tgz на новую флэшку (еще надо будет создать var/log и tmp, т.к. в архиве их нет). Все. Можно монтировать entware на новой флэшке.

    Уже несколько раз подобным образом переезжал.

    Если нужна более подробная информация по шагам, то могу расписать и дополнить первое сообщение.

  9. 18 минут назад, Le ecureuil сказал:

    Нет, перезаписывается весь netfilter целиком по каждой нужде. Пока это невозможно "быстро" исправить.

    Ясно :(

    А "каждая нужда" какими примерно событиями определяется (чтобы для себя понимать насколько часто это может происходить и от чего это зависит)?

  10. 3 часа назад, Le ecureuil сказал:

    Нет, пока прошивка сделана именно так, и переделывать ее не запланировано.

    Т.е. при возникновении таких сетевых событий делается flush всех правил и цепочек без исключений? Или же какие-то служебные все-таки остаются?

    Если есть возможность хака в виде создания некой своей кастомной цепочки (например, с именем, начинающимся с определенных символов), то можно в ней уже учитывать трафик. Ну естественно при этом эта цепочка не должна чиститься.

  11. А чем определяется частое передергивание правил?

    Использую collectd c плагином iptbales, который напрямую общается c netfilter для получения значений счетчиков. Для отрисовки трафика определенных клиентов через iptables создаю и маркирую правила. Соответственно, в свой скрипт /opt/etc/ndm/netfilter.d/filter.sh добавил код (правила). Например:

    [ "$table" != "filter" ] && exit 0   # check the table name                                                                                                   
    /opt/sbin/iptables -I OUTPUT -p ICMP -s 192.168.1.0/24 -m comment --comment "ICMP" -j ACCEPT                                                                   
    /opt/bin/logger -t "iptables" "Rule for collectd added" 

    Но по syslog вижу, что этот код часто выполняется. Скорее всего, это происходит, когда подключаются/отключаются клиенты wi-fi, порты роутера. При этом и обнуляются счетчики на данном правиле. Это не очень положительно сказывается на точности учета трафика (если, особенно период опроса счетчиков большой).

    Можно ли этого как-то избежать?

  12. Collectd - это простой и легкий сервис, который собирает данные о производительности системы и приложений и предоставляет механизмы для хранения полученных значений в различных форматах, например в RRD файлах. Сбор статистики производится с помощью подключаемых плагинов. В данном примере будет рассмотрена возможность использования плагина для работы с SNMP (получения данных со встроенного в роутер SNMP-сервера), плагина для работы с дисковой подсистемой и плагина для записи полученных данных в RRD БД.

    Задача collectd  только собирать данные. Отрисовка графиков производится с помощью rrdcgi, который позволяет использовать некое подобие шаблонов, упрощающих формирование html-файлов и облегчающих процесс их настройки. Создание графиков выполняется только по запросу пользователя (при обращении к веб-скриптам), соответственно, нагрузка на систему незначительная.

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

    Примеры отображения полученной информации:

    Скрытый текст

     

    Индексная страница с динамически формирующимися превьюшками собираемой статистики

    index.png

    Некоторые примеры графиков

    cpu.pngla.pngdisktraf.pngif0pkt.png

    Этим возможности программы не ограничиваются. Существует дополнительные плагины, открывающие другие варианты сбора статистики (в том числе с определенных сервисов). Например, плагин iptables, позволяющий собирать данные по помеченным цепочкам правил (в планах отрисовывать графики по определенным клиентам wi-fi), плагин ping, формирующий данные по задержкам до определенного хоста и т.п.. Также есть возможность формирования нотификаций при достижении определенных значений полученной информации с помощью плагина threshold.

     

    Этап 1. Формирование данных статистики.

    Включаем через CLI поддержку snmp на роутере:

    service snmp
    system configuration save

    Ставим в entware SNMP-утилиты и проверяем работу протокола SNMP на роутере:

    opkg install snmp-utils snmp-mibs
    snmpwalk -c public 127.0.0.1 . >/opt/tmp/snmp.txt

    Если все прошло успешно, то должен создаться файл, содержащий все возможные OID роутера.

    Распаковываем содержимое приложенного архива files.zip во временную папку и устанавливаем collectd c необходимыми для нашего примера плагинами:

    opkg install collectd collectd-mod-logfile collectd-mod-disk collectd-mod-snmp collectd-mod-rrdtool

    Создаем каталог для rrd файлов:

    mkdir -p /opt/var/lib/collectd/rrd

    Копируем файл кастомных типов из архива share/custom-types.db в /opt/share/collectd

    Заменяем конфигурационный /opt/etc/collectd.conf на файл conf/collectd.conf

    Некоторые пояснения по конфигурационному файлу.

    Вначале указываются рабочие каталоги, а также подключается файл с кастомными типами (в нем описывается хранение характерных для keenetic данных: оперативной памяти и CPU).

    Далее указывается интервал (в примере 180 сек.) сбора статистики для плагинов (в настройках плагина snmp д.б. такой же интервал). Изменение интервала в дальнейшем допускается только при удалении всех rrd файлов (обнуление статистики). Но также можно выполнить их тюнинг вручную. В противном случае получим некорректную статистику.

    Плагин logfile нужен для записи журналов самого сервиса collectd. В нем и будем смотреть возникающие при настройке и работе сервиса ошибки.

    Плагин disk пишет информацию о работе выбранных дисков (разделов). В примере указаны только хардварные диски (производительность отдельных разделов не учитываю, т.к. у меня в этом необходимости нет). Информация начинает записываться в БД через 3*интервал_опроса после запуска collectd.

    Плагин rrdtool собственно и обеспечивает сохранение данных в БД  RRD. Размер каждого созданного файла БД фиксированный, информация записывается по кругу, переписывая устаревшие данные. Наибольшая точность данных получается для статистики за последние сутки (в примере точность до 3 минут). Данные за неделю, месяц и год усредняются и хранятся с большими интервалами времени. Но при этом существует возможность считывания максимальных значений статистики, которые были в указанные периоды (эти данные не усредняются, и в отрисовке графиков мы их также будем отображать). Значение “RRARows 480” определяет количество записей для каждого раздела данных (сутки, неделя, месяц, год). 480 соответствует точности для записи данных за сутки с интервалом три минуты (24*60/3).

    Плагин snmp выполняет сбор статистики по протоколу SNMP. В разделе Host указывается узел, с которого собираются данные, а также имена разделов с данными для опроса определенных OID (информацию по нужным мне OID брал из временного файла /opt/tmp/snmp.txt).

    Запускаем collectd

    /opt/etc/init.d$ /opt/etc/init.d/S??collectd start

    Проверяем лог /opt/var/log/collectd.log на наличие ошибок.

    Если все прошло успешно, то через несколько минут в БД RRD можно посмотреть вносимые сервисом данные, например по uptime системы.

    Для этого установим rrdtool:

    opkg install rrdtool
    
    rrdtool dump /opt/var/lib/collectd/rrd/localhost/snmp/uptime.rrd | less

    На этом данный этап закончен. Можно спокойно передохнуть, а настройку отрисовки графиков продолжить в следующий раз.

     

    Этап 2. Формирование графиков статистики.

    Приступим к настройке визуальной части системы.

    Для этого установим http-сервер. В примере будет использоваться lighttpd с модулем lighttpd-mod-cgi. Можете использовать другой http-сервер, но необходимо будет в соответствии с документацией  на сервер настроить поддержку выполнения CGI-скриптов.

    Также необходимо установить rrdcgi для формирования динамических HTML-файлов.

    Устанавливаем сервер и необходимое ПО:

    opkg install lighttpd lighttpd-mod-cgi rrdcgi

    Настраиваем сервер.

    В /opt/etc/lighttpd/lighttpd.conf меняем порт на 8000 и убираем комментарий:

    server.port                 = 8000

    И добавляем в index-file.names запуск индексной страницы с именем index.rcgi:

    index-file.names            = ( "index.php", "index.html",                                                                                                    
                                   "index.htm", "default.htm",                                                                                                    
                                   "index.lighttpd.html", "index.rcgi" )

    В /opt/etc/lighttpd/conf.d/30-cgi.conf корректируем cgi.assign для выполнения скриптов с расширением .rcgi:

    cgi.assign                 = ( ".pl"  => "/opt/bin/perl",                                                                                                     
                                  ".cgi" => "/opt/bin/perl",                                                                                                      
                                  ".rb"  => "/opt/bin/ruby",                                                                                                      
                                  ".erb" => "/opt/bin/eruby",                                                                                                     
                                  ".py"  => "/opt/bin/python",                                                                                                    
                                  ".rcgi" => "/opt/bin/rrdcgi" )

    Запускаем сервер:

    /opt/etc/init.d/S80lighttpd start

    Копируем содержимое архива www/* в каталог /opt/share/www.

    В переменной RRDPATH файлов 3*.rcgi нужно указать правильный путь к каталогу статистики, т.к. он зависит от названия вашего роутера.

    Также у меня для доступа в Интернет используется PPPoE, физическое подключение имеется только к WAN и к трем интерфейсам роутера. Поэтому набор файлов редактируйте под свои нужды. Но скрипты для общей статистики системы должны работать без каких-либо изменений.

    Подключаемые шаблоны находятся в /opt/share/www/include. Их тоже можно корректировать, если возникнет необходимость (например, изменить дизайн страницы, поменять цвет и форму графиков и т.п.). Документацию смотрите на официальной странице RRDTOOL. Если требуется выполнить какие-то дополнительные вычисления над данными в RRD (а в некоторых шаблонах это используется), то они производятся в обратной польской записи (RPN), в конце статьи есть ссылка на он-лайн конвертер.

    В общем шаблоне /opt/share/www/include/0-page.tmpl используется параметр <RRD::SETVAR ADDOPT5 --lazy>, необходимый для того, чтобы каждый раз не пересоздавать изображения с графиками, если информация в RRD файле не менялась.

    При отладке (например, подборе цвета линий на графике или изменении шрифтов) можно данный параметр изменить на заглушку <RRD::SETVAR ADDOPT5 --title=''>. В этом случае картинка будет перерисовываться каждый раз при открытии страницы со статистикой.

    Делаем исполняемым скрипт формирования индексной страницы и запускаем его для создания файла index.cgi:

    chmod +x /opt/share/www/scripts/index.sh
    /opt/share/www/scripts/index.sh

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

    Открываем сайт со статистикой в браузере по адресу http://адрес_роутера:8000/

     

    Архив (конфигурация, шаблоны, скрипт для создания индексной страницы): files.zip

    Список используемой литературы:

    1. Официальная страница collectd
    2. Collectd Wiki 
    3. Официальная страница rrdtool
    4. Он-лайн конвертер для обратной польской записи
    5. Названия и коды цветов в HTML, CSS и JavaScript
    • Thanks 7
  13. 21 час назад, emlen сказал:

    Добрый день! А как по крону сохранять конфиг ndms (running-config) на флешку?

    Для сохранения конфига во временную папку можно воспользоваться командой:

    ndmq -p "show running-config" -P message > /opt/tmp/config.txt

    Данную задачу можно добавить в /opt/etc/crontab. Например, сохранение конфига в 4 часа утра:

    0 4 * * * root ndmq -p "show running-config" -P message > /opt/tmp/config.txt

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

    ndmq -p "show running-config" -P message > /opt/tmp/config-`date +%Y-%m-%d`

     

    • Thanks 1
  14. 22 минуты назад, Cosmit сказал:

    Ещё мона конешно добавить скипт запуска Nagios    в  /opt/etc/init.d/

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

    Графики, насколько я понимаю, также можно строить на самом entware?

  15. 1 час назад, omezik сказал:

    Интернет отключился и на этом все

    Не могу подсказать. Нужно знать правильную команду на включение/отключение pppoe. Я взял команду из сообщения Le ecureuil. Возможно, в мануале на CLI найдете.

    Но ребут в крон, как я написал выше, должен работать.

  16. В 13.11.2016 в 06:10, omezik сказал:

    0 */1 * * * root /opt/sbin/reboot  не работает ни чего не происходит

    Это я неправильно написал. Нужно так

    0 * * * * root /opt/sbin/reboot

     

    В 13.11.2016 в 06:10, omezik сказал:

    Мне бы команду просто для переподключения pppoe0 соединения 

    Команду подсказали выше. Пример выполнения нескольких команд в одной строке в cron каждый час (выполняется команда date ожидается 1 секунда и date выполняется повторно, результат выполнения записывается в файл):

    0 * * * * root (/opt/bin/date && sleep 1 && /opt/bin/date) >> /opt/tmp/date.txt

    Попробуйте. Если результат для этого примера будет также отрицательный, то лучше настроить логирование entware и смотреть /opt/var/log/message на наличие ошибок.

    Предполагаю, что переподключение pppoe каждый час будет выглядеть так:

    0 * * * * root /opt/bin/ndmq -p 'interface PPPoE0 no connect' -P message && sleep 5 && /opt/bin/ndmq -p 'interface PPPoE0 connect' -P message

    Проверить не могу, т.к. обрублю себе сук, на котором сижу (если что-то пойдет не так), т.к. сижу удаленно.

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

    /opt/bin/ndmq -p 'interface PPPoE0 no connect' -P message && sleep 5 && /opt/bin/ndmq -p 'interface PPPoE0 connect' -P message

    А далее уже добавить в cron.

  17. 10 часов назад, omezik сказал:

    50 22 * * * reboot

    Ну, неправильно введено, пропущено имя пользователя, от которого нужно запускать команду. Нужно так (в принципе path задан правильный, но лучше указать полный путь к команде перезагрузки)

    50 22 * * * root /opt/sbin/reboot

    Также не забудьте сделать в файле /opt/etc/crontab последнюю строку пустой.

    Чтобы сделать перезагрузку роутера раз в час (например, в 00:00, 01:00 и так далее) команда будет выглядеть так:

    0 */1 * * * root /opt/sbin/reboot

    Также файловая система на entware должна быть ext*.

    Чтобы отлавливать ошибки cron. можно включить логирование с помощью syslog-ng (см. соответствующую тему на форуме в разделе готовых решений).

  18. Хотелось уточнить по поводу счетчиков:

    UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 58739
    UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 0
    UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 22109
    UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 517951
    UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 0
    UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 0

    Такое ощущение, что они у меня в версии v2.08(AAFS.2)A9 показывают погоду в Австралии. Ими как-то можно пользоваться для расчета нагрузки CPU или же они для этого не предусмотрены? Сам веб-интерфейс как получает загрузку процессора?

    По данному вопросу написал в ветке тестирования 2.08. Сегодня перегрузил роутер, но лучше не стало. Причем в 2.06 (правда я тестировал SNMP всего один день) у меня сложилось впечатление, что работало нормально.

    Или же остается получать загрузку CPU только через внешние скрипты?

     

    Дополнение::wink:

    Вопрос, скорее всего, снят. Формула для расчета

    cpu_user=ssCpuRawUser*100/(ssCpuRawUser+ssCpuRawSystem+ssCpuRawIdle)

    неверна. В качестве переменных в правой части равенства надо брать не полученные по SNMP значения, а разность текущего и предыдущего показания счетчика. Т.е.

    cpu_user=(ssCpuRawUser2-ssCpuRawUser1)*100/((ssCpuRawUser2-ssCpuRawUser1)+(ssCpuRawSystem2-ssCpuRawSystem1)+(ssCpuRawIdle2-ssCpuRawIdle1))

  19. 1 час назад, HuduGuru сказал:

    По умолчанию есть скрипт не автозапуска, но просто запуска.

    Если его запустить вручную так, то все нормально отрабатывает?:

    /etc/init.d/S37xmail start

    Если да, то, возможно, запуск xmail при загрузке роутера не укладывается в какие-то таймауты. Соответственно, и возникает ошибка...

    И я бы подкорректировал строчку PATH, добавив в конце ":/opt/bin":

    PATH=$XMAIL_ROOT/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin

  20. 3 часа назад, HuduGuru сказал:

    Что мне нужно сделать, чтобы прописать автозапуск корректно?

    Что у вас в самом скрипте автозапуска xmail вы не показали (по-умолчанию его в самом пакете нет).

    Протестировать вручную автоматический запуск программы можно с параметром start или stop (остановка). Например:

    # S37xmail start

    Если скрипт не отрабатывает нормально, то и роутер при перезапуске не сможет его запустить.

    Простой пример скрипта автозапуска выглядит так:

    Скрытый текст
    
    #!/bin/sh
    
    PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    
    start() {
            /opt/bin/prog_name
            }
    
    stop() {
            killall prog_name
            }
    
    case $1 in
            start)
                start
                ;;
            stop)
                stop
                ;;
            restart)
                stop
                start
                ;;
            *)
                echo "Usage: $0 {start|stop|restart}"
                ;;
    esac

     

    Но это не совсем правильный вариант написания подобных скриптов для entware, но в простейших случаях сгодится.

  21. Обновился с тестовой версии 2.06 с поддержкой SNMP на версию v2.08(AAFS.2)A9. Снимал показания загрузки CPU со следующих счетчиков:

    UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 189927
    UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 144865
    UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 11349065

    Далее по формуле, найденной в Сети, вычисляю загрузку процессора в процентах:

    cpu_user=ssCpuRawUser*100/(ssCpuRawUser+ssCpuRawSystem+ssCpuRawIdle)

    Таким же образом считаю для cpu_system и cpu_idle:

    cpu_system=ssCpuRawSystem*100/(ssCpuRawUser+ssCpuRawSystem+ssCpuRawIdle)

    cpu_idle=ssCpuRawIdle*100/(ssCpuRawUser+ssCpuRawSystem+ssCpuRawIdle)

    Общую загрузку cpu получал суммой вычисленных выше cpu_user и cpu_system. 

    Сравнивал результат с показанием в веб-интерфейсе кинетика. Примерно совпадало, динамика изменений - тоже.

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

    Для теста нагрузил процессор командой "cat /dev/zero | bzip2 -c > /dev/null", запустил snmpwalk и увидел, что значения в CpuRawUser и ssCpuRawSystem не растут, а в ssCpuRawIdle, соответственно, не уменьшаются (как было ранее).

    Думаю, что если перегружу железку, то опять станет нормально. Но пока этого делать не хочу, т.к. баг/фича сейчас воспроизводится.

    Также увидел, что по отношению к версии 2.06, в 2.08 команда htop стала показывать 2 процессора (ядра):

      1  [|||||||||||||||||||||||||||||||||||||||||||||||||||         77.3%]   Tasks: 34, 29 thr; 2 running
      2  [|||||||||||||||||||||                                       29.9%]   Load average: 0.35 0.10 0.29 
      Mem[|||||||||||||||||||||||||||||||||                      59.0M/250M]   Uptime: 18:38:07
      Swp[                                                            0K/0K]

    Это так и должно быть? Не может быть тогда проблема связана с тем, что загрузка CPU по SNMP для второго "ядра" должна показываться в других счетчиках, например, ssCpuRawIdle.1, но при этом их в поддержки нет?

    Также отмечаю, что значения Load Average, получаемые по SNMP, при этом соответствуют действительности (в данном примере не обращать внимания на несоответствие значений в выводе команды htop):

    UCD-SNMP-MIB::laLoad.1 = STRING: 0.26
    UCD-SNMP-MIB::laLoad.2 = STRING: 0.62
    UCD-SNMP-MIB::laLoad.3 = STRING: 0.52

     

    Дополнение

    Вопрос снят. Моя ошибка. Для расчета нужно брать не прямые значения ssCpuRawUser, ssCpuRawSystem, ssCpuRawIdle, а их разницу от предыдущих показаний.

    • Thanks 1
  22. 14 часа назад, Илларион сказал:

    А можно как-то эти логи(от разных так скажем сервисов) складывать в одну папку?

    1. Проводить ротацию логов можно в разных каталогах. Делайте, например, отдельный конф-файл для этого.

    2. В соответствии с документацией, существует опция olddir

    Цитата

    Переместить сдвинутые журналы в каталог. Заданный каталог должен размещаться на том же физическом устройстве, что и обращаемый файл журнала. При использовании этого параметра все старые версии журнала будут попадать в каталог. Этот параметр может быть переопределён параметром noolddir.

    Это требуется?

    Документацию можно посмотреть в интернете. Например, есть перевод мануала на сайте OpenNET.

    • Thanks 1
×
×
  • Create New...