SeisComP Installation

SeisComP requires a modern Linux operating system as it is developed and tested only under Linux. For production systems we recommend Linux distributions with long-term support (LTS). The Linux flavors under which SeisComP has been tested are given along with the SeisComP package names on the download sites of Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences and gempa GmbH [67] and gempa GmbH [28].

The software can be obtained and installed from

Packages may include

  • Software for data acquisition, processing and GUIs for each supported platform,

  • Maps. Maps from the SeisComP releases Seattle and Zurich also work in later releases

  • Documentation,

  • Station configuration files (optional).

Download these packages from Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences and gempa GmbH [67] or Public download site of gempa [20].

The next sections describe the installation of the binary packages of SeisComP on

  • Ubuntu 18, 64 bit system,

  • CentOS 7, 64 bit system.

Hardware Requirements

The hardware requirements for a seismic system depend on the size of the station network to be operated.

Minimum requirements are:

CPU

2

RAM

4 GB

HDD

20 GB

OS

Ubuntu last 3 major LTS versions, 64bit, Debian 8.0 64bit, RHEL 7, CentOS 7 64bit

In case large networks (>100 stations) are operated, a distributed system is recommended. Normally a SeisComP system is separated in several subsystems. A separation of data acquisition, processing and graphical user interfaces (GUI) is useful to permit stable performance.

The minimum specifications of SeisComP systems depend on the setup and the applications.

Data acquisition systems:

CPU

2

RAM

4 GB

HDD

Raid1/5/0+1 with >= 200GB

Processing systems:

CPU

4

RAM

8 GB

HDD

Raid1/5/0+1 with >= 100GB

GUI system:

CPU

2

RAM

4 GB

HDD

> 50 GB

Installation from Packages

This section describes the installation of SeisComP from compiled SeisComP packages which ship as *.tar.gz files.

Steps to take

Simply follow a few steps to complete your installation of SeisComP:

  1. Log in to your Linux system as user, e.g. sysop, the standard user in this documentation.

  2. Download the installation packages, e.g. from Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences and gempa GmbH [67] or Public download site of gempa [20]:

    • seiscomp-[version]-[OS]-[arch].tar.gz: main SeisComP package with binaries, etc. Ensure to download the right package matching your operating system (OS) and hardware architecture (arch: 32 or 64-bit).

    • seiscomp-[version]-doc.tar.gz: SeisComP documentation.

      Note

      When receiving the packages from Public download site of gempa [20], the documentation is already included in the main SeisComP package to match the installed version. In this case, the documentation does not need to be downloaded and installed separately.

    • seiscomp-maps.tar.gz: standard SeisComP maps available on the download site of Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences and gempa GmbH [67].

  3. Copy the downloaded files to your $HOME directory.

  4. Navigate to the $HOME directory or any other place where to install SeisComP

    user@host:$ cd
    
  5. Install the main SeisComP package into seiscomp

    user@host:~$ tar xzf seiscomp-[version]-[OS]-[arch].tar.gz
    
  6. Install the SeisComP map package into seiscomp/share/maps

    user@host:~$ tar xzf seiscomp-[release]-maps.tar.gz
    
  7. Optional: Install the documentation package into seiscomp/share/doc

    user@host:~$ tar xzf seiscomp-[version]-doc.tar.gz
    

Unpacking these files creates the SeisComP directory structure.

Directory structure

All installed files and directories are found below the seiscomp directory. The directory structure of the installed system is described the table below.

Directory

Description

bin

The user module binaries.

lib

The base library directory used by all modules.

lib/python

The Python library directory.

man

The manual pages.

sbin

The system/service/server binaries such as seedlink.

var

Variable files whose content is expected to continually change.

var/log

Log files of started modules. Usually modules log either to syslog or ~/.seiscomp/log. This directory contains the logs of the start of each module.

var/lib

Default directory for files created by modules such as the waveform ringbuffer of seedlink or the waveform archive created by slarchive.

var/run

Contains the .run and .pid files of modules started by seiscomp.

include

SDK header files for all libraries.

share

Application data such as maps, cities.xml and others.

share/templates

Template files used by e.g. seedlink to create its native configuration.

etc

Configuration directory.

etc/descriptions

Contains all XML module descriptions.

etc/defaults

The default configuration files. This directory is read as first when a module starts.

etc/init

Module init scripts called by seiscomp.

etc/key

Station configurations and module bindings.

Software dependencies

SeisComP depends on a number of additional software packages shipped with each Linux distribution. After installation of SeisComP these packages can be installed using the seiscomp. The seiscomp tool comes with the command install-deps which installs required packages. Read the section System management for more detailed instructions. For example, to install the dependencies for using the MariaDB database, give ‘mariadb-server’ as parameter.

user@host:~$ seiscomp/bin/seiscomp install-deps base mariadb-server
Distribution: Ubuntu 18.04
[sudo] password for sysop:
Reading package lists... Done
Building dependency tree
Reading state information... Done
...

More options for systems with GUIs and FDSNWS are:

user@host:~$ seiscomp/bin/seiscomp install-deps gui fdsnws

If your distribution is not supported by install-deps, install the above packages manually:

Ubuntu version

user@host:~$ cd seiscomp/share/deps/ubuntu/[version]
...

CentOS version

user@host:~$ cd seiscomp/share/deps/centos/[version]
...
su root
bash install-mariadb-server.sh
bash install-postgresql-server.sh
bash install-base.sh
bash install-gui.sh
bash install-fdsnws.sh
...

or contact the SeisComP developers to add support for your distribution.

Warning

Either the MariaDB or the MySQL server can be installed; not both at the same time. When replacing on by the other, ensure that all related files are removed before installing the alternative server. For MySQL instead of MariaDB use:

root@host:~$ sh install-mysql-server.sh

Preferably use MariaDB instead of MySQL as MariaDB is the default for the supported Linux distributions!

Note

Linux systems develop dynamically and the installation of the dependencies may be incomplete. SeisComP modules will stop and indicate the missing software. They can be installed manually.

Database Server Configuration

SeisComP is typically operated with a database which should be optimized. This section describes how to setup and optimize the database server. For the setup of the database itself read the section Getting Started with SeisComP.

MariaDB / MySQL

  • For better performance with a MariaDB/MySQL database, adjust the memory pool size. Test the default of the buffer_pool_size before making the change:

    $ mysql -u root -p
    show variables like 'innodb_buffer_pool_size';
    

    The optimum buffer_pool_size depends on your system (RAM size) and only needs to be set if required. Choose your preferred value:

    • Recommended value: 512M or more

    • Minimum value: 64M

    Additionally, reduce the database hard drive synchronization and make both adjustments in the section [mysqld]:

    [mysqld]
    innodb_buffer_pool_size = <your value>
    innodb_flush_log_at_trx_commit = 2
    

    Note

    The location of the configuration file can differ between distributions.

    Ubuntu:

    /etc/mysql/mariadb.conf.d/50-server.cnf

    CentOS:

    /etc/my.cnf

    Please read the documentation of your distribution. root privileges may be required to make the changes.

  • To start MariaDB automatically during boot set

    Ubuntu

    user@host:~$ sudo systemctl enable mariadb
    

    CentOS

    user@host:~$ su root
    root@host:~$ systemctl enable mariadb
    
  • If you make a fresh installation of MariaDB/MySQL, secure the database and set a password for the root user

    Ubuntu

    user@host:~$ sudo mysql_secure_installation
    

    CentOS

    user@host:~$ su root
    root@host:~$ mysql_secure_installation
    

    Warning

    This step overrides database settings. Only execute the command

    • After a fresh installation or

    • If you are sure about the procedure.

  • After adjusting the parameters, MariaDB needs to be restarted. One can run

    Ubuntu:

    user@host:~$ sudo systemctl restart mariadb
    

    CentOS:

    user@host:~$ su root
    root@host:~$ systemctl restart mariadb
    

Note

Replace mariadb by mysql when using MySQL instead of MariaDB.

PostgreSQL

  • When using PostgreSQL, the database server must be initialized and secured.

  • By default PostgresSQL does not allow to login with username and password which leads to the fact that scmaster can not connect to the database after SeisComP database initialization. Here an example how to enable user/password authentication for local and remote connections.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
 # IPv4 local connections:
 host    seiscomp        sysop           0.0.0.0/0               md5
 host    all             all             127.0.0.1/32            ident

Note

The order of the rules matters and the location of the configuration file can differ between distributions.

Ubuntu:

/etc/postgresql/10/main/pg_hba.conf

CentOS:

/var/lib/pgsql/data/pg_hba.conf

  • By default PostgresSQL accepts local connections only. If the database server and clients are on different machines please change the listen address as follows.

    listen_addresses = 0.0.0.0/0
    

    Note

    The location of the configuration file can differ between distributions.

    Ubuntu:

    /etc/postgresql/10/main/postgresql.conf

    CentOS:

    /var/lib/pgsql/data/postgresql.conf

Next Steps

Now everything is installed and the system can be configured. The next chapter chapter explains the first steps.