17 Commits

Author SHA1 Message Date
Flow86
baa179a41c Merge pull request #8 from PaesslerAG/Flow86-patch-1
fix: allow more parameters to be passed through
2025-05-27 09:00:40 +02:00
Flow86
91a2187ec1 fix: allow more parameters to be passed through
allow short form of --help (-h) and also --version (-V) to be directly used
2025-05-26 11:43:02 +02:00
Flow86
b54bc94716 Merge pull request #7 from PaesslerAG/docu/manual-link
docs: update manual link
2025-04-16 06:55:54 +02:00
Florian Dörsch
44749872c3 docs: update manual link 2025-04-15 07:35:57 +02:00
Benjamin Kästner
b04fc33694 Merge pull request #6 from PaesslerAG/Flow86-patch-1
ci: delete .github/workflows/dockerhub-description.yml
2025-03-18 15:24:19 +01:00
Flow86
198cc27854 ci: delete .github/workflows/dockerhub-description.yml
The job is not used anyway
2025-03-18 14:09:02 +01:00
Benjamin Kästner
94519a402f Merge pull request #4 from PaesslerAG/Flow86-patch-1
docs: fix wrong local volume paths for docker volumes
2024-12-05 15:23:34 +01:00
Flow86
546ee7af5e docs: fix wrong local volume paths for docker volumes
docker expects to have absolute paths for local volume definitions
2024-11-25 10:14:39 +01:00
Flow86
dfdc14a586 Merge pull request #3 from PaesslerAG/fix/entrypoint_service_run_2
fix: broken conditions in run script
2024-10-10 14:22:09 +02:00
Florian Dörsch
8bb3d9b08b fix: broken conditions in run script 2024-10-09 08:32:18 +02:00
Flow86
19ee055f91 Merge pull request #1 from PaesslerAG/fix/entrypoint_service_run
Adapt entrypoint and README
2024-09-13 10:32:32 +02:00
Florian Dörsch
07882452e1 feat: test if the id is set in the config.yml and if so, don't generate an id.txt file aswell as not set PRTGMPPROBE__ID 2024-08-19 10:03:48 +02:00
Florian Dörsch
8a15bb8d94 docs: add information on how to use a custom CA certificate and/or where to obtain it 2024-08-19 10:03:44 +02:00
Florian Dörsch
cb62a9faa3 docs: add clarification on how to find all configuration file options 2024-08-19 10:03:40 +02:00
Florian Dörsch
08ee7e1398 fix: do not always add service-run as argument to the entrypoint
This allows the correct usage of

`docker run -it paessler/multi-platform-probe example-config`
2024-08-19 10:03:34 +02:00
Flow86
29af404991 Merge pull request #2 from PaesslerAG/actions/dockerhub-description
Add workflow to update dockerhub description automatically
2024-08-19 09:46:01 +02:00
Florian Dörsch
fd79b23057 ci: add workflow to update dockerhub description automatically 2024-08-16 11:01:37 +02:00
3 changed files with 46 additions and 29 deletions

View File

@@ -57,4 +57,5 @@ VOLUME [ "/config", "/opt/paessler/share/scripts" ]
# set WORKDIR to a sane default # set WORKDIR to a sane default
WORKDIR / WORKDIR /
ENTRYPOINT [ "/run-prtgmpprobe.sh", "service-run" ] ENTRYPOINT [ "/run-prtgmpprobe.sh" ]
CMD [ "service-run" ]

View File

@@ -17,7 +17,7 @@ We recommend that you always update to the latest version of PRTG via the Auto-U
Requires a [NATS server](#install-and-configure-a-nats-server) connection configured in PRTG. Requires a [NATS server](#install-and-configure-a-nats-server) connection configured in PRTG.
[prtg-96]: https://www.paessler.com/prtg/history/stable#24.2.96.1315 [prtg-96]: https://www.paessler.com/prtg/history/stable#24.2.96.1315
[manual]: https://paessler.canto.global/direct/document/qvou34dmut1uh0gg6mqee3ip2k/K-e9xGiEiT58XzlH3s_Nf-B3lVk/original?content-type=application%2Fpdf&name=Multi-Platform+Probe+Manual.pdf [manual]: https://manuals.paessler.com/multiplatformprobemanual.pdf
## How to use the multi-platform probe container ## How to use the multi-platform probe container
@@ -37,7 +37,7 @@ Paessler GmbH provides the **NATS Server for Paessler PRTG** Windows installer t
* Configures the NATS server. * Configures the NATS server.
* Installs and starts the NATS server service in the background. * Installs and starts the NATS server service in the background.
For the installer and step-by-step instructions on how to set up a NATS server on Windows, see section **Step 1: Install a NATS server** in the [Multi-Platform Probe for PRTG (PDF)][manual] manual. For the installer and step-by-step instructions on how to set up a NATS server on Windows, see section **Step 1: Install a NATS server** in the [Multi-Platform Probe for PRTG][manual] manual.
If you want to deploy your NATS server on a non-Windows system, see the NATS documentation on their website. If you want to deploy your NATS server on a non-Windows system, see the NATS documentation on their website.
@@ -46,7 +46,7 @@ For the installer and step-by-step instructions on how to set up a NATS server o
Once you set up your NATS server, you must configure PRTG to accept connections to the NATS server. Once you set up your NATS server, you must configure PRTG to accept connections to the NATS server.
This is done from the PRTG web interface via **Setup** | **Cores & Probes** | **[Multi-Platform Probe Connection Settings][prtg-manual:cores]**. This is done from the PRTG web interface via **Setup** | **Cores & Probes** | **[Multi-Platform Probe Connection Settings][prtg-manual:cores]**.
For step-by-step instructions on how to configure PRTG, see section **Step 2: Configure connection in PRTG** in the [Multi-Platform Probe for PRTG (PDF)][manual] manual. For step-by-step instructions on how to configure PRTG, see section **Step 2: Configure connection in PRTG** in the [Multi-Platform Probe for PRTG][manual] manual.
[prtg-manual:cores]: https://www.paessler.com/manuals/prtg/core_and_probes#multi_platform_probe_connection [prtg-manual:cores]: https://www.paessler.com/manuals/prtg/core_and_probes#multi_platform_probe_connection
@@ -66,19 +66,33 @@ nats:
``` ```
You must put the configuration file into the `/config/config.yml` volume of the docker container. You must put the configuration file into the `/config/config.yml` volume of the docker container.
For all available configuration options, see [config.full-example.yml](./config/config.full-example.yml).
The container also used the `/config` volume to store the [multi-platform probe's GID][GID] and therefore cannot be set as read-only (`:ro`) unless you specify the GID as an environment variable. If necessary you can put your custom [CA certificate][TLS] into `/config/certs` and specify it in the `/config/config.yml` as well:
```yaml
access_key: YOUR_PROBE_ACCESS_KEY
nats:
url: tls://localhost:23561
authentication:
user: USER
password: PASSWORD
server_ca: /config/certs/ca.crt
```
The container also used the `/config` volume to store the [multi-platform probe's GID][GID] and therefore cannot be set as read-only (`:ro`) unless you specify the [multi-platform probe's GID][GID] as an environment variable.
You can also use the `/opt/paessler/share/scripts` volume for the scripts of the [Script v2][prtgmanual:scriptv2] sensor. You can also use the `/opt/paessler/share/scripts` volume for the scripts of the [Script v2][prtgmanual:scriptv2] sensor.
[prtgmanual:scriptv2]: https://www.paessler.com/manuals/prtg/script_v2_sensor [prtgmanual:scriptv2]: https://www.paessler.com/manuals/prtg/script_v2_sensor
[TLS]: https://kb.paessler.com/en/topic/91877-how-can-i-create-a-tls-certificate
[GID]: https://www.paessler.com/manuals/prtg/prtg_administration_tool_on_remote_probe_systems#:~:text=GID [GID]: https://www.paessler.com/manuals/prtg/prtg_administration_tool_on_remote_probe_systems#:~:text=GID
```sh ```sh
docker run -it \ docker run -it \
--network bridge \ --network bridge \
-v ./scripts:/opt/paessler/share/scripts:ro \ -v $(pwd)/scripts:/opt/paessler/share/scripts:ro \
-v ./config:/config \ -v $(pwd)/config:/config \
--cap-add NET_ADMIN \ --cap-add NET_ADMIN \
--cap-add NET_RAW \ --cap-add NET_RAW \
paessler/multi-platform-probe:latest paessler/multi-platform-probe:latest

View File

@@ -13,12 +13,12 @@ _passthrough=0
for _arg in "$@" for _arg in "$@"
do do
case "$_arg" in case "$_arg" in
--help|example-config) -h|--help|example-config|-V|--version)
_passthrough=1 _passthrough=1
;; ;;
esac esac
done done
if [ ! $_passthrough -eq 0 ] ; then if [ $_passthrough -ne 0 ] ; then
exec gosu paessler_mpprobe:paessler_mpprobe \ exec gosu paessler_mpprobe:paessler_mpprobe \
${PRTGMPPROBE__BINARY} \ ${PRTGMPPROBE__BINARY} \
"$@" "$@"
@@ -42,19 +42,29 @@ done
# Handling Env vars # Handling Env vars
# Get/Generate a probe id from PRTGMPPROBE__ID_FILE or from PRTGMPPROBE__ID if [ ! -f "${PRTGMPPROBE__CONFIG_FILE}" ] ; then
if [ -z "${PRTGMPPROBE__ID-}" ] ; then error "Configuration file ${PRTGMPPROBE__CONFIG_FILE} does not exist. Please create one."
if [ ! -f "${PRTGMPPROBE__ID_FILE}" ] ; then echo >&2 " "
cat /proc/sys/kernel/random/uuid > ${PRTGMPPROBE__ID_FILE} || ( echo >&2 "Example:"
error "Unable to write to ${PRTGMPPROBE__ID_FILE}. Please either set PRTGMPPROBE__ID in the container environment or make sure the location ${PRTGMPPROBE__ID_FILE} is writable." ${PRTGMPPROBE__BINARY} example-config >&2
echo >&2 " " exit 1
echo >&2 "Example:" fi
echo >&2 "PRTGMPPROBE__ID=$(cat /proc/sys/kernel/random/uuid)"
exit 1 # Get/Generate a probe id from PRTGMPPROBE__ID_FILE or from PRTGMPPROBE__ID if not set in PRTGMPPROBE__CONFIG_FILE
) if ! grep -q "^id:" "${PRTGMPPROBE__CONFIG_FILE}" ; then
if [ -z "${PRTGMPPROBE__ID-}" ] ; then
if [ ! -f "${PRTGMPPROBE__ID_FILE}" ] ; then
cat /proc/sys/kernel/random/uuid > ${PRTGMPPROBE__ID_FILE} || (
error "Unable to write to ${PRTGMPPROBE__ID_FILE}. Please either set PRTGMPPROBE__ID in the container environment, 'id:' in the ${PRTGMPPROBE__CONFIG_FILE} or make sure the location ${PRTGMPPROBE__ID_FILE} is writable."
echo >&2 " "
echo >&2 "Example:"
echo >&2 "PRTGMPPROBE__ID=$(cat /proc/sys/kernel/random/uuid)"
exit 1
)
fi
PRTGMPPROBE__ID=$(cat ${PRTGMPPROBE__ID_FILE})
export PRTGMPPROBE__ID
fi fi
PRTGMPPROBE__ID=$(cat ${PRTGMPPROBE__ID_FILE})
export PRTGMPPROBE__ID
fi fi
export PRTGMPPROBE__NAME=${PRTGMPPROBE__NAME:-"multi-platform-probe@$(hostname)"} export PRTGMPPROBE__NAME=${PRTGMPPROBE__NAME:-"multi-platform-probe@$(hostname)"}
@@ -70,14 +80,6 @@ export PRTGMPPROBE__LOGGING__CONSOLE__WITHOUT_TIME=${PRTGMPPROBE__LOGGING__CONSO
export PRTGMPPROBE__LOGGING__JOURNALD__LEVEL=${PRTGMPPROBE__LOGGING__JOURNALD__FIELD_PREFIX:-"off"} export PRTGMPPROBE__LOGGING__JOURNALD__LEVEL=${PRTGMPPROBE__LOGGING__JOURNALD__FIELD_PREFIX:-"off"}
export PRTGMPPROBE__LOGGING__JOURNALD__FIELD_PREFIX=${PRTGMPPROBE__LOGGING__JOURNALD__FIELD_PREFIX:-"PRTGMPPROBE"} export PRTGMPPROBE__LOGGING__JOURNALD__FIELD_PREFIX=${PRTGMPPROBE__LOGGING__JOURNALD__FIELD_PREFIX:-"PRTGMPPROBE"}
if [ ! -f "${PRTGMPPROBE__CONFIG_FILE}" ] ; then
error "Configuration file ${PRTGMPPROBE__CONFIG_FILE} does not exist. Please create one."
echo >&2 " "
echo >&2 "Example:"
${PRTGMPPROBE__BINARY} example-config >&2
exit 1
fi
env | grep PRTGMPPROBE__ >&2 env | grep PRTGMPPROBE__ >&2
# add capabilities for icmp to the probe executable # add capabilities for icmp to the probe executable