Intereting Posts
Почему изменяется точка монтирования моей корневой файловой системы? Где найти результирующий .so файл компиляции? Как определить, как настроить Minicom для последовательного подключения к системе на чипе? Динамическая обработка текста вывода терминала Соединение ssh отказалось от того же ПК при выходе за пределы локальной сети Устройство доступно даже после `blockdev –setro` Понимание кодов пробуждения ACPI / DSDT (таблица характеристик дифференцированной системы) BIOS Thinkpad T430s Почему мой bashscript не работает? Что использовать для упрощения Linux-бокса? Аппаргор, SELinux, grsecurity, SMACK, chroot? Запустить команду при подключении к хосту Как сделать цикл списка (чтение каждой строки до конца), не сохраняя список в виде файла? Как сравнить использование памяти с помощью Window Managers? Как найти путь, где установлен jdk? Возможно ли подделка определенного пути для процесса? Как отключить диалог «не могу установить атрибут» в Double Commander 0.7.4?

Анализ файлов журналов

Я пытаюсь разработать инструмент системной статистики для Ubuntu, который будет хранить данные об использовании ресурсов процессами / пользователями. Я храню эти данные в своих собственных файлах журналов, таких как /var/log/<process>.log . Я хочу знать, есть ли какой-либо API (например, procfs для сбора данных о процессах) для анализа моих собственных файлов журналов с использованием языка программирования C. Эти файлы журналов будут содержать просто имя пользователя, идентификатор процесса, CPU%, MEM%, ввод-вывод и т. Д.

Какой API вы хотите или хотите? Файлы журналов – это текст, использование любой утилиты синтаксического анализа текста, скрипта или языка, которые могут оказаться полезными.

Лично мой язык выбора имеет тенденцию быть awk , но это потому, что я знаком с ним. Хотя иногда бывает достаточно простого grep или sed .

Но на самом деле все зависит от того, что вы хотите делать с вашими журналами. Возможности бесконечны.

Когда вы создаете свои собственные файлы журналов, я думаю, вы также должны создать свой собственный API.

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

У вас есть выбор, который вы можете выбрать в зависимости от ваших потребностей и навыков.

Perl – язык сценариев, который очень хорош при обработке текста. Perl часто использует SED и AWK

Awk – Вы можете легко использовать это в сценарии оболочки. Awk использует некоторый синтаксис, который более сложный, чем sed (но все же легкий). Awk намного быстрее, чем sed.

Sed. Также как awk, sed можно использовать в сценарии оболочки. Сед легко для большинства людей учиться.

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