LoginSignup
1
1

More than 3 years have passed since last update.

Dockerでsmokeping構築

Posted at

ネットワークに繋がっている機器のパケロスやRTTを計測するために、古くから利用されているsmokeping。

dockerでsmokepingをしている日本語の事例がググっても1件で、自分とは違うdockerイメージを使用していたので、自分で構築した手法を記す。docker初心者向けに記載したつもり。

docker-ceのインストール

dockerを使ったことがない人は、まず、docker-ceおよびdocker-composeのインストールをする。
docker-ceのインストールは公式に従って実施。

docker-composeはpipで実施すると楽だが、他の方法もある。

pip install docker-compose

dockerはデフォルトではrootでのみ実行可能なので、現ユーザでログインできるようにする。

# dockerグループ作成
sudo groupadd docker

# 現ユーザをdockerグループに所属させる
sudo gpasswd -a $USER docker

# dockerデーモンの再起動
sudo systemctl restart docker

# exit(exitせずに、sourceとかシェルに新たに入るだけだと反映されない)
exit

smokepingの構築

dockerhubからsearchをして、どのイメージがいいか探してみる。

$ docker search --filter "stars=10" smokeping
NAME                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
linuxserver/smokeping   A Smokeping container, brought to you by Lin…   80                                      [OK]
dperson/smokeping                                                       57                                      [OK]

linuxserver/smokepingはalpineを使っていて、dperson/smokepingはdebianなので、軽量だと思われるlinuxserver/smokepingを使う。STARも多いし。
使い方はdockerhubに書いてあるので、dockerhubを見て構築できる人は、この記事のここ以降を読む必要なし。
https://hub.docker.com/r/linuxserver/smokeping/

pullして確認する。

# pull
$ docker pull linuxserver/smokeping

# 確認
$ docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
linuxserver/smokeping             latest              fee9f5aa7700        3 days ago          104MB

docker-compose.ymlを作成する。
まずは、動かすユーザのPUIDとPGUIDを確認する。

# user名がuserの場合
$ id $USER
uid=1001(user) gid=1001(user) groups=1001(user)

docker-compose.ymlを実際に書く。

version: "2"
services:
  smokeping:
    image: linuxserver/smokeping
    container_name: smokeping
    environment:
      - PUID=<上記で確認した数値>
      - PGID=<上記で確認した数値>
      - TZ=Asia/Tokyo
    volumes:
      - <smokepingのconfigを保存したいディレクトリ>:/config
      - <smokepingのdataを保存したいディレクトリ>:/data
    ports:
      - <アクセスするポート番号。80でも問題ない>:80
    mem_limit: 4096m
    restart: unless-stopped

unless-stoppedがあるので、dockerを再起動した際に、自動で起動される。

一度起動して、すぐに落とす。docker-compose.ymlと同じディレクトリで下記を実行。

# 起動
$ docker-compose up -d

# 確認
$ docker-compose ps
  Name      Command   State   Ports
-----------------------------------
smokeping   /init     Up

# 落とす
$ docker-compose down

docker-compose.ymlで記載したconfigディレクトリ内に以下に下記ファイルが作られているはずなので、変更する。
詳しくは、ここを参考にするとよい。
https://oss.oetiker.ch/smokeping/index.en.html

*** General ***

owner    = <name>
contact  = <mail_address>
*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website. \

+ TestParent
menu = TestParent
title = TestParent

++ TestChild
menu = TestChild
title = TestChild
host = 192.0.2.1

最後にもう1回起動して完了。

docker-compose up -d

ブラウザで、docker-compose.ymlで設定したポートにアクセスすれば、smokepingの結果が確認できる。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1