smokeping

SmokePing module for master/slave or standalone instance

15,883 downloads

86 latest version

Version information

  • 8.0.0 (latest)
  • 7.0.0
  • 6.0.0
  • 5.1.1
  • 5.1.0
  • 5.0.0
  • 4.0.0
  • 3.1.1
  • 3.1.0
  • 3.0.0
  • 2.0.0
released Apr 23rd 2025
This version is compatible with:
  • Puppet Enterprise 2025.3.x, 2025.2.x, 2025.1.x, 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
  • Puppet >= 7.0.0 < 9.0.0
  • , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'puppet-smokeping', '8.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add puppet-smokeping
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install puppet-smokeping --version 8.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

puppet/smokeping — version 8.0.0 Apr 23rd 2025

SmokePing Puppet module

Puppet module to completely manage a SmokePing installation. Includes managing of Master/Slave or Standalone installation, and the menu hierarchy.

Some background information can be found here: Puppet module to manage SmokePing

Features

  • Master/Slave/Standalone SmokePing configuration possible
  • Menu hierarchy implemented
  • Define Probes and Alert patterns
  • Config files managed with templates
  • Uses exported resources to configure Slaves on the Master (tag: smokeping-slave)
  • Automatically generates a shared secret for Master/Slave configuration (tag: smokeping-slave-secret)

Supported Platforms

Fully supported:

  • Debian, Ubuntu

Standalone only (no master/slave support yet):

  • Fedora 22+
  • CentOS 7+ (Note: requires third party repository to provide smokeping package).

Dependencies

Example

Standalone SmokePing instance

# install a standalone instance on a server with default values (see init.pp for
# parameter documentation
class { 'smokeping':
  mode => 'standalone',
}

Master SmokePing instance

# install a master instance on a server with default values (see init.pp for
# parameter documentation. You must have a slave, or this will not work!
class { 'smokeping':
  mode => 'master',
}

Slave SmokePing instance

class { 'smokeping':
  mode           => 'slave',
  slave_name     => $facts['hostname'],
  master_url     => 'http://myserver.tld/smokeping/smokeping.cgi',
  slave_location => 'zurich',
}

This configures the server as slaves and adds the slave definition automatically to the master using exported resources.

Probes

Class['smokeping'] {
  probes => [
    {
      name => 'FPing',
      binary => '/usr/bin/fping',
    },
    {
      name => 'FPing6',
      binary => '/usr/bin/fping6',
    },
  ],
}

Alerts

$alerts = [
  {
    name        => 'bigloss',
    alert_type  => 'loss',
    pattern     => '==0%,==0%,==0%,==0%,>0%,>0%,>0%',
    comment     => 'suddenly there is packet loss',
  },

  {
    name        => 'startloss',
    alert_type  => 'loss',
    pattern     => '==S,>0%,>0%,>0%',
    comment     => 'loss at startup',
  },

  {
    name        => 'noloss',
    alert_type  => 'loss',
    pattern     => '>0%,>0%,>0%,==0%,==0%,==0%,==0%',
    edgetrigger => true,
    comment     => 'there was loss and now its reachable again',
  },
]
Class['smokeping'] {
  alerts => $alerts,
}

Targets

# Top Level
smokeping::target { 'World':
  menu      => 'World',
  pagetitle => 'Connection to the World',
  alerts    => [ 'bigloss', 'noloss' ],
}

smokeping::target { 'GoogleCH':
  hierarchy_parent => 'World',
  hierarchy_level  => 2,
  menu             => 'google.ch',
  pagetitle        => 'Google',
}

smokeping::target { 'GoogleCHIPv4':
  hierarchy_parent => 'GoogleCH',
  hierarchy_level  => 3,
  menu             => 'google.ch IPv4',
  host             => 'google.ch',
  slaves           => ['slave1'],
}

smokeping::target { 'GoogleCHIPv6':
  hierarchy_parent => 'GoogleCH',
  hierarchy_level  => 3,
  menu             => 'google.ch IPv6',
  host             => 'google.ch',
  probe            => 'FPing6',
  slaves           => ['slave1'],
}

smokeping::target { 'GoogleCHCurl':
  hierarchy_parent => 'GoogleCH',
  hierarchy_level  => 3,
  menu             => 'google.ch Curl',
  host             => 'google.ch',
  probe            => 'Curl',
  options          => {
    urlformat => 'http://%host%/',
  },
}

License / Author

The module is written by

Licensed under Apache License, Version 2.0, Copyright 2015 by Tobias Brunner

Contibutors

See: Github Contributors