Code Monkey home page Code Monkey logo

docker-smokeping's Introduction

linuxserver.io

Blog Discord Discourse Fleet GitHub Open Collective

The LinuxServer.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • Blog - all the things you can do with our containers including How-To guides, opinions and much more!
  • Discord - realtime support / chat with the community and the team.
  • Discourse - post on our community forum.
  • Fleet - an online web interface which displays all of our maintained images.
  • GitHub - view the source for all of our repositories.
  • Open Collective - please consider helping us by either donating or contributing to our budget

Scarf.io pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Quay.io Docker Pulls Docker Stars Jenkins Build LSIO CI

Smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis.

smokeping

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling lscr.io/linuxserver/smokeping:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf

Application Setup

  • Once running, the URL will be http://<host-ip>/smokeping/smokeping.cgi. For example, a full URL might look like https://smokeping.yourdomain.com/smokeping/smokeping.cgi.
  • Basic setup: edit the Targets file to ping the hosts you're interested in to match the format found there.
  • Wait 10 minutes.
  • To reload the configuration without restarting the container, run docker exec smokeping pkill -f -HUP '/usr/bin/perl /usr/s?bin/smokeping(_cgi)?', where smokeping is the container ID.
  • To restart the container, run docker restart smokeping, where smokeping is the container ID.
  • Note that the default Targets file includes items that may or may not work. These are simply to provide examples of configuration.
  • Slave setup: modify the Targets, Slaves, and smokeping_secrets files on the master host, per the documentation.

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  smokeping:
    image: lscr.io/linuxserver/smokeping:latest
    container_name: smokeping
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - MASTER_URL=http://<master-host-ip>:80/smokeping/ #optional
      - SHARED_SECRET=password #optional
      - CACHE_DIR=/tmp #optional
    volumes:
      - /path/to/smokeping/config:/config
      - /path/to/smokeping/data:/data
    ports:
      - 80:80
    restart: unless-stopped
docker run -d \
  --name=smokeping \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e MASTER_URL=http://<master-host-ip>:80/smokeping/ `#optional` \
  -e SHARED_SECRET=password `#optional` \
  -e CACHE_DIR=/tmp `#optional` \
  -p 80:80 \
  -v /path/to/smokeping/config:/config \
  -v /path/to/smokeping/data:/data \
  --restart unless-stopped \
  lscr.io/linuxserver/smokeping:latest

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 80 Allows HTTP access to the internal webserver.
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e TZ=Etc/UTC specify a timezone to use, see this list.
-e MASTER_URL=http://<master-host-ip>:80/smokeping/ Specify the master url to connect to. Used when in slave mode.
-e SHARED_SECRET=password Specify the master shared secret for this host. Used when in slave mode.
-e CACHE_DIR=/tmp Specify the cache directory for this host. Used when in slave mode.
-v /config Persistent config files
-v /data Storage location for db and application data (graphs etc)

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

id your_user

Example output:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:

    docker exec -it smokeping /bin/bash
  • To monitor the logs of the container in realtime:

    docker logs -f smokeping
  • Container version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' smokeping
  • Image version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/smokeping:latest

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      docker-compose pull
    • Single image:

      docker-compose pull smokeping
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

      docker-compose up -d smokeping
  • You can also remove the old dangling images:

    docker image prune

Via Docker Run

  • Update the image:

    docker pull lscr.io/linuxserver/smokeping:latest
  • Stop the running container:

    docker stop smokeping
  • Delete the container:

    docker rm smokeping
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    docker image prune

Image Update Notifications - Diun (Docker Image Update Notifier)

tip: We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/linuxserver/docker-smokeping.git
cd docker-smokeping
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/smokeping:latest .

The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

  • 25.06.24: - Rebase to Alpine 3.20.
  • 12.04.24: - Added perl InfluxDB HTTP module for InfluxDB HTTP support.
  • 22.03.24: - Adding ability to run as a slave.
  • 23.12.23: - Rebase to Alpine 3.19.
  • 29.11.23: - Bump tcpping to 1.8.
  • 21.11.23: - Add support for IRTT Probes.
  • 23.07.23: - Add Authen::TacacsPlus for Tacacs+ support.
  • 16.05.23: - Add perl-authen-radius for Radius support.
  • 16.05.23: - Rebase to Alpine 3.18. Deprecate armhf.
  • 11.05.23: - Add perl-lwp-protocol-https for master/slave support over https.
  • 22.01.23: - Revert to using Apache due to latency issues with nginx and fcgiwrap.
  • 12.12.22: - Rebase to Alpine 3.17, migrate to s6v3, switch to nginx and fcgiwrap.
  • 29.03.21: - Dockerfile: Install curl before we call it
  • 23.01.21: - Rebasing to alpine 3.13.
  • 01.06.20: - Rebasing to alpine 3.12.
  • 19.12.19: - Rebasing to alpine 3.11.
  • 28.06.19: - Rebasing to alpine 3.10.
  • 23.03.19: - Switching to new Base images, shift to arm32v7 tag.
  • 22.02.19: - Rebasing to alpine 3.9.
  • 14.11.18: - Allow access without /smokeping in URL.
  • 28.04.18: - Rebase to alpine 3.8.
  • 09.04.18: - Add bc package.
  • 08.04.18: - Add tccping script and tcptraceroute package (thanks rcarmo).
  • 13.12.17: - Expose httpd_conf to /config.
  • 13.12.17: - Rebase to alpine 3.7.
  • 24.07.17: - Add :unraid tag for hosts without ipv6.
  • 12.07.17: - Add inspect commands to README, move to jenkins build and push.
  • 28.05.17: - Rebase to alpine 3.6.
  • 07.05.17: - Expose smokeping.conf in /config/site-confs to allow user customisations
  • 12.04.17: - Fix cropper.js path, thanks nibbledeez.
  • 09.02.17: - Rebase to alpine 3.5.
  • 17.10.16: - Add ttf-dejavu package as per LT forum.
  • 10.09.16: - Add layer badges to README.
  • 05.09.16: - Add curl package.
  • 28.08.16: - Add badges to README.
  • 25.07.16: - Rebase to alpine linux.
  • 23.07.16: - Fix apt script confusion.
  • 29.06.15: - This is the first release, it is mostly stable, but may contain minor defects. (thus a beta tag)

docker-smokeping's People

Contributors

aidanharris avatar alex-phillips avatar aptalca avatar aws-david avatar chbmb avatar ctaloi avatar davylandman avatar deflateawning avatar drizuid avatar homerr avatar ironicbadger avatar j0nnymoe avatar jandahl avatar jbrunink avatar linuxserver-ci avatar lloydpick avatar lonix avatar lordveovis avatar mrvaghani avatar nemchik avatar nibbledeez avatar rcarmo avatar roxedus avatar shakataganai avatar smdion avatar sparklyballs avatar thelamer avatar thespad avatar tinuva avatar tobbenb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-smokeping's Issues

add curl package

Hi,

We found your docker-smokeping very useful and we are using it in our systems.

But to use it with web curl we have to install this package manually after create and start your docker image.

It would be great if the image has this package and not to be installed later o have to rebuild it.

RRDs::info /data/foo.rrd: ERROR: '/data/foo.rrd' is too small (should be 2986716 bytes) at /usr/share/perl5/vendor_perl/Smokeping/RRDtools.pm line 113.

Expected Behavior

Smoke ping charts up on https://smokeping.dabase.com/

Current Behavior

Software error on https://smokeping.dabase.com/

Environment

OS: Raspbian
CPU architecture: arm32 Linux rasping 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l GNU/Linux
How docker service was installed: via distribution

pi@rasping:~ $ docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 4
 Server Version: 20.10.5
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.10.17-v7+
 Operating System: Raspbian GNU/Linux 10 (buster)
 OSType: linux
 Architecture: armv7l
 CPUs: 4
 Total Memory: 924.2MiB
 Name: rasping
 ID: TCIV:KHD3:LOPZ:2MNI:UNI4:WWZR:RYBV:3HBQ:SKBH:CUQV:WHGD:FHU2
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Command used to create docker container (run/create/compose/screenshot)

pi@rasping:~/smokeping $ cat docker-compose.yml
---
version: "2"
services:
  smokeping:
    image: linuxserver/smokeping
    container_name: smokeping
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Singapore
    volumes:
      - /home/pi/smokeping/config:/config
      - /home/pi/smokeping/data:/data
    ports:
      - 8085:80
    restart: unless-stopped
pi@rasping:~/smokeping $ cat smokeping.service
[Unit]
Description=Smoke Ping
After=docker.service
Requires=docker.service

[Service]
WorkingDirectory=/home/pi/smokeping

ExecStartPre=-/usr/bin/docker-compose pull
ExecStartPre=/usr/bin/docker-compose down --remove-orphans
ExecStart=/usr/bin/docker-compose up --force-recreate --remove-orphans
ExecStop=/usr/bin/docker-compose stop

[Install]
WantedBy=multi-user.target

Docker logs


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Your DockerHost is most likely running an outdated version of libseccomp

To fix this, please visit https://docs.linuxserver.io/faq#libseccomp

Some apps might not behave correctly without this

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.0.2. Set the 'ServerName' directive globally to suppress this message

Change server name ?

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Environment

OS: Raspbian 64
CPU architecture: arm64

Command used to create docker container (run/create/compose/screenshot)

version: "2.1"
services:
smokeping:
image: linuxserver/smokeping
container_name: smokeping
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
volumes:
- /home/pi/Docker/smokeping/config:/config
- /home/pi/Docker/smokeping/data:/data
ports:
- 8080:80
restart: unless-stopped


Hello,
It's possible change the server name ? thx

2020-09-07 11_48_30-Window

usage examples of client

This is not so much an issue more than it is a simple usage request:

Can you show usage examples for turning up clients and configuring the target file accordingly?

Feature Request: TCPPing Probe (and others?)

linuxserver.io

Thanks, team linuxserver.io

Hi LSIO team. Great container! I have a quick request.

The great part of SmokePing is that it is extensible probes - see the list of probes for an idea of what can be done. Unfortunately, this image doesn't allow use of many of these probes, as the base install is very thin. For example, I'm trying to implement the TCPPing probe, but TCPPing isn't installed in this image by default and as such it cannot be used.

I can docker exec into the container to install it, but that seems like it's against the point of running a docker container for SmokePing. Any chance we can get TCPPing installed (and maybe other probes as you see fit)? Thanks!

500 Internal Server Error - CGI script times out

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.

Fresh setup results in Server Error 500 - Internal Server error.

Expected Behavior

Get smokeping webinterface

Current Behavior

500 Server Error is returned

Steps to Reproduce

Use example docker compose to setup smokeping

Environment

OS: Parallels VM - Docker-machine
CPU architecture: x86_64
How docker service was installed: Docker-machine

Command used to create docker container (run/create/compose/screenshot)

Docker logs

apache error log:
[Fri May 08 22:08:08.237186 2020] [fcgid:warn] [pid 276] [client 192.168.178.68:63876] mod_fcgid: read data timeout in 40 seconds
[Fri May 08 22:08:08.237249 2020] [core:error] [pid 276] [client 192.168.178.68:63876] End of script output before headers: smokeping.cgi

Manually running the cgi script takes about 60 seconds before the html is being printed. It seems to be an access issue somewhere

Smokeping does not start /var/run/smokeping does not exist in the container file system

linuxserver.io

Smokeping does not start
The folder /var/run/smokeping does not exist in the container file system.

[services.d] starting services
services.d] done.
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using >172.18.0.5. Set the 'ServerName' directive globally to suppress this message
ERROR: /config/pathnames, line 5: Directory '/var/run/smokeping' does not exist
ERROR: /config/pathnames, line 5: Directory '/var/run/smokeping' does not exist
ERROR: /config/pathnames, line 5: Directory '/var/run/smokeping' does not exist
ERROR: /config/pathnames, line 5: Directory '/var/run/smokeping' does not exist
ERROR: /config/pathnames, line 5: Directory '/var/run/smokeping' does not exist
^C[cont-finish.d] executing container finish scripts...
cont-finish.d]**** done.
^C[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.

Solution
Create folder /var/run/smokeping in the dockerfile
or
Change pathnames config file to point to a folder that exists.

No restrictions can be set without preventing the function

linuxserver.io

Expected Behavior

For safety and performance reasons, general restrictions should be possible.

Current Behavior

As soon as a limit is set, e.g. mem_limit: 256m, no further data is recorded.

Steps to Reproduce

Simply enter one of the following values in the docker-compose file:

  • cpu_shares: 250
  • pids_limit: 100
  • mem_limit: 256m
  • mem_reservation: 64m
    or
    security_opt:
    apparmor:docker-default
    no-new-privileges

Environment

OS: Debian GNU/Linux 10 (buster)
CPU architecture: x86_64
How docker service was installed:
With the installation script from docker.

Command used to create docker container (compose)

---
version: "2.1"
services:
  smokeping:
    image: ghcr.io/linuxserver/smokeping
    container_name: smokeping
    mem_limit: 256m
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - </path/to/smokeping/config>:/config
      - </path/to/smokeping/data>:/data
    ports:
      - 80:80
    restart: unless-stopped

Docker logs

Unfortunately no errors are shown in the log.

Request to have smokeping come up as the default web page

linuxserver.io

Currently if you run the container and go to the web page root you get the "It Works!" default from Apache and have to put in /smokeping/smokeping.cgi to get to Smokeping.

I have a pull request that changes the httpd.conf file to open smokeping.cgi as the default page for the site. It does not break the existing smokeping/smokeping.cgi path for people that have that bookmarked.

Thanks, team linuxserver.io

tcpping leaks 255 ttl

linuxserver.io

Expected Behavior

tcpping should show packet loss when ttl is expired:

tcpping -C -x 5 100.100.100.199
100.100.100.199 : - - - - -

Current Behavior

tcpping responds with 255, and smokeping interprets as 255ms

tcpping -C -x 5 100.100.100.199
100.100.100.199 : 255 255 255 255 255

Steps to Reproduce

Configure smokeping to use tcpping Probes

Container should expose more or most config settings.

Currently only Targets is exposed via the /config volume. This is very limiting if you'd like to change settings like in the Database file for example.

How about exposing /etc/smokeping/config.d as a volume vs /config ? Then users will have the flexibility to adjust any setting they'd like.

Edit auto-refresh time when steps are frequent

Desired Behavior

When you go to smokeping the page will refresh automatically based on how often you are pinging something. It would be deisrable to move this config to either the config folder or edit it via parameters.

The line to be edited is in the basepage.html

If you ping something every 2nd second to measure packet loss the website becomes kind of unusable as you cannot zoom in/analyze the content.

Current Behavior

Refreshes based on steps set.

Reload configuration w/o restart container?

Expected Behavior

In the docs it claims a change to the config file on the host will be detected
and automatically applied.
I assume it is supposed to poll for changes then run smokeping --reload within the container.

Current Behavior

Everything works fine, except changes get never detected; I have to manually restart the container - which creates a gap in the data.

Steps to Reproduce

  1. change any config file
  2. wait ... forever

Environment

OS: Ubuntu 18.04 server
CPU architecture: x86_64
How docker service was installed: standard docker.io 19.03.6-0ubuntu1~18.04.3

Command used to create docker container (run/create/compose/screenshot)

docker-compose up -d

Docker logs

[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Smokeping version 2.007003 successfully launched.
Entering multiprocess mode.
### assuming you are using an tcpping copy reporting in milliseconds
Child process 332 started for probe TCPPing.
TCPPing: probing 2 targets with step 300 s and offset 150 s.
Child process 333 started for probe FPing.
No targets defined for probe TraceroutePing, skipping.
All probe processes started successfully.
FPing: probing 27 targets with step 300 s and offset 78 s.

no messages related to loading/reading the changed config

Smokeping - rebase to 3.9

This container requires rebase to 3.9 to fix broken fping version in alpine 3.8

Related issue #55

linuxserver.io

Thanks, team linuxserver.io

Feature request: add support for EchoPingHttps

linuxserver.io


Desired Behavior

users should be able to use EchoPingHttps

Current Behavior

EchoPingHttps requires binary echoping, which is not included in the docker image.

Alternatives Considered

I tried to install echoping with apk, but could not, it seems echoping is not available for alpine.

It would be helpful to have an extra Dockerfile based on debian-slim, rather than alpine.

Use web server to forward request.

linuxserver.io


Desired Behavior

As my 443 port is bind to a web server, so I want to forward requests from my web server to the docker smokeping.

Current Behavior

Can not get it to work.

Alternatives Considered

Use Caddy or Nginx as a web server. But I don't know how to config it to get it to work.

no data in smokeping

i installed sokeping with the following docker-compose file:

---
version: "2"
services:
  smokeping:
    image: lscr.io/linuxserver/smokeping
    container_name: smokeping
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Amsterdam
    volumes:
      - /mnt/usb/hassio_dockers/smokeping/config:/config
      - /mnt/usb/hassio_dockers/smokeping/data:/data
    ports:
      - 82:80
    restart: unless-stopped

i waited several hours, but still there are no charts coming up. Data folder is empty, config folder is filled with configs etc.

this is what i see in the logfile:

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Your DockerHost is most likely running an outdated version of libseccomp

To fix this, please visit https://docs.linuxserver.io/faq#libseccomp

Some apps might not behave correctly without this

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] 90-custom-folders: executing...
[cont-init.d] 90-custom-folders: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
AH00558: httpd: Could not reliably determine the server's fully qualified domain                                                                        name, using 172.18.0.2. Set the 'ServerName' directive globally to suppress this message
WARNING: Hostname 'ipv6.google.com' does currently not resolve to an IPv4 address

i am running debian stretch

Make changes so Slave instances can be launched

linuxserver.io

The current container image does not have a way to launch a slave instance for SmokePing. I have already come up with a single file modification to make this work.


Desired Behavior

Only file to modify on the image is \etc\services.d\smokeping\run , then I rebuilt it with docker build

\etc\services.d\smokeping\run

#!/usr/bin/with-contenv bash

if [ -a /config/MasterUrl ] && [ -a /config/SlaveSecret ]; then
    chmod 600 /config/SlaveSecret
    chmod 600 /config/MasterUrl
    if [ - a /var/smokeping ]; then mkdir /var/smokeping; done
    masterurl=$(cat /config/MasterUrl)
    exec s6-setuidgid abc  /usr/bin/smokeping --master-url=$masterurl --cache-dir=/var/smokeping --shared-secret=/config/SlaveSecret
else
    exec s6-setuidgid abc  /usr/bin/smokeping --config="/etc/smokeping/config" --nodaemon
fi

For the Slave container , we just need to create two files in the /config location
create /config/SlaveSecret

####example contents####
remote1secret

create /config/MasterUrl

####example contents####
http://192.168.55.212/smokeping/smokeping.cgi

On the Master container we will will need modify the following files so the slave can communicate

change file /config/Slaves

##example content##
secrets=/config/smokeping_secrets
+remote1
display_name=remote1
color=0000ff

Create /config/smokeping_secrets

##example content##
remote1:remote1secret

Modify /config/Targets to create check criteria for the Slave

##example content ##
+ Remote1
menu = Remote1
title = Remote1
slaves = remote1

++ GoogleDNS1
menu = Google DNS 1
title = Google DNS 8.8.8.8
host = 8.8.8.8

++ GoogleDNS2
menu = Google DNS 2
title = Google DNS 8.8.4.4
host = 8.8.4.4

Then we need to make sure we launch the slave using the hostname option, the slave will need to be able to each the master url, then everything works as expected

###example###
docker run --hostname remote1 -d --name=remote1 -e PUID=1000 -e PGID=1000 -e TZ=America/Chicago -v /srv/remote1:/config --restart unless-stopped   ghcr.io/linuxserver/smokeping

Current Behavior

Cannot get slave to work because you have to specify slave configuration on launch of smokeping

Alternatives Considered

I could create a fork and use my own image. I think this is good functionality to add.

Issue with alpine>3.6 and fping >4.0

Hi,
I found a problem with latest version (98), there is no graphs. After debugging I found out this:

FPing: Got fping output: '(null): can't create raw socket (must run as root?) : Address family not supported by protocol'                         

looks like latest fping have a problem with hosts that doesn't support ipv6. Your image is affected because of alpine base (since version 3.6 which includes fping >4.0)
Official fping issue: schweikert/fping#118

To fix it you can downgrade alpine base or update/compile fping manually (patch in attached issue).

Alert can't work

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Set alert script, but can't work.

Current Behavior

Steps to Reproduce

  1. Startup container
  2. Configure /config/Alerts:
    to = |/config/alert.sh
    ......
  3. Write alert.sh
    ......
    curl 'http://url.com' -d 'some....' >> alert.log 2>&1
    ......
  4. Configure /config/Targets: alerts = someloss
  5. Restart smokeping
    6 Wait 1.5 * step time
    alert.log is null.

Environment

OS:
CPU architecture: x86_64/arm32/arm64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

Docker logs

Map Probes Directory to Host Directory

linuxserver.io

I am trying to expose the Smokeping probes found at /usr/share/perl5/vendor_perl/Smokeping to the host so that a new probe can be installed without the need to copy the new probe into the container. Which would be lost if the container stops. Mapping a host ./probes directory to /usr/share/perl5/vendor_perl/Smokeping would make any changes to the probes persistent like the /config/Probes, Targets, etc.

Expected Behavior

To map the /usr/share/perl5/vendor_perl/Smokeping directory to, for example, /probes. Similar to how the /config and /data directories are mapped. This would allow adding a probe without the need to docker cp or another method to update the smokeping config without having to stop and restart the container.

Current Behavior

Cannot get /usr/share/perl5/vendor_perl/Smokeping to map to host /probes

Host:
services-admin@test:(172.20.0.8)~/DockerServices/docker-smokeping$ ls -alF probes/Smokeping
lrwxrwxrwx 1 services-admin services-admin 38 Dec 1 23:22 probes/Smokeping -> /usr/share/perl5/vendor_perl/Smokeping

Container:
root@2314b6e23f60:/# ls -alF probes/
total 8
drwxr-xr-x 2 abc abc 4096 Dec 1 23:22 ./
drwxr-xr-x 1 root root 4096 Dec 1 23:22 ../
lrwxrwxrwx 1 abc abc 38 Dec 1 23:22 Smokeping -> /usr/share/perl5/vendor_perl/Smokeping/
root@2314b6e23f60:/# ls -alF probes/Smokeping/
total 136
drwxr-xr-x 1 abc abc 4096 Dec 1 22:20 ./
drwxr-xr-x 1 root root 4096 Dec 1 22:20 ../
-rw-r--r-- 1 abc abc 3303 May 5 2019 Colorspace.pm
-rw-r--r-- 1 abc abc 316 May 5 2019 Config.pm
-rw-r--r-- 1 abc abc 18152 May 5 2019 Examples.pm
-rw-r--r-- 1 abc abc 14257 May 5 2019 Graphs.pm
-rw-r--r-- 1 abc abc 6288 May 5 2019 Info.pm
-rw-r--r-- 1 abc abc 9659 May 5 2019 Master.pm
-rw-r--r-- 1 abc abc 2084 May 5 2019 RRDhelpers.pm
-rw-r--r-- 1 abc abc 7276 May 5 2019 RRDtools.pm
-rw-r--r-- 1 abc abc 5073 May 5 2019 Slave.pm
-rw-r--r-- 1 abc abc 6408 May 5 2019 ciscoRttMonMIB.pm
drwxr-xr-x 1 abc abc 4096 Dec 1 22:20 matchers/
-rw-r--r-- 1 abc abc 3596 May 5 2019 pingMIB.pm
drwxr-xr-x 1 abc abc 4096 Dec 1 22:20 probes/
drwxr-xr-x 1 abc abc 4096 Dec 1 22:20 sorters/

Steps to Reproduce

create a symlink in 30-config (ln -sf /usr/share/perl5/vendor_perl/Smokeping /probes)

docker-compose.yml volumes: - ./probes:/probes

Environment

Host: ubuntu 19.04
CPU architecture: x86_64
docker-ce following prereqs

Command used to create docker container (run/create/compose/screenshot)

build smokeping -t .

version: "2"
services:
smokeping:
image: smokeping
container_name: smokeping
environment:
- PUID=1001
- PGID=1001
- TZ=America/Phoenix
volumes:
- ./config:/config
- ./data:/data
- ./probes:/probes
ports:
- 80:80
restart: unless-stopped

Docker logs

Log spam "Network unreachable"

My Host OS: Synology DSM 6.1.4-15217 Update 5

I have IPv6 for the whole Synology disabled.

cat /volume1/@docker/aufs/mnt/12ec748b9d95c20f0cd1a750184e427bf67eb9b5f7617fbd9276e97804113613/var/log/apache2/error.log

Outputs every second this:

[Sat Jan 13 11:47:55.929583 2018] [core:warn] [pid 232] (101)Network unreachable: AH00056: connect to listener on [::]:80

This is with version 94 .

How to configure Environment variables from files (Docker secrets)

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Current Behavior

Steps to Reproduce

Environment

OS:
CPU architecture: x86_64/arm32/arm64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

Docker logs

Enable IPv6 connection

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

I should be able to ping an IPv6 address.

Current Behavior

It doesn't: 2001:4860:4860::8888: error while sending ping: Address not available

Steps to Reproduce

Set up a IPv6 probe like this

Set up a FPing6 probe like


menu = Google DNS v6
title = Google DNS v6
probe = FPing
host = 2001:4860:4860::8888

(Fping is unified, no need to call Fping6)

Environment

OS: Ubuntu 20.06
CPU architecture: x86_64
How docker service was installed: Setup with docker-compose.

Command used to create docker container (run/create/compose/screenshot)

version: "2.1"
services:
  smokeping:
    image: linuxserver/smokeping
    container_name: smokeping
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - /opt/docker-smokeping/config:/config
      - /opt/docker-smokeping/data:/data
    ports:
      - "127.0.0.1:8001:80"
    restart: unless-stopped

Note

I understand it takes more setup in the container to enable IPv6. The possible fix of this issue is some verified descriptions of how one can enable IPv6, not necessarily a change in Dockerfile.

What is the default editor in this image?

I do not see a default editor for managing the Targets file. I tried to install nano with apt but it is not found. I tried to install with wget but make is also not found.

Probes are not recognized

I'm trying to use this container in kubernetes, I'm mounting a custom Targets and Probes file into /config. My targets are loaded properly, but when I use any probe besides fping, it says it doesn't recognize the probe.

ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables

It looks like Probes are loaded before Targets

root@smokeping-75d64fb5c8-jtzbs:/root# cat /etc/smokeping/config
@include /config/General
@include /config/Alerts
@include /config/Database
@include /config/Presentation
@include /config/Probes
@include /config/Slaves
@include /config/Targets
root@smokeping-75d64fb5c8-jtzbs:/root# cat /config/Probes
*** Probes ***

+ Curl
binary = /usr/bin/curl
urlformat = http://%host%/

+ FPing
binary = /usr/sbin/fping
blazemode = true

+ TCPPing

binary = /usr/bin/tcpping # mandatory
forks = 5
offset = 50%
step = 300
timeout = 15
pings = 5
port = 80

+ DNS
binary = /usr/bin/dig
root@smokeping-75d64fb5c8-jtzbs:/root# head -n 40 /config/Targets
*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of b0rked-derp Company.          Here you will learn all about the latency of our network.

+ AutoScaling
menu = AutoScaling
title = AutoScaling

++ AutoScaling
menu = AutoScaling
title = Overall AutoScaling Performance
host = /AutoScaling/us-east-1-icmp /AutoScaling/us-east-1-tcp /AutoScaling/us-east-2-icmp /AutoScaling/us-east-2-tcp /AutoScaling/us-west-1-icmp /AutoScaling/us-west-1-tcp /AutoScaling/us-west-2-icmp /AutoScaling/us-west-2-tcp


++ us-east-1-icmp
menu = us-east-1-icmp
title = us-east-1-icmp
host = autoscaling.us-east-1.amazonaws.com

++ us-east-1-tcp
menu = us-east-1-tcp
title = us-east-1-tcp
host = autoscaling.us-east-1.amazonaws.com
probe = TCPPing

++ us-east-2-icmp
menu = us-east-2-icmp
title = us-east-2-icmp
host = autoscaling.us-east-2.amazonaws.com

++ us-east-2-tcp
menu = us-east-2-tcp
title = us-east-2-tcp
host = autoscaling.us-east-2.amazonaws.com
probe = TCPPing
│ smokeping-75d64fb5c8-jtzbs:smokeping ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables                                                                                                         │
│ smokeping-75d64fb5c8-jtzbs:smokeping ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables                                                                                                         │
│ smokeping-75d64fb5c8-jtzbs:smokeping ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables                                                                                                         │
│ smokeping-75d64fb5c8-jtzbs:smokeping ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables                                                                                                         │
│ smokeping-75d64fb5c8-jtzbs:smokeping ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables                                                                                                         │
│ smokeping-75d64fb5c8-jtzbs:smokeping ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables                                                                                                         │
│ smokeping-75d64fb5c8-jtzbs:smokeping ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables                                                                                                         │
│ smokeping-75d64fb5c8-jtzbs:smokeping ERROR: /config/Targets, line 28: probe must be defined before the host or any probe variables
cat deploy/deployment.yaml
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: smokeping-data
  labels:
    k8s-app: smokeping
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: smokeping
  labels:
    k8s-app: smokeping
spec:
  strategy:
    type: Recreate
  replicas: 1
  template:
    metadata:
      labels:
        k8s-app: smokeping
    spec:
      containers:
      - name: smokeping
        image: linuxserver/smokeping
        imagePullPolicy: Always
        ports:
        - containerPort: 80
        env:
          - name: TZ
            value: "America/New_York"
        volumeMounts:
        - name: smokeping-targets
          mountPath: /config/Targets
          subPath: Targets
        - name: smokeping-probes
          mountPath: /config/Probes
          subPath: Probes
        - mountPath: "/data"
          name: data
      volumes:
        - name: smokeping-targets
          configMap:
            name: smokeping-targets
        - name: smokeping-probes
          configMap:
            name: smokeping-probes
        - name: data
          persistentVolumeClaim:
            claimName: smokeping-data

TCPPing probe not working

linuxserver.io

I have TCPPing enabled in Probes and add probes to Targets. However, the graphs is always empty and seems like no data being feed into RRDtool.

With access to the docker shell I found smokeping runs with user abc, then I tried a debug run of the command with user abc:

su -c '/usr/bin/perl /usr/bin/smokeping --config=/etc/smokeping/config --nodaemon --debug' -s /bin/sh abc

And in the result I got tcptraceroute returns "U"

TCPPing: forks 5, timeout for each target 601
TCPPing: Executing /usr/bin/tcpping -C -x 20 azure.xxx.xxx 443
TCPPing: Received: GLOB(0x55a292222ab8)
TCPPing: azure.xxx.xxx: got
Calling RRDs::update(/data/MyEndpoints/Azure.rrd --template uptime:loss:median:ping1:ping2:ping3:ping4:ping5:ping6:ping7:ping8:ping9:ping10:ping11:ping12:ping13:ping14:ping15:ping16:ping17:ping18:ping19:ping20 1558770956:U:20:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U)

While if I run the command with user root, the result seems to be normal and the graph will show this snap

TCPPing: Executing /usr/bin/tcpping -C -x 20 azure.xxx.xxx 443
TCPPing: Received: GLOB(0x55fb7a675148)
TCPPing: azure.xxx.xxx: got 3.0430000000e-03 3.2610000000e-03 3.4320000000e-03 3.4390000000e-03 3.6870000000e-03 3.7890000000e-03 3.8380000000e-03 3.8500000000e-03 3.8670000000e-03 3.9530000000e-03 3.9630000000e-03 4.0110000000e-03 4.0400000000e-03 4.0660000000e-03 4.0770000000e-03 4.1660000000e-03 4.2410000000e-03 4.3390000000e-03 4.4010000000e-03 5.4770000000e-03

Thanks, team linuxserver.io

Fping Probe not functioning as non-root

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Fping runs as user abc

Current Behavior

Fping errors with can't create socket.

# su -c "/usr/sbin/fping 127.0.0.1" -s /bin/sh abc
/usr/sbin/fping: can't create socket (must run as root?)

Steps to Reproduce

  1. Deploy new docker
  2. Execute shell in docker and run smokeping as abc and see u in response for RRD or run Fping
    1. su -c "/usr/sbin/fping 127.0.0.1" -s /bin/sh abc
    2. su -c '/usr/bin/perl /usr/bin/smokeping --config=/etc/smokeping/config --nodaemon --debug' -s /bin/sh abc

Environment

OS: CentOS / Rancher
CPU architecture: x86_64
How docker service was installed:
Latest Rancher

Command used to create docker container (run/create/compose/screenshot)

Rancher GUI deploy via linuxserver/workload and default ENV

Docker logs

[s6-init] ensuring user provided files have correct perms...exited 0. 
[fix-attrs.d] applying ownership & permissions fixes... 
[fix-attrs.d] done. 
[cont-init.d] executing container initialization scripts... 
[cont-init.d] 01-envfile: executing... 
[cont-init.d] 01-envfile: exited 0. 
[cont-init.d] 10-adduser: executing... 
 
------------------------------------- 
          _         () 
         | |  ___   _    __ 
         | | / __| | |  /  \ 
         | | \__ \ | | | () | 
         |_| |___/ |_|  \__/ 
 
 
Brought to you by linuxserver.io 
------------------------------------- 
 
To support LSIO projects visit: 
https://www.linuxserver.io/donate/ 
------------------------------------- 
GID/UID 
------------------------------------- 
 
User uid:    1000 
User gid:    1000 
------------------------------------- 
 
[cont-init.d] 10-adduser: exited 0. 
[cont-init.d] 30-config: executing... 
[cont-init.d] 30-config: exited 0. 
[cont-init.d] 99-custom-files: executing... 
[custom-init] no custom files found exiting... 
[cont-init.d] 99-custom-files: exited 0. 
[cont-init.d] done. 
[services.d] starting services 
[services.d] done. 
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.42.3.228. Set the 'ServerName' directive globally to suppress this message 
### assuming you are using an fping copy reporting in milliseconds 
Smokeping version 2.007003 successfully launched. 
Not entering multiprocess mode for just a single probe. 
FPing: probing 25 targets with step 60 s and offset 6 s. ```

Include echoping in package

It would be nice to be able to use other kinds of probes like echoping so that HTTP and HTTPS sites can be tested. The echoping provides this support.

Request /usr/bin/echoping to be available

Expected Behavior

As per https://oss.oetiker.ch/smokeping/probe/EchoPingHttp.en.html I was trying to use it on this docker image

 *** Probes ***

 +EchoPingHttp

 binary = /usr/bin/echoping

Current Behavior

root@996b940d1ae4:/# ls -lah /usr/sbin/ | grep echoping
root@996b940d1ae4:/# ls -lah /usr/bin/ | grep echoping 
root@996b940d1ae4:/# 

As you can see the echoping for https://oss.oetiker.ch/smokeping/probe/EchoPingHttp.en.html is missing.

Steps to Reproduce

  1. docker run -d --name=smokeping -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -p 8088:80 -v /home/pi/smokeping/config:/config -v /home/pi/smokeping/data:/data --restart unless-stopped linuxserver/smokeping
  2. docker exec -it smokeping /bin/bash
  3. ls -lah /usr/bin/ | grep echoping

Environment

pi@c1pi:~ $ uname -a
Linux c1pi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
pi@c1pi:~ $ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
linuxserver/smokeping   latest              f81bf07d7a6e        5 weeks ago         199MB
pi@c1pi:~ $ 

Command used to create docker container (run/create/compose/screenshot)

docker run -d --name=smokeping -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -p 8088:80 -v /home/pi/smokeping/config:/config -v /home/pi/smokeping/data:/data --restart unless-stopped linuxserver/smokeping

Docker logs

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \ 
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 
[cont-init.d] 30-config: exited 0.
[cont-init.d] 99-custom-files: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
### assuming you are using an tcpping copy reporting in milliseconds
Smokeping version 2.007003 successfully launched.
Entering multiprocess mode.
Child process 360 started for probe FPing.
FPing: probing 11 targets with step 300 s and offset 77 s.
Child process 361 started for probe TCPPing.
All probe processes started successfully.
TCPPing: probing 4 targets with step 300 s and offset 150 s.

404 page not found

I can connect to localhost, but not the IP address bound to eth0. Why is that?!

root@four:~# docker ps
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS                   PORTS
                                                     NAMES
889027ac1c37        linuxserver/smokeping   "/init"             7 minutes ago       Up 7 minutes             0.0.0.0:8080->80/tcp
                                                     smokeping
4d576a9ec52b        pihole/pihole:latest    "/s6-init"          8 minutes ago       Up 8 minutes (healthy)   0.0.0.0:53->53/udp, 0.0.0.0:53->53/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:67->67/udp   pihole
root@four:~# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:0e:a7:25 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::dea6:32ff:fe0e:a725/64 scope link
       valid_lft forever preferred_lft forever
root@four:~# curl localhost:8080
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://localhost:8080/smokeping/">here</a>.</p>
<hr>
<address>Apache/2.4.41 (Unix) Server at localhost Port 8080</address>
</body></html>
root@four:~# curl 192.168.1.4:8080
404 page not found
root@four:~# [A^C
root@four:~# curl -i 192.168.1.4:8080
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
Date: Sun, 10 Nov 2019 00:47:57 GMT
Content-Length: 19

404 page not found
root@four:~#
root@four:~# docker version
Client: Docker Engine - Community
 Version:           19.03.4
 API version:       1.40
 Go version:        go1.12.10
 Git commit:        9013bf5
 Built:             Fri Oct 18 16:03:00 2019
 OS/Arch:           linux/arm
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.4
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.10
  Git commit:       9013bf5
  Built:            Fri Oct 18 15:56:55 2019
  OS/Arch:          linux/arm
  Experimental:     false
 containerd:
  Version:          1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Time zone is not correct

Expected Behavior

The container's time zone should be either my local time zone (i.e. the Docker server's native) or UTC.

Current Behavior

Container's time zone is BST (British Summer Time), which is neither my local time zone nor UTC. This affects all the graphs in the web interface, for me they show an hour behind even though they are current.

Steps to Reproduce

docker-compose exec smokeping date
Sun Aug 23 16:07:12 BST 2020

Attempted solution

The recommended solution I found online was to add two volumes and restart the container, but this did not help:

- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"

Environment

OS: Debian GNU/Linux 10 (buster)
CPU architecture: x86_64
How docker service was installed: (installed through apt) docker-compose version 1.24.1, build 4667896b

Command used to create docker container (run/create/compose/screenshot)

default docker-compose file from https://hub.docker.com/r/linuxserver/smokeping

Docker logs

smokeping    | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
smokeping    | [s6-init] ensuring user provided files have correct perms...exited 0.
smokeping    | [fix-attrs.d] applying ownership & permissions fixes...
smokeping    | [fix-attrs.d] done.
smokeping    | [cont-init.d] executing container initialization scripts...
smokeping    | [cont-init.d] 01-envfile: executing... 
smokeping    | [cont-init.d] 01-envfile: exited 0.
smokeping    | [cont-init.d] 10-adduser: executing... 
smokeping    | 
smokeping    | -------------------------------------
smokeping    |           _         ()
smokeping    |          | |  ___   _    __
smokeping    |          | | / __| | |  /  \ 
smokeping    |          | | \__ \ | | | () |
smokeping    |          |_| |___/ |_|  \__/
smokeping    | 
smokeping    | 
smokeping    | Brought to you by linuxserver.io
smokeping    | -------------------------------------
smokeping    | 
smokeping    | To support LSIO projects visit:
smokeping    | https://www.linuxserver.io/donate/
smokeping    | -------------------------------------
smokeping    | GID/UID
smokeping    | -------------------------------------
smokeping    | 
smokeping    | User uid:    1000
smokeping    | User gid:    1000
smokeping    | -------------------------------------
smokeping    | 
smokeping    | [cont-init.d] 10-adduser: exited 0.
smokeping    | [cont-init.d] 30-config: executing... 
smokeping    | [cont-init.d] 30-config: exited 0.
smokeping    | [cont-init.d] 99-custom-files: executing... 
smokeping    | [custom-init] no custom files found exiting...
smokeping    | [cont-init.d] 99-custom-files: exited 0.
smokeping    | [cont-init.d] done.
smokeping    | [services.d] starting services
smokeping    | [services.d] done.
smokeping    | AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.22.0.2. Set the 'ServerName' directive globally to suppress this message
smokeping    | Smokeping version 2.007003 successfully launched.
smokeping    | Not entering multiprocess mode for just a single probe.
smokeping    | FPing: probing 5 targets with step 300 s and offset 175 s.

Include fping6 binary for IPv6 support

Expected Behavior

fping6 binary should be included in image for pinging IPv6 targets.

Current Behavior

fping6 is not present under /usr/bin or /usr/sbin

Steps to Reproduce

ls -la in /usr/bin and /usr/sbin

Environment

OS: Ubuntu 18.04.4 LTS
CPU architecture: x86_64
How docker service was installed: sudo apt install docker docker-compose

Command used to create docker container (run/create/compose/screenshot)

  smokeping:
    image: linuxserver/smokeping
    container_name: smokeping
    volumes:
      - /opt/docker/smokeping/config:/config
      - /opt/docker/smokeping/data:/data
    environment:
      - PUID=123
      - PGID=123
    restart: always

Docker logs

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \ 
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    999
User gid:    999
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 
cp: cannot stat '/config/smtp.conf': No such file or directory
[cont-init.d] 30-config: exited 0.
[cont-init.d] 99-custom-files: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.0.3. Set the 'ServerName' directive globally to suppress this message
[services.d] done.
Smokeping version 2.007003 successfully launched.
Entering multiprocess mode.
### parsing dig output...OK
Child process 284 started for probe FPing.
No targets defined for probe DNS, skipping.
All probe processes started successfully.
FPing: probing 32 targets with step 300 s and offset 170 s.

ERROR: output of '/usr/bin/dig localhost' does not match (?^i:query time:\s+([0-9.]+)\smsec.*)

Smokeping doesn't start

Expected Behavior

A functional Smokeping

Current Behavior

In Docker's log file:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing...
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing...
usermod: no changes

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Your DockerHost is most likely running an outdated version of libseccomp

To fix this, please visit https://docs.linuxserver.io/faq#libseccomp

Some apps might not behave correctly without this

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
ERROR: output of '/usr/bin/dig localhost' does not match (?^i:query time:\s+([0-9.]+)\smsec.*)
 at (eval 71) line 1.

ERROR: output of '/usr/bin/dig localhost' does not match (?^i:query time:\s+([0-9.]+)\smsec.*)
 at (eval 71) line 1.

When the dig command is runned directly in the container

root@50708294fadc:/# /usr/bin/dig localhost
time.c:126: Operation not permitted
timer.c:634: fatal error: RUNTIME_CHECK(isc_time_now((&now)) == 0) failed
Aborted (core dumped)

The date of the container is still

root@50708294fadc:/# date
Thu Jan  1 01:00:00 CET 1970

And when I try to display a page with ping results, in apache2 logs, the following errors are throwned

[Wed Jun 17 05:46:09.994467 2037] [fcgid:warn] [pid 293] [client 192.168.2.5:53120] mod_fcgid: stderr: [Wed Sep 26 23:35:28 46542] smokeping_cgi [client 192.168.2.5]: the first entry to fetch should be after 1980 (-1), referer: http://172.20.255.10/smokeping/?target=XXXXX
[Wed Jun 17 05:46:09.994467 2037] [fcgid:warn] [pid 293] [client 192.168.2.5:53120] mod_fcgid: stderr: [Wed Sep 26 23:35:28 46542] smokeping_cgi [client 192.168.2.5]: the first entry to fetch should be after 1980 (-1), referer: http://172.20.255.10/smokeping/?target=XXXXX
[Wed Jun 17 05:46:09.994467 2037] [fcgid:warn] [pid 293] [client 192.168.2.5:53120] mod_fcgid: stderr: [Wed Sep 26 23:35:28 46542] smokeping_cgi [client 192.168.2.5]: the first entry to fetch should be after 1980 (-1), referer: http://172.20.255.10/smokeping/?target=XXXXX
[Wed Jun 17 05:46:09.994467 2037] [fcgid:warn] [pid 293] [client 192.168.2.5:53120] mod_fcgid: stderr: [Wed Sep 26 23:35:28 46542] smokeping_cgi [client 192.168.2.5]: the first entry to fetch should be after 1980 (-1), referer: http://172.20.255.10/smokeping/?target=XXXXX
[Wed Jun 17 05:46:09.994467 2037] [fcgid:warn] [pid 293] [client 192.168.2.5:53120] mod_fcgid: stderr: [Wed Sep 26 23:35:28 46542] smokeping_cgi [c, referer: http://172.20.255.10/smokeping/?target=XXXXX
[Wed Jun 17 05:49:13.994467 2037] [core:error] [pid 293] [client 192.168.2.5:53120] malformed header from script 'smokeping.cgi': Bad header: <p>the first entry to fetch sh, referer: http://172.20.255.10/smokeping/?target=XXXXX

Previously, the Target file worked fine of standard Smokeping installation (without Docker)

Steps to Reproduce

  1. Fresh install of the OS
    2.Fresh install of Docker
  2. Fresh install of the Smokeping Container

Environment

OS: Raspbian GNU/Linux 10
CPU architecture: arm32 (RPi 3B)
How docker service was installed: from the official docker repo

Command used to create docker container (run/create/compose/screenshot)

docker run -d
--name=smokeping
-e PUID=1000
-e PGID=1000
-e TZ=Europe/Paris
-p 80:80
-v /smokeping/config:/config
-v /smokeping/data:/data
--restart unless-stopped
ghcr.io/linuxserver/smokeping

Replace Apache with nginx

As a reverse proxy, nginx would be more efficient for this job:

  • simplier and lighter configuration
  • works
  • multi-threads instead of multi-process

Are you interested in this change?

ssmtp default location incorrect

Unraid

docker run -d --name=smokeping \
-e PUID=99 \
-e PGID=100 \
-p 4829:80/tcp \
-v /path/to/smokeping/data:/data \
-v /path/to/smokeping:/config \
linuxserver/smokeping 

Logs

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...

-------------------------------------
_ ()
| | ___ _ __
| | / __| | | / \
| | \__ \ | | | () |
|_| |___/ |_| \__/


Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid: 99
User gid: 100
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
'Alerts' -> '/config/Alerts'
'Database' -> '/config/Database'
'General' -> '/config/General'
'Presentation' -> '/config/Presentation'
'Probes' -> '/config/Probes'
'Slaves' -> '/config/Slaves'
'Targets' -> '/config/Targets'
'pathnames' -> '/config/pathnames'
'ssmtp.conf' -> '/config/ssmtp.conf'
cp: cannot stat '/config/smtp.conf': No such file or directory
[cont-init.d] 30-config: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.0.43. Set the 'ServerName' directive globally to suppress this message
ERROR: /config/pathnames, line 1: File '/usr/bin/ssmtp' does not exist
ERROR: /config/pathnames, line 1: File '/usr/bin/ssmtp' does not exist
ERROR: /config/pathnames, line 1: File '/usr/bin/ssmtp' does not exist
ERROR: /config/pathnames, line 1: File '/usr/bin/ssmtp' does not exist
ERROR: /config/pathnames, line 1: File '/usr/bin/ssmtp' does not exist
ERROR: /config/pathnames, line 1: File '/usr/bin/ssmtp' does not exist

And results in an error on the webui stating

Software error:

ERROR: /config/pathnames, line 1: File '/usr/bin/ssmtp' does not exist

For help, please send mail to the webmaster ([email protected]), giving this error message and the time and date of the error. 

Thankfully won't break existing installs as the file linking to this is in persistent storage.
/config/pathnames

Broke on this PR merge.

Fix is to change /config/pathnames to read sendmail = /usr/sbin/ssmtp

I'll submit a PR.

The container state is always create

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

The container did not start properly

Current Behavior

image

Steps to Reproduce

Environment

OS:
CPU architecture: x86_64/arm32/arm64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

Docker logs

Cannot run as root user

Did a standard install on Synology via:

docker pull linuxserver/smokeping

docker create \
    --name smokeping \
    -p 9500:80 \
    -e PUID=0 -e PGID=101 \
    -e TZ=Africa/Johannesburg \
    -v /volume1/docker/smokeping/data:/data \
    -v /volume1/docker/smokeping/config:/config \
    linuxserver/smokeping

and get error when starting up:

AH00526: Syntax error on line 175 of /etc/apache2/httpd.conf:
Error:\tApache has not been designed to serve pages while\n\trunning as root.  There are known race conditions that\n\twill allow any local user to read any file on the system.\n\tIf you still desire to serve pages as root then\n\tadd -DBIG_SECURITY_HOLE to the CFLAGS env variable\n\tand then rebuild the server.\n\tIt is strongly suggested that you instead modify the User\n\tdirective in your httpd.conf file to list a non-root\n\tuser.\n

Line 175 shows:

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User abc
Group abc

</IfModule>

When changing the above to

User apache
Group apache

and doing an apachectl -t

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.20. Set the 'ServerName' directive globally to suppress this message

I also needed to change ownership to avoid error WARNING: creating /var/cache/smokeping/rrdtool.png: Permission denied: /var/www/localhost/smokeping/smokeping.cgi

chown apache:apache /var/cache/smokeping/

sSMTP.conf does not apply: Email Alerts do not generate

linuxserver.io

Configured the conf file generated for ssmtp.conf in the docker context as below following guide from https://sendgrid.com/docs/for-developers/sending-email/ssmtp/

mailhub=smtp.sendgrid.net:587
AuthUser={MYsendGRIDUSERNAME}
AuthPass={SENDGRIDPASSWORD}
UseSTARTTLS=YES

DURING container startup error is prompted:
smokeping | cp: cannot stat '/config/smtp.conf': No such file or directory


Expected Behavior

The sSMTP.conf in the build context should apply at container startup so sendmail is configured so it can be used for smtp email alerting

Current Behavior

No emails are sent, instead dead.letter file is generated in the build context

Steps to Reproduce

  1. Startup container
  2. Configure sSMTP.config
  3. Configure Alerts with TO and FROM Address
  4. execute tSmoke --testmail

Results in ERROR: not sending mail to [email protected], as all methodes failed

Environment

Docker-compose

Redirect from root to application directory

Suggestion:

It would be great for the container to provide a redirect from the url root to /smokeping/smokeping.cgi, so that you can simply access it as a client without needing the magic path.

Latest image for arm32v7 - problem with date/time

linuxserver.io

Got the newest image for arm32v7 --> smokeping stopped working.

After some checks i found out, that the date and time is wrong inside the container.

I have the timezone option in my docker-compose file

I also tried with using etc/localtime from the docker host.


Expected Behavior

Time should be correct

Current Behavior

Time is always "Thu Jan 1 01:00:00 CET 1970"

Steps to Reproduce

create a container with the latest arm32 image.

Environment

OS: Raspbian 10
CPU architecture: arm32
How docker service was installed:

from rasbian repo

Command used to create docker container (run/create/compose/screenshot)

version: '3'

services:
smokeping:
image: linuxserver/smokeping
restart: always
container_name: smokeping
hostname: 'smokeping'
networks:
docker-net:
ipv4_address: "10.41.0.24"

environment:
    - PGID=114
    - PUID=109
    - TZ=Europe/Berlin


volumes:
    - /dir/smokeping/data/config:/config
    - /dir/smokeping/data/data:/data
    - 

networks:
default:
external:
name: docker-net
docker-net:
external: true

Docker logs

there are no logs that show an error!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.