remove deprecated fping.plugin in accordance with v1.37.0 deprecation notice (#14073)

This commit is contained in:
Ilya Mashchenko 2022-12-09 17:35:53 +02:00 committed by GitHub
parent ab28a99a48
commit 4322b1973d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 3 additions and 539 deletions

4
.github/labeler.yml vendored
View File

@ -88,10 +88,6 @@ collectors/ebpf:
- collectors/ebpf.plugin/*
- collectors/ebpf.plugin/**/*
collectors/fping:
- collectors/fping.plugin/*
- collectors/fping.plugin/**/*
collectors/freebsd:
- collectors/freebsd.plugin/*
- collectors/freebsd.plugin/**/*

1
.gitignore vendored
View File

@ -137,7 +137,6 @@ claim/netdata-claim.sh
collectors/tc.plugin/tc-qos-helper.sh
collectors/charts.d.plugin/charts.d.plugin
collectors/python.d.plugin/python.d.plugin
collectors/fping.plugin/fping.plugin
collectors/ioping.plugin/ioping.plugin
collectors/go.d.plugin
web/netdata-switch-dashboard.sh

View File

@ -80,7 +80,6 @@
# go.d = yes
# apps = yes
# charts.d = yes
# fping = yes
# python.d = yes
# perf = yes
# ioping = yes
@ -251,10 +250,6 @@
# update every = 1
# command options =
[plugin:fping]
# update every = 1
# command options =
[plugin:python.d]
# update every = 1
# command options =

View File

@ -25,7 +25,6 @@ errors flood protection period = 0
apps = no
go.d = no
perf = no
fping = no
python.d = no
charts.d = no
nfacct = no

View File

@ -410,7 +410,7 @@ The Netdata Agent can collect these system- and hardware-level metrics using a v
### Networks
- [Access points](/collectors/charts.d.plugin/ap/README.md): Visualizes data related to access points.
- [fping.plugin](fping.plugin/README.md): Measure network latency, jitter and packet loss between the monitored node
- [Ping](https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/ping/): Measure network latency, jitter and packet loss between the monitored node
and any number of remote network end points.
- [Netfilter](/collectors/nfacct.plugin/README.md): Collect netfilter firewall, connection tracker, and accounting
metrics using `libmnl` and `libnetfilter_acct`.

View File

@ -10,7 +10,6 @@ SUBDIRS = \
cups.plugin \
diskspace.plugin \
timex.plugin \
fping.plugin \
ioping.plugin \
freebsd.plugin \
freeipmi.plugin \

View File

@ -93,7 +93,6 @@ This section features a list of Netdata's plugins, with a boolean setting to ena
# enable running new plugins = yes
# check for new plugins every = 60
# slabinfo = no
# fping = yes
# ioping = yes
# python.d = yes
# go.d = yes

View File

@ -1,24 +0,0 @@
# SPDX-License-Identifier: GPL-3.0-or-later
AUTOMAKE_OPTIONS = subdir-objects
MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
CLEANFILES = \
fping.plugin \
$(NULL)
include $(top_srcdir)/build/subst.inc
SUFFIXES = .in
dist_plugins_SCRIPTS = \
fping.plugin \
$(NULL)
dist_noinst_DATA = \
fping.plugin.in \
README.md \
$(NULL)
dist_libconfig_DATA = \
fping.conf \
$(NULL)

View File

@ -1,110 +0,0 @@
<!--
title: "fping.plugin"
custom_edit_url: https://github.com/netdata/netdata/edit/master/collectors/fping.plugin/README.md
-->
# fping.plugin
The fping plugin supports monitoring latency, packet loss and uptime of any number of network end points,
by pinging them with `fping`.
This plugin requires version 5.1 or newer of `fping` (earlier versions may or may not work). Our static builds and
Docker images come bundled with a known working version of `fping`. Native packages and local builds will need to
have a working version installed before the plugin is usable.
## Installing fping locally
If your distributions repositories do not include a working version of `fping`, the supplied plugin can install
it, by running:
```sh
/usr/libexec/netdata/plugins.d/fping.plugin install
```
The above will download, build and install the right version as `/usr/local/bin/fping`. This requires a working C
compiler, GNU autotools (at least autoconf and automake), and GNU make. On Debian or Ubuntu, you can pull in most
of the required tools by installing the `build-essential` package (this should include everything except automake
and autoconf).
## Configuration
Then you need to edit `/etc/netdata/fping.conf` (to edit it on your system run
`/etc/netdata/edit-config fping.conf`) like this:
```sh
# set here all the hosts you need to ping
# I suggest to use hostnames and put their IPs in /etc/hosts
hosts="host1 host2 host3"
# override the chart update frequency - the default is inherited from Netdata
update_every=1
# time in milliseconds (1 sec = 1000 ms) to ping the hosts
# 200 = 5 pings per second
ping_every=200
# other fping options - these are the defaults
fping_opts="-R -b 56 -i 1 -r 0 -t 5000"
```
## alarms
Netdata will automatically attach a few alarms for each host.
Check the [latest versions of the fping alarms](https://raw.githubusercontent.com/netdata/netdata/master/health/health.d/fping.conf)
## Additional Tips
### Customizing Amount of Pings Per Second
For example, to update the chart every 10 seconds and use 2 pings every 10 seconds, use this:
```sh
# Chart Update Frequency (Time in Seconds)
update_every=10
# Time in Milliseconds (1 sec = 1000 ms) to Ping the Hosts
# The Following Example Sends 1 Ping Every 5000 ms
# Calculation Formula: ping_every = (update_every * 1000 ) / 2
ping_every=5000
```
### Multiple fping Plugins With Different Settings
You may need to run multiple fping plugins with different settings for different end points.
For example, you may need to ping a few hosts 10 times per second, and others once per second.
Netdata allows you to add as many `fping` plugins as you like.
Follow this procedure:
**1. Create New fping Configuration File**
```sh
# Step Into Configuration Directory
cd /etc/netdata
# Copy Original fping Configuration File To New Configuration File
cp fping.conf fping2.conf
```
Edit `fping2.conf` and set the settings and the hosts you need for the seconds instance.
**2. Soft Link Original fping Plugin to New Plugin File**
```sh
# Become root (If The Step Step Is Performed As Non-Root User)
sudo su
# Step Into The Plugins Directory
cd /usr/libexec/netdata/plugins.d
# Link fping.plugin to fping2.plugin
ln -s fping.plugin fping2.plugin
```
That's it. Netdata will detect the new plugin and start it.
You can name the new plugin any name you like.
Just make sure the plugin and the configuration file have the same name.

View File

@ -1,44 +0,0 @@
# no need for shebang - this file is sourced from fping.plugin
# fping.plugin requires a recent version of fping.
#
# You can get it on your system, by running:
#
# /usr/libexec/netdata/plugins.d/fping.plugin install
# -----------------------------------------------------------------------------
# configuration options
# The fping binary to use. We need one that can output netdata friendly info
# (supporting: -N). If you have multiple versions, put here the full filename
# of the right one
#fping="/usr/local/bin/fping"
# a space separated list of hosts to fping
# we suggest to put names here and the IPs of these names in /etc/hosts
hosts=""
# The update frequency of the chart - the default is inherited from netdata
#update_every=2
# The time in milliseconds (1 sec = 1000 ms) to ping the hosts
# by default 5 pings per host per iteration
# fping will not allow this to be below 20ms
#ping_every="200"
# other fping options - defaults:
# -R = send packets with random data
# -b 56 = the number of bytes per packet
# -i 1 = 1 ms when sending packets to others hosts (switching hosts)
# -r 0 = never retry packets
# -t 5000 = per packet timeout at 5000 ms
#fping_opts="-R -b 56 -i 1 -r 0 -t 5000"

View File

@ -1,202 +0,0 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-3.0-or-later
# netdata
# real-time performance and health monitoring, done right!
# (C) 2017 Costa Tsaousis <costa@tsaousis.gr>
# GPL v3+
#
# This plugin requires a latest version of fping.
# You can compile it from source, by running me with option: install
export PATH="${PATH}:/sbin:/usr/sbin:/usr/local/sbin"
export LC_ALL=C
if [ "${1}" = "install" ]
then
[ "${UID}" != 0 ] && echo >&2 "Please run me as root. This will install a single binary file: /usr/local/bin/fping." && exit 1
[ -z "${2}" ] && fping_version="5.1" || fping_version="${2}"
run() {
printf >&2 " > "
printf >&2 "%q " "${@}"
printf >&2 "\n"
"${@}" || exit 1
}
download() {
local curl="$(which curl 2>/dev/null || command -v curl 2>/dev/null)"
[ ! -z "${curl}" ] && run curl -s -L "${1}" && return 0
local wget="$(which wget 2>/dev/null || command -v wget 2>/dev/null)"
[ ! -z "${wget}" ] && run wget -q -O - "${1}" && return 0
echo >&2 "Cannot find 'curl' or 'wget' in this system." && exit 1
}
[ ! -d /usr/src ] && run mkdir -p /usr/src
[ ! -d /usr/local/bin ] && run mkdir -p /usr/local/bin
run cd /usr/src
if [ -d "fping-${fping_version}" ]
then
run rm -rf "fping-${fping_version}" || exit 1
fi
download "https://github.com/schweikert/fping/releases/download/v${fping_version}/fping-${fping_version}.tar.gz" | run tar -zxvpf -
[ $? -ne 0 ] && exit 1
run cd "fping-${fping_version}" || exit 1
run ./configure --prefix=/usr/local
run make clean
run make
if [ -f /usr/local/bin/fping ]
then
run mv -f /usr/local/bin/fping /usr/local/bin/fping.old
fi
run mv src/fping /usr/local/bin/fping
run chown root:root /usr/local/bin/fping
run chmod 4755 /usr/local/bin/fping
echo >&2
echo >&2 "All done, you have a compatible fping now at /usr/local/bin/fping."
echo >&2
fping="$(which fping 2>/dev/null || command -v fping 2>/dev/null)"
if [ "${fping}" != "/usr/local/bin/fping" ]
then
echo >&2 "You have another fping installed at: ${fping}."
echo >&2 "Please set:"
echo >&2
echo >&2 " fping=\"/usr/local/bin/fping\""
echo >&2
echo >&2 "at /etc/netdata/fping.conf"
echo >&2
fi
exit 0
fi
# -----------------------------------------------------------------------------
PROGRAM_NAME="$(basename "${0}")"
logdate() {
date "+%Y-%m-%d %H:%M:%S"
}
log() {
local status="${1}"
shift
echo >&2 "$(logdate): ${PROGRAM_NAME}: ${status}: ${*}"
}
warning() {
log WARNING "${@}"
}
error() {
log ERROR "${@}"
}
info() {
log INFO "${@}"
}
fatal() {
log FATAL "${@}"
echo "DISABLE"
exit 1
}
debug=0
debug() {
[ $debug -eq 1 ] && log DEBUG "${@}"
}
# -----------------------------------------------------------------------------
# store in ${plugin} the name we run under
# this allows us to copy/link fping.plugin under a different name
# to have multiple fping plugins running with different settings
plugin="${PROGRAM_NAME/.plugin/}"
# -----------------------------------------------------------------------------
# the frequency to send info to netdata
# passed by netdata as the first parameter
update_every="${1-1}"
# the netdata configuration directory
# passed by netdata as an environment variable
[ -z "${NETDATA_USER_CONFIG_DIR}" ] && NETDATA_USER_CONFIG_DIR="@configdir_POST@"
[ -z "${NETDATA_STOCK_CONFIG_DIR}" ] && NETDATA_STOCK_CONFIG_DIR="@libconfigdir_POST@"
# -----------------------------------------------------------------------------
# configuration options
# can be overwritten at /etc/netdata/fping.conf
# the fping binary to use
# we need one that can output netdata friendly info (supporting: -N)
# if you have multiple versions, put here the full filename of the right one
fping="$( which fping 2>/dev/null || command -v fping 2>/dev/null )"
# a space separated list of hosts to fping
# we suggest to put names here and the IPs of these names in /etc/hosts
hosts=""
# the time in milliseconds (1 sec = 1000 ms)
# to ping the hosts - by default 5 pings per host per iteration
ping_every="$((update_every * 1000 / 5))"
# fping options
fping_opts="-R -b 56 -i 1 -r 0 -t 5000"
# -----------------------------------------------------------------------------
# load the configuration files
for CONFIG in "${NETDATA_STOCK_CONFIG_DIR}/${plugin}.conf" "${NETDATA_USER_CONFIG_DIR}/${plugin}.conf"
do
if [ -f "${CONFIG}" ]
then
info "Loading config file '${CONFIG}'..."
source "${CONFIG}"
[ $? -ne 0 ] && error "Failed to load config file '${CONFIG}'."
else
warning "Cannot find file '${CONFIG}'."
fi
done
if [ -z "${hosts}" ]
then
fatal "no hosts configured - nothing to do."
fi
if [ -z "${fping}" ]
then
fatal "fping command is not found. Please set its full path in '${NETDATA_USER_CONFIG_DIR}/${plugin}.conf'"
fi
if [ ! -x "${fping}" ]
then
fatal "fping command '${fping}' is not executable - cannot proceed."
fi
if [ ${ping_every} -lt 20 ]
then
warning "ping every was set to ${ping_every} but 20 is the minimum for non-root users. Setting it to 20 ms."
ping_every=20
fi
# the fping options we will use
options=( -N -l -Q ${update_every} -p ${ping_every} ${fping_opts} ${hosts} )
# execute fping
info "starting fping: ${fping} ${options[*]}"
exec "${fping}" "${options[@]}"
# if we cannot execute fping, stop
fatal "command '${fping} ${options[*]}' failed to be executed (returned code $?)."

View File

@ -15,7 +15,6 @@ from external processes, thus allowing Netdata to use **external plugins**.
|[apps.plugin](/collectors/apps.plugin/README.md)|`C`|linux, freebsd|monitors the whole process tree on Linux and FreeBSD and breaks down system resource usage by **process**, **user** and **user group**.|
|[charts.d.plugin](/collectors/charts.d.plugin/README.md)|`BASH`|all|a **plugin orchestrator** for data collection modules written in `BASH` v4+.|
|[cups.plugin](/collectors/cups.plugin/README.md)|`C`|all|monitors **CUPS**|
|[fping.plugin](/collectors/fping.plugin/README.md)|`C`|all|measures network latency, jitter and packet loss between the monitored node and any number of remote network end points.|
|[ioping.plugin](/collectors/ioping.plugin/README.md)|`C`|all|measures disk latency.|
|[freeipmi.plugin](/collectors/freeipmi.plugin/README.md)|`C`|linux|collects metrics from enterprise hardware sensors, on Linux servers.|
|[nfacct.plugin](/collectors/nfacct.plugin/README.md)|`C`|linux|collects netfilter firewall, connection tracker and accounting metrics using `libmnl` and `libnetfilter_acct`.|
@ -71,7 +70,6 @@ Example:
# check for new plugins every = 60
# charts.d = yes
# fping = yes
# ioping = yes
# python.d = yes
```

View File

@ -1702,7 +1702,6 @@ AC_CONFIG_FILES([
collectors/charts.d.plugin/Makefile
collectors/diskspace.plugin/Makefile
collectors/timex.plugin/Makefile
collectors/fping.plugin/Makefile
collectors/ioping.plugin/Makefile
collectors/freebsd.plugin/Makefile
collectors/freeipmi.plugin/Makefile

View File

@ -42,7 +42,6 @@ dist_healthconfig_DATA = \
health.d/dockerd.conf \
health.d/entropy.conf \
health.d/exporting.conf \
health.d/fping.conf \
health.d/geth.conf \
health.d/ioping.conf \
health.d/gearman.conf \

View File

@ -52,7 +52,7 @@ Navigate to the health configuration directory to see all the available files an
cd /usr/lib/netdata/conf.d/health.d/
ls
adaptec_raid.conf entropy.conf memory.conf squid.conf
am2320.conf fping.conf mongodb.conf
am2320.conf mongodb.conf
apache.conf mysql.conf swap.conf
...
```

View File

@ -1,64 +0,0 @@
template: fping_last_collected_secs
families: *
on: fping.latency
class: Latency
type: Other
component: Network
calc: $now - $last_collected_t
units: seconds ago
every: 10s
warn: $this > (($status >= $WARNING) ? ($update_every) : ( 5 * $update_every))
crit: $this > (($status == $CRITICAL) ? ($update_every) : (60 * $update_every))
delay: down 5m multiplier 1.5 max 1h
info: number of seconds since the last successful data collection
to: sysadmin
template: fping_host_reachable
families: *
on: fping.latency
class: Errors
type: Other
component: Network
calc: $average != nan
units: up/down
every: 10s
crit: $this == 0
delay: down 30m multiplier 1.5 max 2h
info: reachability status of the network host (0: unreachable, 1: reachable)
to: sysadmin
template: fping_host_latency
families: *
on: fping.latency
class: Latency
type: Other
component: Network
lookup: average -10s unaligned of average
units: ms
every: 10s
green: 500
red: 1000
warn: $this > $green OR $max > $red
crit: $this > $red
delay: down 30m multiplier 1.5 max 2h
info: average latency to the network host over the last 10 seconds
to: sysadmin
template: fping_packet_loss
families: *
on: fping.quality
class: Errors
type: System
component: Network
lookup: average -10m unaligned of returned
calc: 100 - $this
green: 1
red: 10
units: %
every: 10s
warn: $this > $green
crit: $this > $red
delay: down 30m multiplier 1.5 max 2h
info: packet loss ratio to the network host over the last 10 minutes
to: sysadmin

View File

@ -76,9 +76,6 @@ RUN mkdir -p /opt/src /var/log/netdata && \
ln -sf /dev/stdout /var/log/netdata/access.log && \
ln -sf /dev/stdout /var/log/netdata/debug.log && \
ln -sf /dev/stderr /var/log/netdata/error.log && \
# fping from alpine apk is on a different location. Moving it.
ln -snf /usr/sbin/fping /usr/local/bin/fping && \
chmod 4755 /usr/local/bin/fping && \
# Add netdata user
addgroup -g ${NETDATA_GID} -S "${DOCKER_GRP}" && \
adduser -S -H -s /usr/sbin/nologin -u ${NETDATA_GID} -h /etc/netdata -G "${DOCKER_GRP}" "${DOCKER_USR}"

View File

@ -218,12 +218,6 @@ if [ -f "usr/libexec/netdata/plugins.d/go.d.plugin" ] && command -v setcap 1>/de
run setcap "cap_net_admin+epi cap_net_raw=eip" "usr/libexec/netdata/plugins.d/go.d.plugin"
fi
# fix the fping binary
if [ -f bin/fping ]; then
run chown root:${NETDATA_GROUP} bin/fping
run chmod 4750 bin/fping
fi
# -----------------------------------------------------------------------------
echo "Configure TLS certificate paths"

View File

@ -1,45 +0,0 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck source=packaging/makeself/functions.sh
. "$(dirname "${0}")/../functions.sh" "${@}" || exit 1
version="5.1"
# shellcheck disable=SC2015
[ "${GITHUB_ACTIONS}" = "true" ] && echo "::group::Building fping" || true
fetch "fping-${version}" "https://fping.org/dist/fping-${version}.tar.gz" \
1ee5268c063d76646af2b4426052e7d81a42b657e6a77d8e7d3d2e60fd7409fe fping
export CFLAGS="-static -I/openssl-static/include -pipe"
export LDFLAGS="-static -L/openssl-static/lib"
export PKG_CONFIG_PATH="/openssl-static/lib/pkgconfig"
if [ "${CACHE_HIT:-0}" -eq 0 ]; then
run ./configure \
--prefix="${NETDATA_INSTALL_PATH}" \
--enable-ipv4 \
--enable-ipv6 \
--disable-dependency-tracking
cat > doc/Makefile <<-EOF
all:
clean:
install:
EOF
run make clean
run make -j "$(nproc)"
fi
run make install
store_cache fping "${NETDATA_MAKESELF_PATH}/tmp/fping-${version}"
if [ "${NETDATA_BUILD_WITH_DEBUG}" -eq 0 ]; then
run strip "${NETDATA_INSTALL_PATH}"/bin/fping
fi
# shellcheck disable=SC2015
[ "${GITHUB_ACTIONS}" = "true" ] && echo "::endgroup::" || true

View File

@ -52,7 +52,7 @@ CapabilityBoundingSet=CAP_SYS_ADMIN CAP_PERFMON
CapabilityBoundingSet=CAP_SYS_PTRACE
# is required for ebpf plugin
CapabilityBoundingSet=CAP_SYS_RESOURCE
# is required for fping app
# is required for go.d/ping app
CapabilityBoundingSet=CAP_NET_RAW
# is required for cgroups plugin
CapabilityBoundingSet=CAP_SYS_CHROOT

View File

@ -38,7 +38,6 @@
nfacct = no
python.d = no
apps = no
fping = no
cups = no
[health]

View File

@ -38,7 +38,6 @@
nfacct = no
python.d = no
apps = no
fping = no
cups = no
[health]

View File

@ -297,12 +297,6 @@ netdataDashboard.menu = {
info: 'Docker containers state and disk usage.'
},
'fping': {
title: 'fping',
icon: '<i class="fas fa-exchange-alt"></i>',
info: 'Network latency statistics, via <b>fping</b>. <b>fping</b> is a program to send ICMP echo probes to network hosts, similar to <code>ping</code>, but much better performing when pinging multiple hosts. fping versions after 3.15 can be directly used as netdata plugins.'
},
'ping': {
title: 'Ping',
icon: '<i class="fas fa-exchange-alt"></i>',
@ -4648,19 +4642,6 @@ netdataDashboard.context = {
info: 'Statistics about RetroShare\'s DHT. These values are estimated!'
},
// ------------------------------------------------------------------------
// fping
'fping.quality': {
colors: NETDATA.colors[10],
height: 0.5
},
'fping.packets': {
height: 0.5
},
// ------------------------------------------------------------------------
// containers