1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/v587xpt-proketSteward

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Прокет Стюард

Введение

Прокет Стюард — это программа для мониторинга, которая включает в себя функции реального времени для отслеживания процессов, фильтрации строк файлов и оповещения. Программа разработана на языке Python 3.

  1. Мониторинг файлов журналов в реальном времени, фильтрация определённых ключевых слов и немедленное оповещение.
  2. Мониторинг использования процессора, памяти и дискового пространства системы, запуск оповещения при достижении пороговых значений.
  3. Разделение файлов журнала: мониторинг указанных файлов, создание резервных копий и новых файлов при достижении определённого размера файла, чтобы предотвратить появление одного большого файла.
  4. Мониторинг количества процессов указанного типа, отправка информации об оповещении при снижении ниже установленного значения.

Описание функций

  1. Мониторинг полей в журнале:

    • Мониторинг ключевых слов в журналах, таких как access.log nginx. Если в журнале появляется указанное ключевое слово, то строка и соседние строки будут отправлены вместе с оповещением или записаны в журнал. Например, если определено ключевое слово «error», то при появлении этого слова в журнале будет запущено оповещение.
  2. Мониторинг параметров системы:

    • Отслеживание использования ресурсов системы (процессор, память, дисковое пространство), запуск оповещения при превышении пороговых значений, заданных в конфигурационном файле.
  3. Разделение файлов журнала:

    • Наблюдение за размером файлов журнала, выполнение резервного копирования, создания новых файлов и разделения при достижении заданного размера. Это предотвращает появление одного большого файла журнала.
  4. Мониторинг процессов:

    • Слежение за определёнными процессами, запуск оповещения, если количество процессов становится ниже порогового значения. Например, можно настроить программу так, чтобы она отслеживала количество процессов Java и запускала оповещение, если их число становится меньше 1.

Архитектура программы

[root@xpt ~]# tree proketSteward/
proketSteward/
├── bin							#реальные исполняемые файлы хранятся здесь
│   ├── basics_class.py					#базовые классы, определяют некоторые общие методы, другие коды могут быть импортированы и вызваны при необходимости
│   ├── filtration_log_old.py			#старый код для мониторинга полей журнала, не имеет никакого эффекта, сохранён для справки
│   ├── filtration_log.py				#новый код для мониторинга полей журнала, фактически выполняемый код
│   ├── init_action.sh					#стартовый скрипт, используется для запуска, остановки и проверки состояния службы
│   ├── logFile_size.py					#код для мониторинга размера файлов, выполняет разделение файлов журнала
│   ├── process_monitoring.py			#код для мониторинга процессов
│   ├── send_info.py					#файл для отправки оповещений, определяет типы оповещений (например, электронная почта, WeChat)
│   ├── system_parameter_action.py		#фактический исполняемый файл для мониторинга параметров системы
│   └── test.py							#тестовый файл для редактирования кода, не обращайте на него внимания
├── conf							#каталог для хранения конфигурационных файлов
│   ├── global.conf						#глобальный конфигурационный файл
│   └── send_info.conf					#конфигурационный файл для отправки оповещений
├── LICENSE							#лицензия с открытым исходным кодом
├── logs							#место хранения файлов журнала
│   ├── filtration_log.log
│   └── messages.log
├── pids							#файлы pid после запуска службы
│   └── README.txt
├── README.md						#самоописательный файл
└── requirements.txt				#зависимости Python

Установка

  1. Установите Python 3 (версии 3.6–3.9 подходят).

    Официальный сайт для скачивания: https://www.python.org/downloads/

    Инструкции по установке см.:

    http://note.youdao.com/noteshare?id=3ce3e3ca9fa3b04b8715c6516f850006&sub=7D093F13E9164C9A8F7E21115B8B7CC2

  2. Установите пакеты Python, перечисленные в файле requirements.txt.

    pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

    Обязательно используйте Python 3, который вы установили на первом шаге. В противном случае пакеты, установленные с помощью pip, могут не соответствовать пакетам, используемым Python 3.

  3. Настройте файлы конфигурации в каталоге conf/.

  4. Запустите стартовый скрипт.

sh bin/init_action.sh start

Использование

  1. Настройте параметр python_path в conf/global.conf, указав фактический путь к Python 3, так как он будет использоваться в стартовом скрипте.

  2. Настройте необходимые модули в conf/global.conf.

  3. Запустите, остановите и проверьте состояние службы.

[root@skip proketSteward]# sh bin/init_action.sh --help
Please execute correctly:
   |
   |___sh bin/init_action.sh start
   |   |___запуск службы
   |
   |___sh bin/init_action.sh stop
   |   |___остановка службы
   |
   |___sh bin/init_action.sh status
       |___проверка состояния службы

Файл конфигурации send_info.conf

Этот файл конфигурации предназначен для отправки уведомлений. Вы можете выбрать между уведомлениями через WeChat и электронную почту.

  • Модуль [weChat]:

    1. Войдите в WeChat.
    2. Скопируйте corpid вашей компании.
    3. Скопируйте параметры corpsecret и agentid.
    • Чтобы получить эти параметры, выполните следующие действия:
    • Нажмите «Моя компания».
    • Перейдите в раздел «Приложения управления».*
  • Модуль [mail]:

    В качестве примера рассмотрим использование сервиса 163.

    1. Включите SMTP.

    2. Создайте учётную запись электронной почты.

    3. Получите параметры SMTP-сервера.

Файл конфигурации global.conf

В этом файле конфигурации есть несколько модулей:

  • [global]: глобальный модуль, используемый для настройки среды Python.
  • [filtration_log]: модуль для мониторинга файлов журналов.
  • [cpu_info], [mem_info] и [disk_info]: модули для мониторинга производительности системы.
  • [log_file_cutting]: модуль для разделения файлов журнала.
  • [process_monitoring]: модуль для мониторинга процессов.

Параметры в модулях включают:

switch --- переключатель, используемый для включения или выключения функции;
interval --- интервал времени для проверки, может быть настроен отдельно для разных модулей; например, для диска можно увеличить интервал, поскольку его размер обычно не меняется часто;
send_info_mode --- метод уведомления, использовать ли WeChat или электронную почту;
sleep_time --- время ожидания после уведомления, чтобы избежать частых уведомлений;
critical_value --- пороговое значение, при котором срабатывает уведомление.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (2)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/v587xpt-proketSteward.git
git@api.gitlife.ru:oschina-mirror/v587xpt-proketSteward.git
oschina-mirror
v587xpt-proketSteward
v587xpt-proketSteward
master