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

OSCHINA-MIRROR/streamxhub-opencron

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

opencron

Это полноценная и универсальная система для планирования задач в Linux, которая позволяет решать сложные задачи по планированию в различных сценариях. Она также включает функции мониторинга в реальном времени, WebSSH и предоставляет удобную платформу для управления задачами по расписанию.

У вас есть потребность в выполнении задач по расписанию? Нужно определять задачи в crontab на каждом сервере Linux?

  • Нужно определять задачи на crontab каждого сервера Linux;
  • неудобно отслеживать выполнение задач;
  • нужно заходить на каждый компьютер, чтобы проверить результаты выполнения задач, что становится проблемой при большом количестве машин;
  • сложно координировать выполнение одной задачи на нескольких машинах, обеспечивая их последовательное выполнение;
  • если задача не выполняется, её нужно перезапустить, заново определяя время выполнения и позволяя ей повторно запуститься;
  • для завершения выполняемой задачи требуется её «убить», что требует поиска процесса и его завершения.

opencron решает все эти проблемы:

  • автоматизированное управление задачами с графическим интерфейсом пользователя;
  • выполнение задач одним кликом, что удобно;
  • поддержка правил времени Quartz и crontab, более мощные и гибкие;
  • удобное изменение времени выполнения задач;
  • просмотр состояния выполнения задач в реальном времени;
  • возможность «убить» задачу (включая дочерние задачи, вызванные текущей задачей), полностью завершая её выполнение;
  • повторное выполнение текущих задач;
  • уведомление о сбоях задач с отправкой сообщений после определённого количества попыток повторного запуска;
  • настройка таймаутов для задач, автоматическое завершение задач после превышения заданного времени выполнения;
  • управление процессами (выполнение сложных задач на нескольких компьютерах в определённой последовательности);
  • логирование выполнения задач для удобства просмотра;
  • многопользовательский режим с разными ролями;
  • одновременное выполнение команд или задач на выбранных N компьютерах;
  • WebSSH для доступа к серверам Linux через браузер;
  • мониторинг производительности серверов.

Среда выполнения

Для работы opencron требуется:

Установка

opencron состоит из двух частей: opencron-server (центральная платформа для управления) и opencron-agent (для управления задачами на компьютерах). Каждый компьютер, который должен быть включён в централизованную систему управления, должен установить opencron-agent. После установки opencron-agent на компьютере его можно добавить в opencron-server.

opencron-agent: установка

  1. Скачайте исходный код:

git clone https://github.com/wolfboys/opencron.git

  1. Измените информацию о подключении к базе данных в jdbc.properties на сервере opencron-server:
    • создайте базу данных с именем opencron или другим;
    • перейдите в каталог opencron-server/src/main/resources и измените файл config.properties, указав следующие параметры:
      • jdbc.driver=com.mysql.jdbc.Driver;
      • jdbc.url=jdbc:mysql://${you_mysql_host}:3306/opencron?useUnicode=true&characterEncoding=UTF-8;
      • jdbc.username=${user};
      • jdbc.password=${password}.
  2. Перейдите в каталог исходного кода и выполните сборку:

cd opencron sh build.sh

  1. Собранные файлы находятся в каталоге build/dist.
  2. Установите agent:
  • запустите agent.sh или установите вручную;
  • для ручной установки распакуйте архив opencron-agent-${version}.tar.gz на целевой сервер, где будет выполняться управление задачами. В архиве вы найдёте следующие каталоги:
    • bin/ — содержит скрипт startup.sh для запуска агента и shutdown.sh для его остановки, а также скрипт opencron.sh, управляющий запуском и остановкой агента;
    • conf/ — здесь находится файл log4j.properties для настройки Log4j;
    • lib/ — каталог с необходимыми jar-файлами для работы агента;
    • temp/ — временный каталог для хранения файлов проекта;
    • logs/ — здесь создаётся файл opencron.out при запуске проекта.
  • Распакуйте архив:

tar -xzvf opencron-agent-${version}.tar.gz

  • Запустите агент:

перейдите в bin/; запустите startup.sh. Скрипт принимает четыре параметра: порт для запуска службы, пароль (по умолчанию — opencron), URL для автоматической регистрации и пароль для регистрации (по умолчанию — opencron@2016). Пример команды для указания параметров: sh startup.sh -P10001 -p123456 -shttp://127.00.0.1:8080 -kopencron@2016. Параметры: -P (заглавные P) — порт для запуска службы; -p (строчные p) — текущий пароль для подключения к этому компьютеру; -s — URL для автоматического обнаружения; -k — пароль для автоматического обнаружения (соответствует значению ключа opencron.autoRegKey в файле config.properties). Более подробную информацию о запуске можно найти в файле logs/opencron.out.

  • Остановите агент:

перейдите в bin/; выполните shutdown.sh.

opencron-server: установка

  1. Соберите проект и найдите полученный файл.
  2. Запустите сервер:
  • используйте автоматический запуск с помощью server.sh;
  • или настройте Tomcat или другой веб-сервер вручную. Для настройки Tomcat:
    1. скачайте и установите Tomcat 8 или более позднюю версию (https://tomcat.apache.org);
    2. распакуйте Tomcat и удалите все файлы из каталога webapps;
    3. создайте новый каталог ROOT в webapps;
    4. поместите файл server.war в ROOT и удалите файл war;
    5. измените информацию о соединении с базой данных в config.properties;
    6. запустите сервер. Другой способ настройки — использовать конфигурацию server.xml для внешнего доступа к файлу war. Ниже приведён полный перевод текста на русский язык:

Конфигурация server.xml:

<?xml version='1.0' encoding='utf-8'?>
<Server port="7000" shutdown="SHUTDOWN">
    <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

    <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="Пользовательская база данных, которую можно обновлять и сохранять"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
    </GlobalNamingResources>

    <Service name="Catalina">

        <!-- Проектный порт доступа -->
        <Connector port="8080" protocol="HTTP/1.1"
                    connectionTimeout="20000"
                    maxThreads="550"
                    minSpareThreads="25"
                    maxSpareThreads="75"
                    minProcessors="100"
                    maxProcessors="300"
                    acceptCount="100"
                    enableLookups="false"
                    disableUploadTimeout="true"
                    compression="on"
                    compressionMinSize="2048"
                    compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
                    redirectPort="7970"
                    URIEncoding="UTF-8"/>
        <Connector port="3007" protocol="AJP/1.3" redirectPort="2007" />

        <Engine name="Catalina" defaultHost="localhost">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
            <Host name="localhost"
                  appBase="/data/www/opencron"
                  unpackWARs="true"
                  autoDeploy="false"
                  xmlValidation="false"
                  xmlNamespaceAware="false"
                  URIEncoding="UTF-8">

            <Context path="/"
                      docBase="/data/www/opencron"
                      debug="0"
                      reloadable="true"/>
        </Host>
    </Engine>
</Service>

</Server>

Примечание:

  1. В конфигурации Host и Context указаны пути к внешним распакованным проектам. Рекомендуется использовать этот способ развёртывания.

  2. После запуска Tomcat доступ к серверу осуществляется через браузер по адресу $ip:$port, например: http://192.168.0.188:8080.

  3. Независимо от способа развёртывания, при первом запуске автоматически создаётся таблица с начальным именем пользователя opencron и паролем opencron. При первом входе будет предложено изменить пароль.

  4. Для управления агентами необходимо выполнить следующие шаги:

    • Добавить агенты в меню «Исполнительный менеджер».
    • Ввести IP-адрес агента, порт подключения и пароль.
    • Нажать «Проверить связь». Если соединение установлено успешно, сервер может управлять агентом.
    • Если подключение не удалось, сначала проверьте, успешно ли запущен агент, и изучите подробности в журнале.

Важные замечания:

  1. Если вы самостоятельно компилируете проект, возможно, что скрипт агента не будет выполнен. В этом случае измените кодировку всех скриптов в папке agent/bin: a) vim *.sh b) :set ff=unix и сохраните изменения.

  2. Если после изменения кодировки скрипты всё равно не выполняются, попробуйте дать разрешения на запуск скриптов: chmod 777 bin/*

  3. Если агент успешно запущен, но сервер не может подключиться, проверьте, открыт ли порт агента (например, многие облачные серверы требуют открытия портов для доступа).

  4. Если сервер использует Nginx для обратного проксирования, настройте его следующим образом:

upstream opencron {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name www.opencron.org;
    root /data/www/opencron/;

    location / {
        proxy_pass        http://opencron;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header
``` ```
X-Forwarded-For  $proxy_add_x_forwarded_for;
        client_max_body_size  10m;
        client_body_buffer_size 1m;
        proxy_connect_timeout 300;
        proxy_send_timeout    300;
        proxy_read_timeout    300;
        proxy_buffer_size     4k;
        proxy_buffers    4   32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size  64k;
    }

    #这里必须这么配置,否则web终端无法使用
    location  ^~  /terminal.ws {
        proxy_pass http://opencron;
        proxy_redirect    off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

Больше вопросов можно задать в группе общения opencron 156429713. Будем рады видеть вас там.

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

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

Введение

Opencron — это мощная система управления задачами Linux crontab, разработанная на основе JAVA. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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