Changes between Version 1 and Version 2 of misc/botlog_pas


Ignore:
Timestamp:
08/17/18 18:26:04 (14 months ago)
Author:
michkawa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • misc/botlog_pas

    v1 v2  
    22 
    33= 電子ログシステム & 画像ログシステム = 
     4 
     5'''現在、記述中なので、プログラムの配布は後日行う予定''' 
    46 
    57KEKBで使用されているZlogの代替として、電子ログシステム(botlog)と画像ログシステム(!PrintAnyServer)を開発した。 
     
    1921 
    2022のみを前提としている。[[br]] 
    21 これはパッケージ中に、コンパイル済の python2.7、epics_base とapache用 mod_wsgi.so が入っているため。[[br]] 
    22 別のOSに入れる場合には、これらを別途コンパイルするか、パッケージを自力でインストールする必要がある。 
     23これはパッケージ中に、コンパイル済の python2.7、epics_base とapache用 mod_wsgi.so が入っているためなので、 
     24もし別のOSにインストールする場合には、これらを別途コンパイルするか、OSのpackageとpythonのpackageを自力でインストールする必要がある。 
    2325 
    2426また、apache関連の設定も上書きするので、既存のサーバーにインストールする際には、一旦別ディレクトリに展開するなどの注意が必要。[[br]] 
    2527なるべくなら新規のサーバーか仮想マシン上に展開するほうがいい。 
     28 
     29''' 
     30このシステムは、Web画面表示用javascriptのほとんどをCDN(Content Delivery Network)経由で取得しているので、外部ネットワークから完全に隔離されたネットワークでは動作しない。[[br]] 
     31必ず、グローバルネットワークへ接続可能なネットワークで使用すること。[[br]] 
     32''' 
     33この問題はいつかは解決する予定なので、もう少し時間を頂きたい。 
     34 
    2635 
    2736=== パッケージ展開 === 
     
    4150                 /log                ログ保存ディレクトリ 
    4251 
    43 /var/www/html/TEST                   初期サイトディレクトリ 
    44                   /printView           PrintAnyServer用ディレクトリ(/opt/OperationLog/PrintAnyServer/Printviewへのシンボリック) 
     52/var/www/html                        初期サイトディレクトリ 
     53             /printView                PrintAnyServer用ディレクトリ(/opt/OperationLog/PrintAnyServer/Printviewへのシンボリック) 
    4554/etc/httpd/conf/httpd.conf           apache 2.2用設定ファイル 
    4655          /conf.d/botlog.conf          botlog用設定ファイル 
     
    5261}}} 
    5362 
    54 そのまま上書きする場合には、rootで実行する 
     63そのまま上書きする場合には、rootで実行する必要がある 
    5564 
    5665{{{ 
     
    6978[root@localhost ~]# apachtctl -t 
    7079Syntax OK 
    71 [root@installtest2 ~]# service httpd status 
     80[root@localhost ~]# service httpd status 
    7281httpd is stopped 
    73 [root@installtest2 ~]# service httpd start 
     82[root@localhost ~]# service httpd start 
    7483Starting httpd:                                            [  OK  ] 
    75 [root@installtest2 ~]# chkconfig --list httpd 
     84[root@localhost ~]# chkconfig --list httpd 
    7685httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off 
    77 [root@installtest2 ~]# chkconfig httpd on 
    78 [root@installtest2 ~]# chkconfig --list httpd 
     86[root@localhost ~]# chkconfig httpd on 
     87[root@localhost ~]# chkconfig --list httpd 
    7988httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off 
    8089}}} 
     90 
     91=== 管理ユーザー設定 === 
     92 
     93電子ログの管理ユーザーを設定する。[[br]] 
     94{{{root}}}で問題なければそのままでも構わないが、管理用のユーザーを作ったほうが安全だと思われる。[[br]] 
     95 
     96展開した{{{/opt/OperationLog}}}以下のディレクトリは、所有者が{{{uid:501,gid:502}}}になっているので、ファイルは適切な所有者に変更すること。 
     97 
     98=== PrintAnyServerの起動 === 
     99 
     100PrintAnyServerの本体は、httpdとは別のプロセスとして動作しているので、事前に起動させておく必要がある。[[br]] 
     101起動用のスクリプトを作成してあるが、まずはコマンドラインから起動して動作確認をする。[[br]] 
     102PrintAnyServerは、内部でuid,gid等を変更する機能があるので、rootで実行すること。[[br]] 
     103 
     104 
     105{{{ 
     106[root@localhost ~]# cd /opt/OperationLog/PrintAnyServer 
     107[root@localhost PrintAnyServer]# source /opt/OperationLog/etc/env.sh 
     108[root@localhost PrintAnyServer]# python2.7 printAnyServer.py conf/test.cfg 
     109Bottle v0.12.13 server starting up (using PasteServer())... 
     110Listening on http://0.0.0.0:9090/ 
     111Hit Ctrl-C to quit. 
     112 
     113serving on 0.0.0.0:9090 view at http://127.0.0.1:9090 
     114}}} 
     115 
     116正常に起動できれば、以上のようなメッセージが表示される。 
     117 
     118 
     119=== 動作確認 === 
     120 
     121同一ネットワーク上のPCでWebブラウザを立ち上げて、それぞれ{{{http://(HOSTNAMEorIPADDR)/TEST/botlog/edit}}}と{{{http://(HOSTNAMEorIPADDR)/printView}}}にアクセスすると画面が表示されるはずである。 
     122 
     123 
     124 
     125[[Image(2018_08_17_18_08_56.png,300)]][[Image(2018_08_17_18_09_17.png,300)]] 
     126 
     127 
     128 
     129== 設定 == 
     130 
     131この状態でも一般的な使用は可能なので、そのまま使っても問題はないが、最低でも{{{http://(HOSTNAMEorIPADDR)/TEST/botlog/***}}}の{{{/TEST}}}は変更したほうがいいだろう。[[br]] 
     132 
     133botlog,PrintAnyServer共に設定を変更した際には、必ずhttpdを再起動する必要がある。 
     134 
     135{{{ 
     136[root@installtest2 ~]# service httpd restart 
     137Stopping httpd:                                            [  OK  ] 
     138Starting httpd:                                            [  OK  ] 
     139}}} 
     140 
     141=== botlog === 
     142 
     143==== サイト名変更 ==== 
     144接続先URLが、{{{/TEST/botlog/***}}}となっているので、これを変更する。[[br]] 
     145 
     146修正するファイルは、{{{/opt/OperationLog/botlog/modules/botlogConfig.py}}}。このファイルは、{{{/opt/OperationLog/botlog/botlogConfig_default.py}}}のシンボリックなので、一旦シンボリックを削除して、{{{botlogConfig_default.py}}}をコピーしてから修正する。[[br]] 
     147 
     148今回は{{{"EUJP"}}}とする。 
     149 
     150ここからは、管理ユーザーで行う。 
     151 
     152{{{ 
     153[user@localhost ~]$ cd /opt/OperationLog/botlog/ 
     154[user@localhost botlog]$ rm modules/botlogConfig.py 
     155[user@localhost botlog]$ cp botlogConfig_default.py modules/botlogConfig.py 
     156 
     157[user@localhost botlog]$ vi modules/botlogConfig.py 
     158     : 
     159    # 正式版(or 外部プログラム)用サーバー設定 
     160    def getServerCfg(self): 
     161        # type: [ httpd | standalone ] 
     162        #        standalone: 単体動作用デバッグサーバ 
     163        #        httpd: WebApplicaiotn 
     164        return {'type':'httpd', 
     165                'host':'localhost', # Set server IP address 
     166                'port':8088, 
     167                'root':'/EUJP'}     # Set Site Name 
     168     : 
     169}}} 
     170 
     171修正箇所は{{{getServerCfg:root}}}。[[br]] 
     172修正後に、httpdを再起動し、{{{http://(HOSTNAMEorIPADDR)/EUJP/botlog/edit}}}にアクセスしすると同じデータが表示される。 
     173 
     174==== DB ==== 
     175 
     176デフォルトでは、sqlite3が動作確認用DBとして設定されている。[[br]] 
     177sqlite3のDBは単一ファイルなので、ファイルの保存ディレクトリを変更すればいい。[[br]] 
     178 
     179{{{ 
     180    # sqlite3用DB設定 
     181    def getSqlite3Cfg(self): 
     182        # file: db file 
     183        #       dbファイルのフルパスを設定 
     184        #       * 作成したファイルとファイルのあるディレクトリのパーミッションは"777"にしておくか 
     185        #         Webサーバーのユーザー(通常はapache/apache)が読み書きできるようにしておくこと 
     186        return {'file':'/opt/OperationLog/data/botlog/db/sqlite3/botlog.sqlite3'} 
     187}}} 
     188 
     189コメントにも書いてあるように、DBファイルとディレクトリのパーミッションは"777"にしないと動作しなくなるので注意。[[br]] 
     190 
     191DBをPostgreSQLに変更する場合には、 
     192 
     193{{{ 
     194    # DB種別設定 
     195    def getDbCfg(self): 
     196        # type: [ sqlite3 | postgresql ] 
     197        #return {'type':'sqlite3'} 
     198        return {'type':'postgresql'} 
     199 
     200 
     201    # postgresql用設定 
     202    # userは設定しないとhttpd user(apache)で書き込むので、 
     203    # DB管理用ユーザー(作成ユーザー)を設定すること 
     204    def getPostgresqlCfg(self): 
     205        return {'host':'localhost',  <-- DBホスト 
     206                'port':5432,         <-- 接続ポート番号 
     207                'db':'botlog',       <-- DB名(これは変えなくてもいい) 
     208                'user':'logoper',    <-- DB接続ユーザー名 
     209                'passwd':''}         <-- DB接続パスワード 
     210 
     211}}} 
     212 
     213の設定を変更する。[[br]] 
     214PostgreSQL自体の設定はここでは説明しない。 
     215 
     216==== セクション(グルーブ)設定 ==== 
     217 
     218セクション名の設定は、SQLを直接実行するか、{{{/opt/OperationLog/botlog/sql/[sqlite3|PostgreSQL]/section.sql}}}を編集したデータを各DB用のコンソールから設定する。[[br]] 
     219但し、idが0,1は特別な意味を持っているので、設定は変更しないこと。[[br]] 
     220 
     221データがない初期状態ならば、テーブルを一括で作成するスクリプトを作成しているので、それを利用すると一括でテーブルを再構築する。 
     222 
     223 * sqlite3 の場合 
     224{{{ 
     225[user@localhost ~]$ /opt/OperationLog/botlog/sql/sqlite3/createTable.sh /opt/OperationLog/data/botlog/db/sqlite3/botlog.sqlite3 
     226}}} 
     227 
     228 * PostgreSQLの場合 
     229 
     230 PostgreSQLの場合には、DBへ接続するための設定をシェルスクリプト内に記述してから実行すること。 
     231 
     232 {{{ 
     233[user@localhost ~]$ /opt/OperationLog/botlog/sql/PostgreSQL/createTable.sh 
     234 }}} 
     235 
     236 
     237=== !PrintAnyServer === 
     238 
     239