前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu 18.04 通过 Docker 快速部署 Smokeping 2.6.11 教程

Ubuntu 18.04 通过 Docker 快速部署 Smokeping 2.6.11 教程

作者头像
搬砖部落
修改2020-09-24 10:10:23
2.7K0
修改2020-09-24 10:10:23
举报
文章被收录于专栏:搬砖部落

这几天折腾了一下安装 Smokeping,发现有不少已经打包好的 Docker 镜像,拿过来直接用会非常方便,基本上不需要什么复杂的配置,安装完 Docker 然后简单的配置几个监控点就可以了。但是也有一些比较明显的不足,比如暂时没法很好的支持 master / slave 这个架构,主要是使用 Docker 部署的节点没法以 slave 的身份运行,所以这个方法只适用于简单的单点监控,多点监控还是需要自己使用原始方法安装部署。Smokeping 是一个用来监控网络时延的工具,官网为:

https://oss.oetiker.ch/smokeping/

此外,目前本教程也暂未涉及到 Web Server 的配置,包括 NGINX 或者 Apache 的配置等。这些会在后续教程进行更新。

一、安装 Docker 并获取镜像

1、首先安装 Docker,本文基于 Ubuntu 16.04 LTS,安装 Docker 也不是本文重点,所以如果还不会安装 Docker 的,就自行 Google 一下。Ubuntu 上安装 Docker 非常简单,一句命令就能搞定:

代码语言:javascript
复制
apt install docker.io

安装完后应该是 Docker 17.03 CE 版本。(万年不更新的 docker.io 居然更新了)

2、安装完 Docker 之后,获取 Smokeping 的镜像。本次教程使用的是 LinuxServer.io 提供的 Docker 镜像。获取方式如下:

代码语言:javascript
复制
docker pull linuxserver/smokeping

获取之后可以使用 docker images 看一下是否已经有该镜像。

更多镜像的信息可以参考:

Github:https://github.com/linuxserver/docker-smokeping

Docker hub:https://hub.docker.com/r/linuxserver/smokeping/

二、安装和配置 Smokeping

1、下面开始安装并配置 Smokeping,首次运行,先运行下面命令:

代码语言:javascript
复制
docker run --name smokeping -d --rm -p 8888:80 -e TZ=Asia/Shanghai linuxserver/smokeping

其中端口映射可以选择自己想要映射的端口,前面的 8888 是映射出来的端口,后面的 80 是 Docker 的端口,想修改外部的端口的话,修改 8888 即可。

然后把配置目录导出到本地磁盘,实现监控数据持久化。

代码语言:javascript
复制
mkdir -p /data/smokeping
docker cp smokeping:/data/ /data/smokeping/ 
docker cp smokeping:/config/ /data/smokeping/ 
docker stop smokeping

2、上面的步骤就算是安装完成了,下面开始修改一些主要配置。

先修改一下要监控的对象,修改 Targets 文件。

vim /data/smokeping/config/Targets

然后添加或者修改自己想要监控的节点,比如下面这样:

代码语言:javascript
复制
####################################################################
+ China
menu = China Sites
title = China Sites
++ ChinaTel
menu = ChinaTel
title = ChinaTel
host = 14.155.220.1
++ ChinaDNS114
menu = ChinaDNS114
title = ChinaDNS 114.114.114.114
host = 114.114.114.114
++ ChinaDNS115
menu = ChinaDNS115
title = ChinaDNS 114.114.115.115
host = 114.114.115.115
####################################################################

如果图简单,只想先成功跑通,也可以使用官方默认的配置进行测试。

下面再次重新运行这个 Docker 容器:

代码语言:javascript
复制
docker run \
    --name smokeping \
    -d \
    -p 8888:80 \
    -e PUID=1000 -e PGID=1000 \
    -e TZ=Asia/Shanghai \
    -v /data/smokeping/data:/data \
    -v /data/smokeping/config:/config \
    linuxserver/smokeping

这里需要注意的是,PUID 和 PGID 可以通过下面命令查看:

代码语言:javascript
复制
id username

其中的 username 就是你要查看的 user 的账户名。这里一般默认使用 1000 即可,无需修改。

如果想使用单行命令,如下所示(和上面的多行命令效果一样,无需重复运行):

代码语言:javascript
复制
docker run --name smokeping -d -p 82:80 -e PUID=1000 -e PGID=1000 -e TZ=Asia/Shanghai -v /data/smokeping/data:/data -v /data/smokeping/config:/config linuxserver/smokeping

至此,Docker 已经成功运行。如果想要查看日志,可以使用:

代码语言:javascript
复制
docker logs -f smokeping

如果想要进入容器内部:

代码语言:javascript
复制
docker exec -it smokeping bash

如果想要访问刚刚配置的 Smokeping:

http://<host-ip>:8888/smokeping/smokeping.cgi

其中的 <host-ip> 就是你的 VPS 的 IP。

三、批量添加监控项

步骤如下。需要监控的对象的名称和 IP 地址:

代码语言:javascript
复制
cat > config <<EOF
LAN_SW_CORE 10.0.0.1
LAN_HW_FW   10.0.0.10
LAN_SW_GW   10.0.1.1
EOF

然后生成配置即可:

代码语言:javascript
复制
cat config | while read LINE ; do
    #生成CONFIG LINE
    CL01=`echo ${LINE} | awk '{print "++ "$1}'`            #++ SERVER
    CL02=`echo ${LINE} | awk '{print "menu = "$1}'`        #menu = SERVER
    CL03=`echo ${LINE} | awk '{print "title = "$1" "$2}'`  #title = SERVER_IP
    CL04=`echo ${LINE} | awk '{print "host = "$2}'`        #host = IP
    echo -e "$CL01\n$CL02\n$CL03\n$CL04\n"                 #生成配置
    #echo -e "$CL01\n$CL02\n$CL03\n$CL04\n"    >>  ./Targets            #生成配置写入到文件
done

四、参考文献以及其他

本文的参考文献如下所示:

后续我自己也会结合 NGINX 进行进一步部署,以及进一步部署 Smokeping 的 master / slave 架构。后续会继续更新更多教程。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装 Docker 并获取镜像
  • 二、安装和配置 Smokeping
  • 三、批量添加监控项
  • 四、参考文献以及其他
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档