Difference between revisions of "Server maintenence"

From TempusServa wiki
Jump to navigation Jump to search
old>Admin
(Created page with ' == Backup and restore == TS has inbuilt manual functions on the solution level, but measures have to taken to back the data IN the solutions. === Table naming conventions ===…')
 
 
(70 intermediate revisions by 3 users not shown)
Line 1: Line 1:
For internal setup instructions please refer to [[TS hosting instructions]]
== Server monitor page ==
Each application contains a public page that can be queried for server status.
The page is: '''http://SERVER/APPLICATION/service?PASSWORD'''
Password can be set in the configuration: '''healthMonitorPassword'''
Reponse will look something like
<blockquote><p><small>
&lt;serverstatus&gt;<br>
&lt;flag name=&quot;Source version&quot;&gt;2081&lt;/flag&gt;<br>
&lt;flag name=&quot;Unused storage&quot;&gt;27%&lt;/flag&gt;<br>
&lt;flag name=&quot;Database motor&quot;&gt;OK&lt;/flag&gt;<br>
&lt;flag name=&quot;Authentication&quot;&gt;OK&lt;/flag&gt;<br>
&lt;flag name=&quot;Daemon running&quot;&gt;NO&lt;/flag&gt;<br>
&lt;flag name=&quot;Server healthy&quot;&gt;HEALTHY&lt;/flag&gt;<br>
&lt;flag name=&quot;Is user online&quot;&gt;NO&lt;/flag&gt;<br>
&lt;flag name=&quot;Session length&quot;&gt;30&lt;/flag&gt;<br>
&lt;flag name=&quot;DB schema LIVE&quot;&gt;tslive&lt;/flag&gt;<br>
&lt;flag name=&quot;DB schema TEST&quot;&gt;tstest&lt;/flag&gt;<br>
&lt;flag name=&quot;Last view data&quot;&gt;2013-02-12 16:53:11&lt;/flag&gt;<br>
&lt;flag name=&quot;Last exception&quot;&gt;2013-02-12 12:28:16&lt;/flag&gt;<br>
&lt;/serverstatus&gt;
</small></p></blockquote>
If the goodword ''HEALTY'' is found the following things are ok
* Server is open for logins
* DB connections are accessible
* Data / log disc is not full
A good option for an online monitoring tool is [https://www.site24x7.com/signup-plans.html?q=Y9eugsxk Site24x7] which we strongly recommend.


== Backup and restore ==
== Backup and restore ==
TS has inbuilt manual functions on the solution level, but measures have to taken to back the data IN the solutions.
TS has inbuilt manual functions on the solution level, but measures have to taken to back the data IN the solutions.


Backups should optimally be done either by dumping the database. Alternatively the database can be stopped (important) and data folders can be backed up normally.
The following guide contains directions for setting up incremental backups to remote location, using [http://rsync.samba.org/ rsync] and SSH connections.


[[Backup_and_restore]]


=== Table naming conventions ===
=== Table naming conventions ===
Every solution has its own table namespace of "data_" followed by the system solution name.
Every solution has its own table namespace of "data_" followed by the system solution name.


Example for the solution XXX:
Example for the solution named XXX:
* data_XXX
* data_XXX


Line 17: Line 55:
* data_XXX_contact
* data_XXX_contact
* data_XXX_measure
* data_XXX_measure
* data_XXX_member
* data_XXX_t_YYY
* data_XXX_t_YYY
* data_XXX_accesslog
* data_XXX_accesslog
Line 22: Line 61:
* data_XXX_revisionlog
* data_XXX_revisionlog


Deleted tables are prefixed by a timestamp
=== Restore multiple files (Linux) ===
From the backup directory you can execute these commands
  find . -name 'tslive_*.sql' -printf 'source  %P;\n' > restoreMe.txt
  mysql tslive -uroot -pPASSWORD -e "source restoreMe.txt"
Just change database (tslive) and password above
=== Accessing the database (MySQL) ===
Normally Tempus Serva will maintain the database by itself.
Sometimes direct access is needed, for example
* Partial table data restore
* Sharding large tables (+1M records or many Blobs)
We recommend the following database tool
* [https://www.navicat.com/en/products/navicat-for-mysql NaviCat for MySQL]
Other client tools include
* [http://dev.mysql.com/downloads/workbench/ MySQL WorkBench]
* [https://www.webyog.com/ SQLyog for MySQL]


== URL redirects and rewrites ==
== URL redirects and rewrites ==
Tempus Serva (version 2090+) contains server filters for URL rewrite, redirects and forwards.
The filter is deactivated by default, but can be enabled by
# Rename /WEB-INF/web.xml.urlrewrite to web.xml
# Change /WEB-INF/urlrewrite.xml as needed
# Restart the server
Other options include merging web.xml.urlrewrite into the existing web.xml.
Documentation can be found in following pages
* http://tuckey.org/urlrewrite/
* http://tuckey.org/urlrewrite/manual/3.0/guide.html
== Moving files to S3 storage ==
Create a bucket at AWS
# Select same region as server is hosted in
# Go to https://eu-north-1.console.aws.amazon.com/s3/buckets
# Add bucket
# Select Directory if files are mainly media (pictures/video)
# Name the bucket: '''s3fs.CUSTOMER'''
Add IAM role to server
# Go to https://eu-north-1.console.aws.amazon.com/ec2/home
# Right click server > Security > Modify IAM role
# Choose '''ServerWithNetworkFilesystem'''
# Update IAM role
Install the mountpoint
# wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm
# sudo yum install ./mount-s3.rpm -y
# sudo nano /etc/fuse.conf
#* remove # before user_allow_other
#* save file
# sudo mkdir /mnt/s3fs
# sudo mount-s3 --allow-other --dir-mode 0777 --file-mode 0777 '''s3fs.CUSTOMER''' /mnt/s3fs
# --- MISSING SETUP FSTAB ---
# Option for multi instance server: sudo mkdir /mnt/s3fs/<instancename>
Change storage location and policy
# Go to Server > Backend > Modules > Configuration
# Change filesystemStorageBasePath: /mnt/s3fs
#* Option for multi instance server: /mnt/s3fs/<instancename>
# Change filesystemStorageActive: true
Migrate existing files til S3
# Call server URL
#* Manual: main?command=dk.tempusserva.codeunit.system.PageConvertBlobsToFiles
#* Full auto: main?command=dk.tempusserva.codeunit.system.PageConvertBlobsToFiles&convert

Latest revision as of 16:32, 26 September 2024

For internal setup instructions please refer to TS hosting instructions

Server monitor page

Each application contains a public page that can be queried for server status.

The page is: http://SERVER/APPLICATION/service?PASSWORD

Password can be set in the configuration: healthMonitorPassword

Reponse will look something like

<serverstatus>
<flag name="Source version">2081</flag>
<flag name="Unused storage">27%</flag>
<flag name="Database motor">OK</flag>
<flag name="Authentication">OK</flag>
<flag name="Daemon running">NO</flag>
<flag name="Server healthy">HEALTHY</flag>
<flag name="Is user online">NO</flag>
<flag name="Session length">30</flag>
<flag name="DB schema LIVE">tslive</flag>
<flag name="DB schema TEST">tstest</flag>
<flag name="Last view data">2013-02-12 16:53:11</flag>
<flag name="Last exception">2013-02-12 12:28:16</flag>
</serverstatus>

If the goodword HEALTY is found the following things are ok

  • Server is open for logins
  • DB connections are accessible
  • Data / log disc is not full

A good option for an online monitoring tool is Site24x7 which we strongly recommend.

Backup and restore

TS has inbuilt manual functions on the solution level, but measures have to taken to back the data IN the solutions.

Backups should optimally be done either by dumping the database. Alternatively the database can be stopped (important) and data folders can be backed up normally.

The following guide contains directions for setting up incremental backups to remote location, using rsync and SSH connections.

Backup_and_restore

Table naming conventions

Every solution has its own table namespace of "data_" followed by the system solution name.

Example for the solution named XXX:

  • data_XXX

Other related tables include

  • data_XXX_file
  • data_XXX_mail
  • data_XXX_comment
  • data_XXX_contact
  • data_XXX_measure
  • data_XXX_member
  • data_XXX_t_YYY
  • data_XXX_accesslog
  • data_XXX_statuslog
  • data_XXX_revisionlog

Deleted tables are prefixed by a timestamp


Restore multiple files (Linux)

From the backup directory you can execute these commands

 find . -name 'tslive_*.sql' -printf 'source  %P;\n' > restoreMe.txt
 mysql tslive -uroot -pPASSWORD -e "source restoreMe.txt"

Just change database (tslive) and password above

Accessing the database (MySQL)

Normally Tempus Serva will maintain the database by itself.

Sometimes direct access is needed, for example

  • Partial table data restore
  • Sharding large tables (+1M records or many Blobs)

We recommend the following database tool

Other client tools include

URL redirects and rewrites

Tempus Serva (version 2090+) contains server filters for URL rewrite, redirects and forwards.

The filter is deactivated by default, but can be enabled by

  1. Rename /WEB-INF/web.xml.urlrewrite to web.xml
  2. Change /WEB-INF/urlrewrite.xml as needed
  3. Restart the server

Other options include merging web.xml.urlrewrite into the existing web.xml.

Documentation can be found in following pages

Moving files to S3 storage

Create a bucket at AWS

  1. Select same region as server is hosted in
  2. Go to https://eu-north-1.console.aws.amazon.com/s3/buckets
  3. Add bucket
  4. Select Directory if files are mainly media (pictures/video)
  5. Name the bucket: s3fs.CUSTOMER

Add IAM role to server

  1. Go to https://eu-north-1.console.aws.amazon.com/ec2/home
  2. Right click server > Security > Modify IAM role
  3. Choose ServerWithNetworkFilesystem
  4. Update IAM role

Install the mountpoint

  1. wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm
  2. sudo yum install ./mount-s3.rpm -y
  3. sudo nano /etc/fuse.conf
    • remove # before user_allow_other
    • save file
  4. sudo mkdir /mnt/s3fs
  5. sudo mount-s3 --allow-other --dir-mode 0777 --file-mode 0777 s3fs.CUSTOMER /mnt/s3fs
  6. --- MISSING SETUP FSTAB ---
  7. Option for multi instance server: sudo mkdir /mnt/s3fs/<instancename>

Change storage location and policy

  1. Go to Server > Backend > Modules > Configuration
  2. Change filesystemStorageBasePath: /mnt/s3fs
    • Option for multi instance server: /mnt/s3fs/<instancename>
  3. Change filesystemStorageActive: true

Migrate existing files til S3

  1. Call server URL
    • Manual: main?command=dk.tempusserva.codeunit.system.PageConvertBlobsToFiles
    • Full auto: main?command=dk.tempusserva.codeunit.system.PageConvertBlobsToFiles&convert