SMOKEPING(1)

✨ SMOKEPING(1) ✨

okay so bestie, you've stumbled into the SmokePing corner of the manual pages (section 1, we're fancy like that) β€” let me tell you everything πŸ’…


πŸ’– NAME πŸ’–

smokeping β€” the commandline tool for SmokePing. literally the main character of the CLI world 🫢


🌸 SYNOPSIS 🌸

smokeping [ --email | --makepod | --version | --restart ]
Options:
  • --man[=x] β€” shows you the manpage for the program (or for probe x, if you specify one) πŸ“–
  • --help β€” help :-) that's it, that's the whole vibe
  • --email β€” sends SmokePing Agents to all Targets marked DYNAMIC βœ‰οΈ
  • --config=x β€” use a config file different from the default
  • --check β€” just checks the config file syntax, does not start the daemon (a lil vibe check, nothing more) βœ…
  • --makepod[=x] β€” creates POD documentation on the config file (or for probe x, if you specify one)
  • --version β€” shows the SmokePing Version
  • --debug β€” run only once and do not fork πŸ‘€
  • --debug-daemon β€” starts the daemon with debugging enabled
  • --restart β€” restarts SmokePing
  • --reload β€” reloads configuration in the running process without interrupting any probes β€” no cap, zero disruption πŸ™Œ
  • --nodaemon β€” does not daemonize the process (no fork)
  • --filter=x β€” only measures entries which pass the filter x
  • --logfile=x β€” appends warnings to logfile x
  • --static[=x] β€” generates a static website in directory x. If x is left out, pagedir from the config is used 🌐
  • --nosleep β€” for debugging you may want to run SmokePing without a sleep interval 😴❌
  • --gen-examples β€” generates the smokeping_examples document and example config files (to be used while building inside the smokeping distribution). With --check: checks the syntax of the generated examples.
  • --master-url=s β€” runs smokeping in slave mode, attaching to master for config
  • --slave-name=s β€” by default the slave will use whatever it thinks its name is when talking to its master. In some cases you may probably want to override this.
  • --shared-secret=s β€” file containing the shared secret for talking to the server πŸ”
  • --cache-dir=s β€” directory for temporary data storage when running in slave mode
  • --pid-dir=s β€” directory for the PID file when running in slave mode (optional, defaults to --cache-dir)

πŸ¦‹ DESCRIPTION πŸ¦‹

So the smokeping tool is the commandline part of the SmokePing system, and its whole main-character job is to run as a daemon and send Pings to all the Targets you specified in the Config file. When you call smokeping with no arguments at all? It just starts up as a daemon and does its work. iconic behaviour, tbh πŸŽ€

But if you do call it with an argument, then a whole bunch of other functions unlock, as you can see in the Synopsis above. The --email function is explained in the documentation on the config file, iykyk.

Now the --filter option β€” this one's lowkey genius. It lets you run the daemon on a big config file, but have the config file filtered, so it only measures the entries that pass the filter. Super useful for remote measurement. Run Smokeping with two exclusive filters in two locations and rsync the rrds back to the webserver host where you run the cgi. Filters act on the section names in the config file. Multiple section names are concatenated with / like path names:

*** targets ***
+ A
....
+ B
...
++ C

This gives

/A

and

/B, /B/C

So if I want to monitor /A, my filter would look like this:

--filter=/A

Filters follow regular expression syntax. They are always anchored at the tip of the string. By adding a ! to the front of the filter string you negate it β€” matching entries will be excluded from monitoring. Multiple --filter arguments can be used to assemble complex filters:

--filter=/A --filter=/B

would include all the targets, and

--filter=/A --filter=/B --filter=!/B/C

would include all but /B/C. slay πŸ’…

The --makepod does get used internally to produce the documentation on the SmokePing configuration file. and please refer to the installation document for detailed setup instructions, bestie πŸ“š


🧚 SETUP 🧚

When installing SmokePing, this file has to be adjusted to fit your local system. Three paths have to be entered, so pay attention πŸ”₯

One pointing to your rrdtool installation:

use lib qw(/usr/pack/rrdtool-1.0.33-to/lib/perl);

One pointing to the place where you have installed the SmokePing libraries:

use lib qw(/home/oetiker/public_html/smokeping/lib);

The third path is the argument to the Smokeping::main command. It points to the SmokePing configuration file:

use Smokeping;
Smokeping::main("/home/oetiker/.smokeping/config");

🌈 SEE ALSO 🌈

go read these too, they're all part of the lore:


Copyright (c) 2002 by Tobias Oetiker. All right reserved.


⭐ LICENSE ⭐

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


πŸ’œ AUTHOR πŸ’œ

Tobias Oetiker <tobi@oetiker.ch>


and that's the whole page babes πŸ“ β€” this gem is version 2.9.0, dated 2025-06-30, and it's giving "SMOKEPING(1)" energy all the way down. go ping something pretty πŸ’–βœ¨

πŸ“¦ where this page comes from