Rapid SCADA на Apache на Linux

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 22 всего)
  • Автор
    Сообщения
  • #8129
    Mikhail
    Модератор

    Протестирована работа Rapid SCADA на Apache на Linux. Apache работает стабильнее по сравнению с XSP. Ниже инструкция по установке.

    #8130
    Mikhail
    Модератор

    Installation of Rapid SCADA on Linux
    ————————————

    1. Copy all the files of Rapid SCADA Mono from scada folder to /opt/scada

    2. Copy the scripts from daemons folder to /etc/init.d

    3. Grant full access to the following folders of the Webstation application:

    sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/config
    sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/log
    sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/storage

    4. Make the scripts executable:

    sudo chmod +x /opt/scada/restart_apache.sh
    sudo chmod +x /opt/scada/restart_xsp.sh
    sudo chmod +x /opt/scada/scadarestart.sh
    sudo chmod +x /opt/scada/scadastart.sh
    sudo chmod +x /opt/scada/scadastop.sh
    sudo chmod +x /opt/scada/svc_install.sh
    sudo chmod +x /opt/scada/svc_uninstall.sh

    5. Add the Mono repository to your system.
    Open http://www.mono-project.com/download/#download-lin and follow the instructions of paragraph 1.

    Example for Debian:
    sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    echo «deb http://download.mono-project.com/repo/debian stretch main» | sudo tee /etc/apt/sources.list.d/mono-official.list
    sudo apt-get update

    6. Install Mono .NET Framework:

    sudo apt-get install mono-complete

    7. Check whether Apache web server already installed or not:
    sudo service apache2 status

    Install Apache web server if needed:
    sudo apt-get install apache2

    Note: Apache configuration files are located in /etc/apache2

    8. Install the required modules:

    sudo apt-get install libapache2-mod-mono mono-apache-server4

    9. Create a link to the web application files:

    ln -s /opt/scada/ScadaWeb /var/www/html/scada

    10. Configure the web application.
    Open http://go-mono.com/config-mod-mono/Default.aspx and fill the form as follows:

    Configuration Type: Application
    Application Name: scada
    Path to Document Root: /var/www/html/scada
    Run Mono with debugging enabled: Off
    Enable Platform Abstraction: Off
    Enable mod_deflate: Off

    Download the configuration as scada.conf and set the parameter:
    MonoServerPath scada «/usr/bin/mod-mono-server4»

    Copy scada.conf to /etc/apache2/sites-available and run:
    a2ensite scada.conf

    11. Execute the script to install deamons:

    sudo /opt/scada/svc_install.sh

    12. In case of using SD card, protect it by moving frequently used folders to RAM.
    Skip this step if you use a regular HDD.
    Add the lines below to /etc/fstab

    tmpfs /tmp tmpfs defaults,noatime,size=50m 0 0
    tmpfs /var/log tmpfs defaults,noatime,size=25m 0 0
    tmpfs /var/log/apache2 tmpfs defaults,noatime,size=25m 0 0
    tmpfs /opt/scada/ScadaComm/Log tmpfs defaults,noatime,size=100m 0 0
    tmpfs /opt/scada/ScadaServer/Log tmpfs defaults,noatime,size=10m 0 0
    tmpfs /opt/scada/ScadaWeb/log tmpfs defaults,noatime,size=10m 0 0
    tmpfs /opt/scada/ArchiveDAT/Cur tmpfs defaults,noatime,size=10m 0 0

    13. Restart your computer:

    sudo reboot

    14. Open SCADA-Web (Google Chrome is recommended).
    Default login and password are admin/12345

    http://Host_name_or_IP_address/scada

    15. Check logs in the following locations:

    /opt/scada/ScadaComm/Log
    /opt/scada/ScadaServer/Log
    /opt/scada/ScadaWeb/log

    #8131
    Mikhail
    Модератор

    Кроме того, в следующей версии сделаны улучшения, во многих случаях решающие проблему разлогинивания веб на Linux.

    #10482
    kustar
    Участник

    Михаил, добрый день!

    Ссылка в п.10 не работает.
    Как по-другому сделать scada.conf?

    #10490
    Mikhail
    Модератор

    Да, ссылка не работает, к сожалению. Нужный файл лежит в архиве дистрибутива Линукс.

    #10493
    kustar
    Участник

    Еще вопрос специалистам:
    в моем дистрибе (Centos 7) нет утилиты a2ensite. Если я правильно понял, ее задача — сделать линк в папке sites-enabled на конф-файл в папке sites-available?

    #10494
    kustar
    Участник

    Настроил Apache, как написано.
    СКАДА Сервер и коммуникатор работают на этой же машине.
    При открывании web странички прохожу логин. Пароли юзеров распознаются правильно.
    Представления показывает правильно, все КП на месте. При попытке открыть таблицу она (таблица) отображается, но данные в нее не попадают:
    Error updating current data
    Error updating hourly data

    Схем тоже нет:
    Scheme loading failed. Try to reload scheme

    Где-то проблема с путями?

    #10495
    kustar
    Участник

    С xsp сервером все нормально.

    #10497
    Mikhail
    Модератор

    Scheme loading failed. Try to reload scheme

    Не работают веб-сервисы по технологии WCF. Вы можете увидеть более подробную ошибку в консоли браузера по F12. Но вот как её исправить, готовых рецептов, не могу предложить. Разве что установить на другом сервере на Ubuntu (на нём наиболее опробовано), сравнить результат и попытаться понять, в чём отличия установки.

    Что-то будем делать в будущем для упрощения работы на Linux, есть некоторые идеи.

    #10510
    kustar
    Участник

    Поставить Ubuntu у меня, к сожалению, нет возможности.

    Параллельно работают SCADA + IIS на Win7 и SCADA + Apache.
    Структура данных одинакова.
    Открываю одну и ту же схему на странице с Apache и на странице с IIS.

    Консоль по F12 с Apache:

    16:37:02 Load view 31 by /scada/plugins/Scheme/Scheme.aspx?viewID=31
    /scada/ClientApiSvc.svc/GetEvents?year=2018&month=10&day=28&cnlNums=%20&viewIDs=%20&viewID=33&lastCount=100&startEvNum=1&dataAge=0&_=1540726392040:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    schememodel.js:569 16:37:02 Start loading scheme
    /scada/plugins/Scheme/SchemeSvc.svc/GetSchemeDoc?viewID=31&viewStamp=0&_=1540726392041:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    utils.js:151 16:37:02 Request ‘/scada/plugins/Scheme/SchemeSvc.svc/GetSchemeDoc‘ failed: 404 (Not Found)

    Как мне кажется, в этих путях не хватает ScadaWeb
    Где эти пути прописаны?

    #10536
    Mikhail
    Модератор

    Это виртуальные пути, которые контролирует технология WCF в рамках .NET.
    По WCF много нареканий, будем заменять её на более современные средства, но это далеко не сразу. Какая-то проблема при установке Mono в связке с Apache.

    Давайте проверим версии Mono и Apache, какие у Вас?
    Приведите более полный лог консоли браузера, например, при открытии не схемы, а таблицы.

    #10545
    kustar
    Участник

    Версии софта:

    [root@main goodman]# mono -V
    Mono JIT compiler version 5.14.0.177 (tarball Sat Aug 4 08:32:47 UTC 2018)
    Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. http://www.mono-project.com
    TLS: __thread
    SIGSEGV: altstack
    Notifications: epoll
    Architecture: amd64
    Disabled: none
    Misc: softdebug
    Interpreter: yes
    LLVM: yes(3.6.0svn-mono-/)
    GC: sgen (concurrent by default)
    [root@main goodman]# httpd -v
    Server version: Apache/2.4.6 (CentOS)
    Server built: Jun 27 2018 13:48:59

    #10546
    kustar
    Участник

    Попытка открыть таблицу.

    12:43:04 Load view 43 by /scada/plugins/Table/Table.aspx?viewID=43
    m.gif:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    v.gif:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    temp.gif:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    g.gif:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    /scada/ClientApiSvc.svc/GetCurCnlDataExt?cnlNums=%20&viewIDs=%20&viewID=43&_=1540885346817:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    utils.js:151 12:43:04 Request ‘ClientApiSvc.svc/GetCurCnlDataExt’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    /scada/ClientApiSvc.svc/GetHourCnlData?year=2018&month=10&day=30&startHour=0&endHour=23&cnlNums=%20&viewIDs=%20&viewID=43&existing=false&dataAge=%20&_=1540885346818:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    utils.js:151 12:43:04 Request ‘ClientApiSvc.svc/GetHourCnlData’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    /scada/ClientApiSvc.svc/GetEvents?year=2018&month=10&day=30&cnlNums=%20&viewIDs=%20&viewID=43&lastCount=100&startEvNum=0&dataAge=0&_=1540885346819:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    utils.js:151 12:43:04 Request ‘ClientApiSvc.svc/GetEvents’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    /scada/ClientApiSvc.svc/GetCurCnlDataExt?cnlNums=%20&viewIDs=%20&viewID=43&_=1540885346820:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    utils.js:151 12:43:05 Request ‘ClientApiSvc.svc/GetCurCnlDataExt’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    /scada/ClientApiSvc.svc/GetEvents?year=2018&month=10&day=30&cnlNums=%20&viewIDs=%20&viewID=43&lastCount=100&startEvNum=1&dataAge=0&_=1540885346821:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    utils.js:151 12:43:05 Request ‘ClientApiSvc.svc/GetEvents’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    /scada/ClientApiSvc.svc/GetCurCnlDataExt?cnlNums=%20&viewIDs=%20&viewID=43&_=1540885346822:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    utils.js:151 12:43:06 Request ‘ClientApiSvc.svc/GetCurCnlDataExt’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    /scada/ClientApiSvc.svc/GetEvents?year=2018&month=10&day=30&cnlNums=%20&viewIDs=%20&viewID=43&lastCount=100&startEvNum=1&dataAge=0&_=1540885346823:1 Failed to load resource: the server responded with a status of 404 (Not Found)
    utils.js:151 12:43:06 Request ‘ClientApiSvc.svc/GetEvents’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    jquery.min.js:4 GET http://10.162.1.254/scada/ClientApiSvc.svc/CheckLoggedOn?_=1540885346824 404 (Not Found)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    checkLoggedOn @ clientapi.js:177
    _checkLoggedOn @ mastermain.js:50
    (anonymous) @ mastermain.js:59
    utils.js:151 12:43:07 Request ‘ClientApiSvc.svc/CheckLoggedOn’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    (anonymous) @ clientapi.js:157
    (anonymous) @ ajaxqueue.js:44
    i @ jquery.min.js:2
    fireWith @ jquery.min.js:2
    z @ jquery.min.js:4
    (anonymous) @ jquery.min.js:4
    load (async)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    checkLoggedOn @ clientapi.js:177
    _checkLoggedOn @ mastermain.js:50
    (anonymous) @ mastermain.js:59
    jquery.min.js:4 GET http://10.162.1.254/scada/ClientApiSvc.svc/GetCurCnlDataExt?cnlNums=%20&viewIDs=%20&viewID=43&_=1540885346825 404 (Not Found)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    getCurCnlDataExt @ clientapi.js:191
    updateCurData @ table.js:262
    startUpdatingCurData @ table.js:342
    utils.js:151 12:43:07 Request ‘ClientApiSvc.svc/GetCurCnlDataExt’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    (anonymous) @ clientapi.js:157
    (anonymous) @ ajaxqueue.js:44
    i @ jquery.min.js:2
    fireWith @ jquery.min.js:2
    z @ jquery.min.js:4
    (anonymous) @ jquery.min.js:4
    load (async)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    getCurCnlDataExt @ clientapi.js:191
    updateCurData @ table.js:262
    startUpdatingCurData @ table.js:342
    jquery.min.js:4 GET http://10.162.1.254/scada/ClientApiSvc.svc/GetEvents?year=2018&month=10&day=30&cnlNums=%20&viewIDs=%20&viewID=43&lastCount=100&startEvNum=1&dataAge=0&_=1540885346826 404 (Not Found)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    getEvents @ clientapi.js:209
    updateEvents @ events.js:251
    startPartialUpdatingEvents @ events.js:335
    utils.js:151 12:43:07 Request ‘ClientApiSvc.svc/GetEvents’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    (anonymous) @ clientapi.js:157
    (anonymous) @ ajaxqueue.js:44
    i @ jquery.min.js:2
    fireWith @ jquery.min.js:2
    z @ jquery.min.js:4
    (anonymous) @ jquery.min.js:4
    load (async)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    getEvents @ clientapi.js:209
    updateEvents @ events.js:251
    startPartialUpdatingEvents @ events.js:335
    jquery.min.js:4 GET http://10.162.1.254/scada/ClientApiSvc.svc/GetCurCnlDataExt?cnlNums=%20&viewIDs=%20&viewID=43&_=1540885346827 404 (Not Found)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    getCurCnlDataExt @ clientapi.js:191
    updateCurData @ table.js:262
    startUpdatingCurData @ table.js:342
    setTimeout (async)
    (anonymous) @ table.js:347
    (anonymous) @ table.js:280
    (anonymous) @ clientapi.js:159
    (anonymous) @ ajaxqueue.js:44
    i @ jquery.min.js:2
    fireWith @ jquery.min.js:2
    z @ jquery.min.js:4
    (anonymous) @ jquery.min.js:4
    load (async)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    getCurCnlDataExt @ clientapi.js:191
    updateCurData @ table.js:262
    startUpdatingCurData @ table.js:342
    utils.js:151 12:43:08 Request ‘ClientApiSvc.svc/GetCurCnlDataExt’ failed: 404 (Not Found)
    logFailedRequest @ utils.js:151
    (anonymous) @ clientapi.js:157
    (anonymous) @ ajaxqueue.js:44
    i @ jquery.min.js:2
    fireWith @ jquery.min.js:2
    z @ jquery.min.js:4
    (anonymous) @ jquery.min.js:4
    load (async)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    getCurCnlDataExt @ clientapi.js:191
    updateCurData @ table.js:262
    startUpdatingCurData @ table.js:342
    setTimeout (async)
    (anonymous) @ table.js:347
    (anonymous) @ table.js:280
    (anonymous) @ clientapi.js:159
    (anonymous) @ ajaxqueue.js:44
    i @ jquery.min.js:2
    fireWith @ jquery.min.js:2
    z @ jquery.min.js:4
    (anonymous) @ jquery.min.js:4
    load (async)
    send @ jquery.min.js:4
    ajax @ jquery.min.js:4
    scada.AjaxQueue._request @ ajaxqueue.js:36
    setTimeout (async)
    scada.AjaxQueue._run @ ajaxqueue.js:64
    scada.AjaxQueue.append @ ajaxqueue.js:77
    scada.AjaxQueue.ajax @ ajaxqueue.js:84
    _request @ clientapi.js:128
    getCurCnlDataExt @ clientapi.js:191
    updateCurData @ table.js:262
    startUpdatingCurData @ table.js:342
    jquery.min.js:4 GET http://10.162.1.254/scada/ClientApiSvc.svc/GetEvents?year=2018&month=10&day=30&cnlNums=%20&viewIDs=%20&viewID=43&lastCount=100&startEvNum=1&dataAge=0&_=1540885346828 404 (Not Found)

    Таблица на странице отображается, но без данных.

    Error updating current data
    Error updating hourly data

    #10570
    Mikhail
    Модератор

    Моно достаточно свежая. Однако текущая 5.16.0 предпочтительна, потому что была исправлена важная ошибка с утечкой памяти. Правда на проблему это, скорее всего, не повлияет.

    Параллельно работают SCADA + IIS на Win7 и SCADA + Apache.

    SCADA + Apache на какой операционке работают?

    Затрудняюсь ответить, как можно решить данную проблему. Нужно искать отличия от системы, на которой всё нормально работает.

    #10576
    kustar
    Участник

    Операционка Centos7, семейство RH.

    Обновил mono:
    [root@main goodman]# mono -V
    Mono JIT compiler version 5.16.0.187 (tarball Mon Oct 8 08:52:21 UTC 2018)
    Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. http://www.mono-project.com
    TLS: __thread
    SIGSEGV: altstack
    Notifications: epoll
    Architecture: amd64
    Disabled: none
    Misc: softdebug
    Interpreter: yes
    LLVM: yes(3.6.0svn-mono-/)
    GC: sgen (concurrent by default)

    Изменений нет.

    Михаил, может быть есть какие-нибудь простые тестовые приложения?

Просмотр 15 сообщений - с 1 по 15 (из 22 всего)
  • Вы должны авторизироваться для ответа в этой теме.