如果你想在宝塔面板的环境下搭建Smokeping,还是有点难度的。不过好在,我们还可以利用Grafana,因为提供了docker版本,所以在宝塔环境下搭建和部署都简单了不少。
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。
这篇文章就来介绍下,宝塔面板面板环境下利用Dockr、Grafana、InfluxDB、Telegraf搭建VPS网络线路监控平台~~~,文章可能复杂点也稍微有点长,请耐心看完~~~
1、简介
官网:https://grafana.com/
安装:https://grafana.com/docs/grafana/latest/installation/rpm/
docker安装:https://grafana.com/docs/grafana/latest/installation/docker/
2、准备
因为是在宝塔环境下安装,所以宝塔面板必不可少:
1)宝塔面板最新版本(宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9ub2NxdmI=)
2)docker管理器
宝塔安装docker管理器,请在软件商店中搜索安装,这里略过~~
3)docker-compose
安装这个有很多方法,这里推荐一个。
pip install docker-compose
如果提示:pip: command not found:解决如下:
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip -V #查看pip版本
接下来就可以随便pip安装东西了~~
3、部署
1)新建docker-compose.yml
mkdir -p /opt/pingmonitor && cd /opt/pingmonitor && vi docker-compose.yml
2)新建后,写入如下配置
[reply]
volumes: grafana-data: influxdb-data: services: grafana: image: grafana/grafana container_name: grafana environment: - GF_AUTH_ANONYMOUS_ENABLED=true ports: - 3000:3000 volumes: - grafana-data:/var/lib/grafana restart: unless-stopped influxdb: image: influxdb container_name: influxdb environment: - INFLUXDB_HTTP_AUTH_ENABLED=true - INFLUXDB_DB=telegraf - INFLUXDB_ADMIN_USER=admin - INFLUXDB_ADMIN_PASSWORD=password - INFLUXDB_USER=telegraf - INFLUXDB_USER_PASSWORD=password ports: - 8086:8086 volumes: - influxdb-data:/var/lib/influxdb restart: unless-stopped
[/reply]
注意:
1.GF_AUTH_ANONYMOUS_ENABLED是方便公开你的仪表板给别人访问。
2.INFLUXDB_ADMIN_PASSWORD设置HTTP身份验证的账号密码。
3.INFLUXDB_USER_PASSWORD设置数据库用户的密码。
3)运行docker
以上设置确认无误后up起来即可:
docker-compose up -d
4)访问你的IP:3000打开Grafana,默认的管理员账号密码均是admin
初次登录会提示你修改密码,可以选择skip~~~
4、添加数据源
1)添加InfluxDB数据源。
注意:
URL:http://infuluxdb:8086
2)勾上BasicAuth并填写INFLUXDB的HTTP身份验证的账号密码:
3)填写数据库信息
之后保存并测试,如果显示Data source is working 表示配置成功~~
5、客户端添加Telegraf
接下来在每台需要监控的VPS上安装Telegraf,Telegraf是用于监控主机系统的,不建议使用Docker安装,所以这里采用添加源的方式安装在每台机器上:
1)ubuntu安装如下:
apt -y update && apt -y install apt-transport-https wget gnupg wget -qO- https://repos.influxdata.com/influxdb.key | apt-key add - echo "deb https://repos.influxdata.com/debian buster stable" | tee /etc/apt/sources.list.d/influxdb.list apt -y update apt -y install telegraf
2)centos安装如下:
使用yum
软件包管理器安装Telegraf的最新稳定版本:
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF
将存储库添加到yum配置后,通过运行以下命令安装并启动Telegraf服务:
sudo yum install telegraf sudo service telegraf start
如果你的操作系统使用systemd(CentOS 7 +,RHEL 7+):
sudo yum install telegraf sudo systemctl start telegraf
3)其他系统请参考官方文档
https://docs.influxdata.com/telegraf/v1.14/introduction/installation/
4)编辑telegraf的主配置文件
vi /etc/telegraf/telegraf.conf
注意:宝塔面板用户可以直接在面板中编辑该文件~~~
打开后把以下配置代码复制粘贴进去~~
[[outputs.influxdb]] urls = ["http://服务器IP:8086"] database = "telegraf" username = "admin" password = "password"
注意:
- 服务器IP是搭建InfluxDB机器的公网IP,
- 这里的账号和密码不是数据库的而是InfluxDB的HTTP身份验证账号密码
- 如果不知道修改哪里,请看截图:
5)接下来新建一个监控项目的配置文件
vi /etc/telegraf/telegraf.d/ping.conf
注意:宝塔用户,可以直接在这个目录新建该文件
文件新建好后,写入如下配置:
[agent] interval = "20s" flush_interval = "20s" hostname = "瓦工" [[inputs.ping]] urls = ["219.148.253.57","58.49.233.254","183.56.167.125","60.16.96.1","103.38.43.1","122.194.47.117","211.137.47.109","117.174.59.1","120.237.53.17"] count = 5 ping_interval = 1.0 timeout = 1.0
注意:
1.注意修改hostname用于区分不同的机器。
2.测试IP都来自ipip.net的路由追踪~
6)ipip.net的路由追踪,每个IP的地理位置,可能会有少许变化请根据需要修改~
辽宁沈阳电信 219.148.253.57 湖北武汉电信 58.49.233.254 广东深圳电信 183.56.167.125 辽宁沈阳联通 60.16.96.1 湖南长沙联通 103.38.43.1 江苏镇江联通 122.194.47.117 辽宁沈阳移动 211.137.47.109 四川德阳移动 117.174.59.1 广东茂名移动 120.237.53.17
7)配置好了后启动重启telegraf/设置开机自启:
systemctl restart telegraf.service systemctl enable telegraf.service
6、配置仪表盘
客户端配置好就可以回到Grafana就可以新建仪表板了,由于没有现成的模板,这里只能自己手动创建一个了。
1)新建仪表盘
这个略过了,登录后首页就有,先是新建数据源,下面就是新建仪表盘~~
2)先来绘制PING值数据,按照下图的方式先把SQL查询语句构造出来,具体看图:(这里先添加一个电信的数据)
3)图表这块选择Settings(先从这里开始,设置该面板的标题和描述:)
4)Visualization,可以选择一个直接喜欢的图表样式
5)Display这里选择Lines,Null value选择connected:
6)Axes:Left Y的单位选择ms:
7)Legend勾选Avg显示出平均值:
8)其他的可以根据自己的需求改,差不多保存就可以了。
7、复制面板
1)接下来绘制标准差,之前已经创建好了一个面板,所以这次我们就可以直接偷懒复制出一个面板:
2)复制好之后,点击edit,开始编辑,只需要把SELECT修改为field (standard_deviation_ms)即可:
其他的可以和之前的保持一致。
3)最后再来绘制一个丢包率,还是按照之前的老套路复制一个面板出来,把SQL查询语句改为 (percent_packet_loss)即可。
4)Axes中的Left Y的单位改为percent(0-100):
5)不同的主机还是按照之前的套路复制一个面板出来,更改一下SQL查询语句内的Host就能展现出数据了:
8、效果
效果展示还是很不错的。
9、设置域名访问
用宝塔的话设置域名访问就很方便了。
10、最后
如果这样来监控vps线路质量的话,效果是非常不错的,唯一的就是设置麻烦点,不过我们设置好一个就可以套用模板一直复制来解决,所以整体来说体验还是很好的。
使用宝塔环境来安装的最大优点就是,我们安装这个之外,还可以用来做别的,而且宝塔可以可视化编辑文件,相对来说,更简单一点。
以上教程只演示了电信和移动的线路,其他线路请按照教程自行添加~~~~~~