基于README的下一步快速使用指南交流(包含使用tunasync脚本、目录挂载、模板渲染)
xx-zhang opened this issue · 20 comments
rt
不一定,一般我们的处理方法是将 _site 目录单独放置,软连接到存放镜像的目录下。
@shankerwangmiao 謝謝.
@shankerwangmiao 怎么让我的子页面也用到首页的模板啊。
这个需要配合 nginx 的 njs 模块和 fancy_index 模块。
参考配置如下:
load_module modules/ngx_http_js_module.so;
load_module modules/ngx_http_fancyindex_module.so;
map $http_user_agent $isbrowser {
default 0;
"~*validation server" 0;
"~*mozilla" 1;
}
fancyindex_header /fancy-index/before;
fancyindex_footer /fancy-index/after;
fancyindex_exact_size off;
fancyindex_time_format "%d %b %Y %H:%M:%S +0000";
fancyindex_name_length 256;
error_page 404 /404.html;
location /fancy-index {
internal;
root /path/to/mirror-web/_site;
subrequest_output_buffer_size 100k;
location = /fancy-index/before {
js_content fancyIndexBeforeRender;
}
location = /fancy-index/after {
js_content fancyIndexAfterRender;
}
}
js_path /path/to/mirror-web/static/njs;
js_include /path/to/mirror-web/static/njs/all.njs;
location / {
root /path/to/mirrors;
fancyindex on;
}
@shankerwangmiao 非常感谢,我自个儿研究一下
@shankerwangmiao 不好意思,再打扰您一个问题。
就是我想更新自己的 static/status, static/tunasync.json等文件,而不是使用默认tsingahua的,应该触发哪个脚本进行替换呢,worker.conf
我是使用的自己定义的,也增加了自己的 /home/script/xxxx.sh
脚本更新了_site下的目录。
再就是worker下有个server 6000的服务,这个不知道做什么的。
static/tunasync.json
请反代到 tunasync manager 的/jobs
接口static/tunet.json
无用,可以去掉static/status/disk.json
磁盘占用情况,请自行定期生成static/status/isoinfo.json
首页“获取下载链接”功能的数据,使用mirror-web
下的geninfo/genisolist.py
定期扫描镜像目录生成static/status/{cpu,memory,diskstats_iops,service_traffic_IPv4,diskstats_throughput,service_traffic_IPv6}-day{,-dark}{,@2x,@3x,@4x}.png
是相应数据的统计图,对于每个数据都有浅色和深色两种主题,以及 1 倍到 4 倍分辨率的图像。该图像需要自行渲染。
@shankerwangmiao 非常感谢,fancy_index这个我已经解决了; 您这个 json 配置的说明对我帮助很大,现在使用 ngx插件后界面后跟之前差别不大,是不是代表着可以不起 jelley serve的的服务了
@shankerwangmiao 我刚才去看了您 tuna/status
的请求,发现了png是渲染后的,我发现这个必须监控,因为是一个有时序的状态变更表,而且这个功能有必要,所以我想问问您,有没有快速简介的方案,比如 snmp/promethus + grafana 还是 netdata之类的能直接生成这个 png 或者容易调用相关的接口数据接着自己用pyechart渲染,这个方案您之前调研过吗。
@shankerwangmiao 非常感谢,fancy_index这个我已经解决了; 您这个 json 配置的说明对我帮助很大,现在使用 ngx插件后界面后跟之前差别不大,是不是代表着可以不起 jelley serve的的服务了
Jekyll 本来就是静态页面渲染器,用 jekyll build
渲染好了就可以了。
@shankerwangmiao 我刚才去看了您
tuna/status
的请求,发现了png是渲染后的,我发现这个必须监控,因为是一个有时序的状态变更表,而且这个功能有必要,所以我想问问您,有没有快速简介的方案,比如 snmp/promethus + grafana 还是 netdata之类的能直接生成这个 png 或者容易调用相关的接口数据接着自己用pyechart渲染,这个方案您之前调研过吗。
用 grafana 的 image renderer 即可。API 是 /render/dashboard-solo/db/ <dashboard-name>
,参数可以使用 GET 请求传入,具体参数有:
from
、to
:要渲染的时间段,语法与 Grafana 正常观看 Dashboard 的参数一致panelId
:要渲染的 panel 的 IDwidth
、height
:渲染的图片宽高(逻辑大小)theme
:可以有light
和dark
scale
:缩放倍数
@shankerwangmiao 多谢,懂了。祝您生活愉快。
@shankerwangmiao 我今天调用 http://127.0.0.1:12345/jobs 时候除了错l;
{"error":"failed to list all mirror status: NOAUTH Authentication required."}
- 问题1. /jobs 状态是500,请求错误,是什么原因。
- 问题2.
two-stage-rsync
和rsync
两个provider 的区别 - 问题3. pypi 通过
rsync
会失败
补充上 两个配置文件;
本内容属于
tunasync
的问题,但是在这里,集中问下。
manager.py
debug = true
[server]
addr = "127.0.0.1"
port = 12345
ssl_cert = ""
ssl_key = ""
[files]
db_type = "redis"
#db_file = "/tmp/tunasync/manager.db"
#db_file = redis://user:password@host:port/db_number
db_file = "redis://sqsjywl123@127.0.0.1:6379/3"
ca_cert = ""
worker.conf
# /home/scripts in this example points to https://github.com/tuna/tunasync-scripts/
[global]
name = "mirror_worker_tsinghua"
log_dir = "/home/tunasync/log/tunasync/{{.Name}}"
mirror_dir = "/home/mirrors"
concurrent = 10
interval = 1
# ensure the exec user be add into `docker` group
[docker]
# in `command provider` can use docker_image and docker_volumes
enable = true
[manager]
api_base = "http://localhost:12345"
token = ""
ca_cert = ""
[cgroup]
enable = false
base_path = "/sys/fs/cgroup"
group = "tunasync"
[server]
hostname = "localhost"
listen_addr = "127.0.0.1"
listen_port = 6000
ssl_cert = ""
ssl_key = ""
[[mirrors]]
name = "centos"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/centos/"
use_ipv6 = false
rsync_options = [ "--delete-excluded"]
#exclude_file = "/home/scripts/excludes/centos-exclude.txt"
memory_limit = "1024M"
[[mirrors]]
name = "epel"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/epel/"
use_ipv6 = false
rsync_options = [ "--delete-excluded"]
#exclude_file = "/home/scripts/excludes/centos-exclude.txt"
memory_limit = "1024M"
[[mirrors]]
name = "pypi"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/pypi/"
use_ipv6 = false
rsync_options = [ "--delete-excluded"]
memory_limit = "1024M"
[[mirrors]]
name = "kali"
provider = "two-stage-rsync"
stage1_profile = "debian"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/kali/"
rsync_options = [ "--delete-excluded" ] # delete .~tmp~ folders
memory_limit = "1024M"
[[mirrors]]
name = "kali-images"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/kali-images/"
rsync_options = [ "--delete-excluded" ] # delete .~tmp~ folders
memory_limit = "1024M"
关于上面的第一个 我修改了版本为 0.6.9 解决了 jobs获取。
two-stage-rsync
是用于同步 apt 仓库的,比如 debian 和 ubuntu 等, 为了保证一致性,apt 仓库有特殊的同步时序。
pypi TUNA 不开放 rsync 服务,你需要从上游同步
@shankerwangmiao 谢谢答疑。理解了。
kali,ubuntu,debian,ubuntukylin等等都是 aot结构的仓库,apt_sync获取的可以用这个。
pypi 我使用您的,pip3安装了bandersnatc后就这样了,在同步。
[[mirrors]]
name = "pypi"
provider = "command"
upstream = "https://pypi.python.org/"
command = "/data/scripts/pypi.sh"
# docker_image = "tunathu/bandersnatch:latest"
interval = 5
监控数据是用 telegraf 采集的,存储在 influxdb 里
static/tunasync.json
请反代到 tunasync manager 的/jobs
接口static/tunet.json
无用,可以去掉static/status/disk.json
磁盘占用情况,请自行定期生成static/status/isoinfo.json
首页“获取下载链接”功能的数据,使用mirror-web
下的geninfo/genisolist.py
定期扫描镜像目录生成static/status/{cpu,memory,diskstats_iops,service_traffic_IPv4,diskstats_throughput,service_traffic_IPv6}-day{,-dark}{,@2x,@3x,@4x}.png
是相应数据的统计图,对于每个数据都有浅色和深色两种主题,以及 1 倍到 4 倍分辨率的图像。该图像需要自行渲染。
请问一下如何定期生成磁盘占用情况和网络带宽图的那几张图片,有没有参考的配置文件,非常感谢!
这个需要部署相应的监控数据采集体统,然后通过 grafana 进行可视化。然后定时从 grafana 里渲染图片出来。
这个需要部署相应的监控数据采集体统,然后通过 grafana 进行可视化。然后定时从 grafana 里渲染图片出来。
好的,我先试试,非常感谢。