Skip to main content

coshsh Config-Generator for Shinken / Nagios /Icinga

What is coshsh?

Coshsh is a framework which helps you producing configuration files for open source monitoring systems.

Features

  • coshsh is very fast. (~60000 services in 10 seconds)
  • coshsh can be extended easily.
  • coshsh reads only hosts and applications. Services are added later.

Why should you use it?

Because others use it too.

  • Schwarz Digits. https://short.do/FJs2L2
  • A car manufacturer in Munich with three letters.
  • A global storage company with three letters. (they were bought and now have four letters)
  • Lidl/Kaufland. https://bit.ly/2L459nH
  • A chinese car manufacturer in Shenyang.
  • An austrian company producing crystal products.
  • A world-wide operating consulting firm.
  • A venerable hanseatic bank.
  • The city of Munich. https://bit.ly/2QhNCOJ

and many more companies which eliminated manual tasks in monitoring.

Download

http://labs.consol.de/nagios/coshsh

Support

Professional support and consulting is available via www.consol.de

Changelog

The changelog is available on github

How does it work

coshsh reads one or many datasources (which can be files, databases, ldap...) and transforms their contents into host/service/contact-configuration files. Host- and service-definitions are created by filling placeholders in template-files.

In the beginning there are hosts and applications. There are no host and service definitions. Why? Because your server admins don't care about. Your windows admin simply wants to enter his new machine in a cmdb. He has no time to configure check_periods or commands or services. He even doesn't want to know what it is.
The only thing he knows is name, address and model of his new server and the applications he installed.

For example, your datasource is a database table with a column names "type". If you want to handle a value of "windows" or "windows 2008" all you need is a class file for it:

import coshsh

def __mi_ident__(params={}):
    if coshsh.util.compare_attr("type", params, ".*windows.*"):
        return Windows


class Windows(coshsh.application.Application):
    template_rules = [
        coshsh.templaterule.TemplateRule(needsattr=None,
            template="os_windows_default"),
        coshsh.templaterule.TemplateRule(needsattr="filesystems",
            template="os_windows_fs"),
    ]

The class file will be automatically registered to coshsh. Now whenever a record of type "windows" comes out of your datasource, an object of class Windows is created. (Inside coshsh. You actually won't notice it and you don't have to know about it) The only thing you need to know is the relationship between an application's class and some template files. Like this one here:

{{ application|service("os_windows_default_check_nsclient") }}
  host_name                       {{ application.host_name }}
  use                             os_windows_default
  check_command                   check_nrpe_arg!60!checkUpTime!MinWarn=5m MinCrit=1m
}

{{ application|service("os_windows_default_check_cpu") }}
  host_name                       {{ application.host_name }}
  use                             os_windows_default,srv-pnp
  max_check_attempts              10
  check_command                   check_nrpe_arg!60!checkCPU!warn=80 crit=90 time=5m time=1m time=30s
}

{{ application|service("os_windows_default_check_mem") }}
  host_name                       {{ application.host_name }}
  use                             os_windows_default,srv-pnp
  check_command                   check_nrpe_arg!60!checkMem!MaxWarn=80% MaxCrit=90% ShowAll=long type=physical type=virtual type=paged
}

{{ application|service("os_windows_default_check_autosvc") }}
  host_name                       {{ application.host_name }}
  use                             os_windows_default
  check_command                   check_nrpe_arg!60!CheckServiceState!CheckAll
}

{#
{{ application|service("os_windows_default_check_ntp") }}
  host_name                       {{ application.host_name }}
  use                             os_windows_default
  check_command                   windows-check_time!3600!360000
}
#}

define servicedependency {
  name                             dependency_os_windows_default_check_nsclient_uc_{{ application.host_name }}
  host_name                        {{ application.host_name }}
  service_description              os_windows_default_check_nsclient
  execution_failure_criteria       u,c
  notification_failure_criteria    u,c
  dependent_service_description    os_windows_.*,\
                                   !os_windows_default_check_nsclient
}

Only a nagios admin will ever see these template files and will have to edit them.

Coverage Status

Metadata

Release files for coshsh 13.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for coshsh 13.1
File Size Uploaded Provenance Actions
coshsh-13.1.tar.gz 232.5 kB Without provenance Details for coshsh-13.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for coshsh 13.1
File Interpreter ABI Platform Actions
coshsh-13.1-py3-none-any.whl Python 3 none any Details for coshsh-13.1-py3-none-any.whl

Total release size: 368.2 kB

Release files / coshsh-13.1.tar.gz

Download URL coshsh-13.1.tar.gz
Size 232.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8b320d573657ca6588eeb07b12cb229f791b890887491206e365be83ada6cdd8
BLAKE2b-256 checksum
How to use checksums
f857889d2ee1b2c4b72e04f4e0894773e87486640a7762ed4dc11f23a22fba80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / coshsh-13.1-py3-none-any.whl

Download URL coshsh-13.1-py3-none-any.whl
Size 135.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b86ba5d770d8e4b555bd691c8e72f1322166a46b7895ec1a707b13523c43667
BLAKE2b-256 checksum
How to use checksums
0d146c25dfde939ddde37c829dee2aae98f48950ca3fb878f8557c101c50b17d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Security for coshsh 13.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page