Мониторинг Использования Памяти
Я больше соответствую одному из предыдущих постов, в котором упоминались кактусы как отличный способ контролировать использование памяти. Однако, поскольку, похоже, cacti больше не пользуется популярностью в мейнстриме, существует альтернативное графическое приложение под названием Graphite.
Graphite относительно легко установить на сервер ubuntu, и для его установки вы можете ознакомьтесь с этой ссылкой для удобства выполнения процедур установки.
Теперь, после установки graphite, вы можете отправлять ему показатели памяти с любым интервалом, который пожелаете; каждые 5 секунд, каждую минуту, каждый час ... и т.д.
Для построения графиков показателей памяти, как уже предлагалось в предыдущих сообщениях, вы можете написать свой собственный скрипт, используя системные инструменты для сбора необходимой информации о памяти. Или вы можете использовать предварительно написанный snmp-плагин, который сделает всю работу за вас.
Если вы хотите написать свой собственный сценарий памяти, будет разумно убедиться, что вы учитываете буферизованную и кэшированную память при расчете используемой памяти, в противном случае вы в конечном итоге соберете ложные данные.
Если вы хотите вместо этого использовать плагин snmp, который уже выполняет все необходимые вычисления за вас, вот ссылка на тот, который работает довольно хорошо: Проверьте память об ошибке.
Плюсы SNMP:
У меня установлен snmp на всех удаленных узлах, которые я отслеживаю. Это позволяет мне отслеживать все мои системы с один центральный сервер (серверы), без необходимости копировать или устанавливать плагин на удаленных узлах.
Минусы SNMP:
Вы должны были бы обеспечить snmp-агент устанавливается на каждом из удаленных узлов, на которых вы хотите отслеживать память. Однако эта установка будет одноразовой сделкой. Если вы используете в своей среде инструменты автоматизации, такие как chef или puppet, или аналогичные инструменты, то это вообще не проблема.
Настройка SNMP-агента на удаленном узле (узлах):
После установки snmp-агента просто откройте файл /etc/snmpd/snmpd.conf и добавьте в него эту строку:
rocommunity (specify-a-community-string-aka-password-here)
Затем перезапустите агент snmpd с помощью:
/etc/init.d/snmpd restart
Затем на вашем центральном сервере, с которого вы хотите отслеживать все остальные ваши серверы, вы можете выполнить следующую команду:
$ time ./checkMemoryviaSNMP -v2 public gearman001.phs.blah.com 30 90 graphite,10.10.10.10,2003,typicalWARNING: Used = [ 3.26154 GB ], Installed = [ 5.71509 GB ], PCT.Used = [ 57.069% ], Available.Memory = [ 2.00291 GB ]. Buffer = [ 137.594 MB ], Cached = [ 1.3849 GB ]. Thresholds: [ W=(30%) / C=(90%) ]. System Information = [ Linux gearman001.phs.blah.com 2.6.32-504.30.3.el6.x86_64 #1 SMP Thu Jul 9 15:20:47 EDT 2015 x86_64 ].real 0m0.23suser 0m0.03ssys 0m0.02s