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

OSCHINA-MIRROR/az13js-pl-log-notic

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

Это система предупреждения, которая отправляет сообщения в корпоративный WeChat на основе ошибок из журнала Elasticsearch. Ошибки берутся из производственной системы. Ниже описано, как установить и развернуть систему.

Установка и сборка статических файлов

Установка необходимых модулей для сборки:

  • Перейдите в папку webpage:

    • cd webpage
  • Установите модули:

    • npm install

Примечание: если скорость установки низкая, можно заменить источник Taobao.

Затем соберите страницу:

  • npm run build

Собранные статические файлы находятся в папке webpage/public/. Скопируйте их вручную в pladmin/pltplconf/templates/pltplconf/, затем замените теги шаблона в index.html и переместите статические файлы в pladmin/pltplconf/static.

Использование Makefile для сборки

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

  • make clean && make

Развёртывание в среде сервиса

Установка зависимостей

Pl-log-notic разработан на Python 3.8.

  • pip install -r requirements.txt

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

В особых случаях может потребоваться установить пакеты в определённое место. В этом случае используйте опцию --target:

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

При запуске команды python необходимо указать переменную среды PYTHONPATH:

PYTHONPATH=package python

Тогда модуль будет содержать каталог package текущего каталога:

$ PYTHONPATH=package python Python 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information.

import sys sys.path ['', '/home/az13js/pl-log-notic/package', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/az13js/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']

Инициализация таблиц базы данных

Перейдите в папку pladmin и выполните команду:

  • python3 manage.py migrate

По умолчанию используется локальная база данных sqlite3, файл базы данных находится в pladmin/db.sqlite3.

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

Для использования MySQL необходимо внести некоторые изменения.

  1. Измените файл конфигурации. По умолчанию файл конфигурации находится в pladmin/pladmin/settings.py, если только вы не изменили путь к файлу конфигурации.

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'test_001', # 数据库名 'USER': 'root', # 账号 'PASSWORD': 'PASSWORD', # 密码 'HOST': '127.0.0.1', # HOST 'POST': 3306, # 端口 'CONN_MAX_AGE': 60 # 数据库连接维持时间 } }

  1. Внесите изменения в код. В файле pladmin/pltplconf/init.py импортируйте pymysql и установите его:

import pymysql pymysql.install_as_MySQLdb()

Запуск запланированных задач

Перейдите в папку pladmin и запустите команду:

  • python3 manage.py scheduler

Эта команда не переводит сервер в фоновый режим, рекомендуется настроить supervisor для мониторинга. Если используется sqlite3, могут возникнуть проблемы с блокировкой базы данных, но это не критично.

Запустите сервер

Перейдите в папку pladmin и запустите команду:

  • python3 manage.py runserver 9210

Порт 9210 — это порт веб-службы, который можно изменить.

Просмотр страницы

Откройте браузер и перейдите по адресу http://127.0.0.1:9210/.

Создание суперпользователя

Сервер использует фреймворк Django. Если вы планируете использовать встроенный бэкэнд, вы можете создать суперпользователя.

Перейдите в папку pladmin и запустите команду:

  • python3 manage.py createsuperuser

Заполните информацию о пользователе и пароле.

Запуск узла экспорта данных ES

Система поддерживает экспорт всех данных из ES в соответствии с пользовательскими правилами. Принцип работы заключается в том, что Worker узел запрашивает у Web службы задачи на экспорт, выполняет их и экспортирует данные. Можно запустить несколько Worker узлов, используя разные имена для каждого. Для запуска Worker необходимо настроить переменные среды следующим образом:

  • WORKER_NAME — имя узла, обязательное поле, каждый процесс должен иметь уникальное имя.
  • HOST — имя хоста для доступа по HTTP, если доступ возможен только по IP, то можно указать любой адрес.
  • IP — IP-адрес веб-сервиса, необязательное поле, если IP-адрес может меняться.
  • PORT — порт веб-сервера, по умолчанию 80, необязательно.
  • CACHETIME — время кэширования курсора, по умолчанию 1 минута, 1m.
  • USER — базовое HTTP-аутентификация, имя пользователя, необязательно.
  • PASSWORD — базовая HTTP-аутентификация, пароль, необязательно.

Пример:

cd pladmin WORKER_NAME=local-worker-01 HOST=pl-log-notic.az13js.cn IP=127.0.0.1 PORT=9210 CACHETIME=1m python3 manage.py export_worker

Эту команду следует защитить от неожиданного завершения программы. В режиме одного компьютера экспортированные файлы сохраняются в папку pladmin/pltplconf/static, откуда их можно загрузить. При развёртывании кластера на разных серверах загрузка файлов может быть невозможна. В таком случае рекомендуется обратиться к скрипту pladmin/export_floder_process_script.py для написания команды загрузки файлов в специализированный файловый сервис, а затем изменить параметр EXPORT_FLODER_PROCESS_COMMAND в конфигурационном файле. Worker процесс после завершения экспорта данных передаст папку с данными в качестве первого аргумента команде, указанной в параметре EXPORT_FLODER_PROCESS_COMMAND конфигурационного файла. Затем команда выведет содержимое папки в виде ссылки, которую веб-сервис сохранит и отобразит пользователю.

Развёртывание кластера

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

  1. Для кластера узлов экспорта необходимо обратиться к сценарию pladmin/export_floder_process_script.py и написать команду для загрузки файлов в специальный файловый сервис. Затем измените параметр EXPORT_FLODER_PROCESS_COMMAND в файле конфигурации.
  2. Для кластера планировщика требуется служба Redis, затем измените параметр REDIS_SETTING в файле конфигурации.
  3. Для веб-кластера требуется отдельная база данных. Обратитесь к разделу MySQL выше.

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

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

Введение

Отправка уведомлений о событиях по расписанию, GitHub адрес: https://github.com/az13js/pl-log-notic. Система отслеживает логи и поддерживает Elasticsearch, робота корпоративной WeChat. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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