Я бы хотел написать собственное приложение для мониторинга сервера. В идеале он мог бы показывать такую статистику, как загрузка, время безотказной работы, активность процессора, наиболее активные процессы, использование памяти процессами и т. Д. Как лучше всего получить эту информацию с сервера? Сначала я думал о запуске команд ssh -e, но хотел посмотреть, есть ли более эффективный способ, чем опрос сервера.
В качестве альтернативы, что лучше всего связать с данными, которые собираются Munin или аналогичным инструментом мониторинга?
ОБНОВИТЬ
Чтобы быть более ясным, меня в основном интересует лучший способ получить данные, упомянутые выше, с сервера, чтобы я мог отобразить их в приложении для Android, которое я хочу создать. Написание реальных зондов на самом сервере на самом деле не входит в область работы, которую я хочу выполнять, поэтому я надеюсь, что Nagios или что-то подобное уже может предоставить данные, которые я ищу. Мне просто нужно было бы вытащить эти данные и отобразить их в моем собственном инструменте.
Один из способов справиться с этим - запустить агент snmp на ваших серверах и собрать результаты с помощью чего-то вроде munin или cacti. Вот достойный учебник по кактусам в котором объясняется, как настроить агент net-snmp в Linux.
Преимущество использования snmp заключается в том, что это механизм отчетности с наименьшим общим знаменателем для сетевых устройств. Почти все сетевые устройства можно настроить для запуска клиента snmp (за исключением потребительских коммутаторов и маршрутизаторов очень низкого уровня). Таким образом, если вы используете snmp для мониторинга ваших Linux-машин, вы можете также использовать snmp для мониторинга ваших коммутаторов, маршрутизаторов, сетевых принтеров и т. Д. Как правило, вы будете опрашивать устройства через регулярные интервалы.
Обратите внимание, что старая версия протокола snmp (2c) весьма небезопасна. Чтобы справиться с таким количеством людей, просто настройте агент snmp для работы только для чтения. На практике, пока вы используете snmp только для чтения во внутренней сети, риск безопасности невелик. Однако вы должны знать об ограничениях модели безопасности snmp перед ее использованием.
Вы начинаете не с того места. То, что вы отслеживаете, менее важно, чем то, как вы это отслеживаете. Первое всегда будет меняться, вам нужно начать с системы, которая:
В наличии имеется множество готовых инструментов, которые обеспечивают вышеуказанное и обычно идут в комплекте со всеми видами стандартных пробников. Мне нравится Nagios из-за его четкого разделения между зондами и механизмом планирования / отчетности, что делает тривиальным добавление дополнительных зондов и имеет большая библиотека заранее написанных зондов и надстроек (панель инструментов по умолчанию не так уж хороша, ИМХО, но написать свою было легко).
Я бы, наверное, посоветовал вам взглянуть на то, что уже сделано, вместо того, чтобы пытаться заново изобрести колесо. Я считаю, что Nagios работает неплохо и предоставляет базу, на которой вы можете легко расширить точки мониторинга. Агенты обмениваются данными по безопасному протоколу, но настроены на необходимые вам функции.