hat-syslog - Syslog Server and tools#

About#

hat-syslog provides server/client tooling based on Syslog logging protocol as defined by RFC 5425, RFC 5426 and RFC 6587.

This project includes implementations of:

  • Syslog Server

    Central concentrator for syslog messages with web interface for real time monitoring and filtering of log messages.

  • Syslog Handler

    Implementation of Python’s standard library logging.Handler based on dedicated background logging thread.

  • Syslog Generator

    Simple testing tool responsible for generating syslog messages.

For more information see:

Runtime requirements#

  • python >=3.10

Install#

Debian#

WIP

Archlinux#

hat-syslog is available as AUR package:

$ yay -S hat-syslog

Windows#

Windows distribution, with embedded python, is available at GitHub releases.

Python wheel#

hat-syslog is available as PyPI project:

$ pip install hat-syslog

Docker#

Syslog Server is available as Docker image:

$ mkdir -p ~/.local/share/hat
$ docker run -p 6514:6514/tcp \
             -p 6514:6514/udp \
             -p 23020:23020 \
             -v $(cd; pwd)/.local/share/hat:/hat-syslog \
             bozokopic/hat-syslog

Usage#

Syslog Server#

Command hat-syslog-server is used for running new Syslog Server instance:

$ hat-syslog-server

Once server is running, web UI is available at http://127.0.0.1:23020.

For additional details and command line options see Syslog Server.

Syslog Handler#

Example python logging configuration:

import logging.config

logging.config.dictConfig({
    'version': 1,
    'formatters': {
        'default': {}},
    'handlers': {
        'syslog': {
            'class': 'hat.syslog.handler.SyslogHandler',
            'host': '127.0.0.1',
            'port': 6514,
            'comm_type': 'TCP',
            'level': 'DEBUG',
            'formatter': 'default'}},
    'root': {
        'level': 'INFO',
        'handlers': ['syslog']},
    'disable_existing_loggers': False})

logger = logging.getLogger(__name__)
logger.info('spam')

For additional details see Syslog Handler.

Syslog Generator#

Command hat-syslog-generator is used for running Syslog Generator:

$ hat-syslog-generator

For additional details and command line options see Syslog Generator.

Development requirements#

  • python >=3.10

  • nodejs >=7

Build#

To install editable installation, together with python development dependencies, run:

$ pip install -e '.[dev]'

To install only python development dependencies, run:

$ pip install -r requirements.pip.txt

Build tool used for hat-syslog is pydoit. For listing available doit tasks, use:

$ doit list

Default task:

$ doit

creates wheel package inside build directory.

Hat Open#

hat-syslog is part of Hat Open project - open-source framework of tools and libraries for developing applications used for remote monitoring, control and management of intelligent electronic devices such as IoT devices, PLCs, industrial automation or home automation systems.

Development of Hat Open and associated repositories is sponsored by Končar Digital.

License#

Copyright 2020-2024 Hat Open AUTHORS

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Content#