基于Smokeping+Promethues+Grafana搭建网络质量监控

二、环境准备

组件版本
系统Debian GNU/Linux 12 (bookworm)

Smokeping 部署

Smokeping是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),Smokeping会向目标设备和系统发送各种类型的测试数据包,测量、记录,并通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况,如:延迟、丢包率、是否是BGP多线等。

组件介绍

general(普通设置) 、alerts(警报设置)、Datebase(数据库参数)、presentation(网络自定义)、slaves(从smokeping定义)、targets(目标设置—“含插件定义”)

Docker 部署

docker pull linuxserver/smokeping
docker run -d \
--name=smokeping \
-e TZ=Asia/Shanghai \
-p 9080:80 \
-v /home/config/smokeping:/config \
-v /home/data/smokeping:/data \
--restart unless-stopped \
linuxserver/smokeping

部署推送脚本

apt update && apt upgrade
apt install -y rrdtool
cd /home/config/smokeping/
git clone https://github.com/Sayyiku/idc_ping_monitor.git
unzip idc_ping_monitor-master.zip(如果是因为网络上传,需要用到此命令解压)
mv idc_ping_monitor-master/smokeping/location/ /home/config/smokeping/

编辑Smokeping 监控配置

vim Targets
*** Targets ***
 
probe = FPing
 
menu = Top
title = 网络节点质量监控
remark = Smokeping 网络质量监控系统


@include /config/location/cmcc
@include /config/location/telcom
@include /config/location/tencent
@include /config/location/unicom

更新Smokeping

find /home/data/smokeping/ -name "*.rrd"|xargs rm -f
docker restart 容器 ID

修改脚本

IP 修改为本机IP

root@VM-4-17-debian:/home/config/smokeping# vim /home/config/smokeping/idc_ping_monitor-master/collection_to_prometheus.py

'LOG_FILE' : '/tmp/smoking_pushgateway.log',
'prometheus_gateway' : 'http://ip:9091', 
'data_dir' : '/home/data/smokeping'

设置定时任务

crontab -e 
* * * * * python3 /home/config/smokeping/idc_ping_monitor-master/collection_to_prometheus.py

Promethues部署

时序数据介绍

时序数据库强调的是以时间为主坐标,根据时间的流逝来记录事物的变化关系。关系型数据库主要是描述事物与事物之间的变化关系,这个关系相对于时间就比较复杂,比如一对多,多对多。而时间相对简单,只需要简单记录在这个时间点的某个事物发生的变化。监控数据恰恰符合这个时间变化,我们只需要记录某个指标在时间流逝当中的变化即可。

时序数据库非常适合”变化”。比如在关系型数据库中描述事物的关系,使用表结构,一旦定义下来,就遵循这个表结构不断的采集数据,如果发生变化,比如新增一个采集维度,那就要变更表结构,DDL操作对于关系型数据库来说,是非常大的代价。然后这对于时序数据库来说,并没有这个烦恼,时间序列数据集跟踪整个系统的改动并不断插入新数据,而不是更新原有数据。所以,对于监控数据来说,采集新的数据维度对于整个表结构不会有任何影响,因为它压根就没有表结构。

容器部署Promethues

root@VM-4-17-debian:~# docker run -d -p 9090:9090 --name prometheus prom/prometheus
root@VM-4-17-debian:~# docker cp prometheus:/etc/prometheus/prometheus.yml ./

持久化部署

root@VM-4-17-debian:~# docker rm -f prometheus
prometheus
root@VM-4-17-debian:~# mkdir /data/prometheus/
root@VM-4-17-debian:~# cp prometheus.yml /data/prometheus/
root@VM-4-17-debian:~# docker run -d -p 9090:9090 --name prometheus \
-v /data/prometheus/:/etc/prometheus/ \
-e TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime \
prom/prometheus
3fbee8038e5256c622dda73078bd5e04aea3c7abe9a2da62b61cf64541d0c50e
root@VM-4-17-debian:~# 

Prometheus  pushgateway部署

Docker部署

root@VM-4-17-debian:~# docker run -d --name="prometheus_pushgateway" -p 9091:9091 prom/pushgateway

修改prometheus配置,添加pushgateway

root@VM-4-17-debian:~# vim /data/prometheus/prometheus.yml
  - job_name: prometheus_pushgateway
    honor_labels: true                       # 避免收集数据本身的 job 和 instance被pushgateway实例信息覆盖
    static_configs:
    - targets: ['ip:9091']
      labels:
        instance: pushgateway
root@VM-4-17-debian:~# docker restart prometheus

prometheus web(IP:9090)

查看pushgateway状态是否为UP

Grafana 部署

官网介绍:https://grafana.com/docs/grafana/latest/

Docker部署

[root@VM-4-17-debian ~]# mkdir /data/grafana-storage
[root@VM-4-17-debian ~]# chmod 777 /data/grafana-storage/

[root@VM-4-17-debian ~]# docker run -d -p 3000:3000 \
--name grafana \
-v /data/grafana-storage:/var/lib/grafana \
-e "GF_SECURITY_ADMIN_PASSWORD=123456" \
grafana/grafana

Grafana WEB访问

浏览器ip:3000访问验证,用户名:admin 密码:123456

添加数据源

监控模板添加

JSON文件在grafana文件夹下

效果预览

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇