哈喽啊各位,实在是好久不见,距离上次更新博客,已经是一年多前了,主要归咎于生活实在过于平静,加之又迈入了婚育的人生阶段,放下的又岂止是网络呢?话虽如此,我也时常忙里偷闲,总算也是维持着一些项目的运转。因为个人科学上网主要的用途就是看看流媒体,因此落地VPS的流媒体解锁情况是我尤为关注的重点,而Media Unlock Monitor这个项目,就很好实现了VPS流媒体解锁情况的监控。
一、项目介绍
该项目实际系MediaUnlockTest下的一个子项目,MediaUnlockTest基于lmc的全能检测脚本的思路使用golang重构,提供更快的检测速度。而该项目的作者,正是IDC商家NNC的老板,他家网络的上游是Akari,主打的就是优秀的流媒体解锁能力。如果你对JP/HK/TW/SGP这些亚太地区的VPS有较高的流媒体解锁需求的话,不妨可以试试NNC,我的AFF链接也在下方,感谢你的点击。
NNC:https://nnc.sh/aff.php?aff=335
MediaUnlockTest:https://github.com/nkeonkeo/MediaUnlockTest
lmc的全能检测脚本:https://github.com/lmc999/RegionRestrictionCheck
Media Unlock Monitor:https://github.com/nkeonkeo/MediaUnlockTest/tree/main/monitor
项目跑起来以后界面长这样:
二、环境准备
项目需要对接Prometheus和Grafana,这两个其实真要说起来挺复杂的,但是我们只用到他们很小一部分的功能,因此我也不建议在搭建上耗费太多精力,Docker一把梭即可。我用的是这个项目来部署的:个人编写的shell自动化脚本合集库,运行以下命令,选择“安装Prometheus+Grafana+node-exporter+consul+alertmanager+blackbox-exporter”即可。
bash <(curl -Ls https://cdn.jsdelivr.net/gh/e5sub/hst@master/ces.sh)
不过我更建议你找个更精简的Docker,这个里面东西太多了。。
三、部署流程
1.被监控端
首先我们在需要被监控的VPS上,安装Monitor服务,运行以下命令即可:
bash <(curl -Ls unlock.moe/monitor) -service
默认监控国际主流流媒体,如果需要监控指定区域的流媒体情况,运行上面命令的时候加上后缀即可:
-hk
Hong Kong
-jp
Japan
-mul
Multination (default true)
-na
North America
-sa
South America
-tw
Taiwan
或者安装后,修改service:
nano /etc/systemd/system/multi-user.target.wants/unlock-monitor.service
在下面这行加上后缀即可:
ExecStart=/usr/bin/unlock-monitor -特定区域2字母代码
2.设置Prometheus
我们需要在Prometheus的yml文件中,添加JOB,来抓取被监控端Monitor输出的解锁情况:
nano prometheus.yml
添加如下job:
- job_name: checkmedia
scrape_interval: 30s
static_configs:
- targets:
- <your ip/domain>:9101
- <your ip/domain>:9101
- ... ##有多台Monitor就继续写下去
如果你在安装Monitor时,没有指定端口,那默认就9101端口即可。
3.Grafana设置
接下来,数据既然通过Prometheus抓过来给Grafana了,那么就需要在Grafana中设置,把数据以图形的形式展现出来。
首先,添加一张State Timeline:
接下来选择数据来源Prometheus,按图选择一个instance即安装了Monitor的被监控端,有多个的话需要每个按这个步骤添加:
来到右侧,按图设置,重点是最后一张图的Mapping,即把解锁状态中的0、1等数字,与实际状态对应:
四、结语
至此,Media Unlock Monitor就安装和对接完成了,我们可以在Grafana中,看到实时和既往的解锁情况,这非常有助于我们选择那些稳定解锁的VPS作为落地。同时,得益于Grafana丰富的可玩性,我甚至看到一些机场将解锁状态集成到了他们的面板中,或者一些其他的网页中。