Grafana 监控面板配置
安装 grafanaoss:开源版本 enterprise: 商业版本 https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1&edition=oss 添加数据源以 grafana 10.3.3 为例, 在 connections –> Data sources 中新增: 面板配置可以手动配置,也可以在 grafana 官网下载别人配置好的模板:https://grafana.com/grafana/dashboards/, 复制 ID 或者下载 json 文件到本地 然后在面板上面,点击 + , 选择 import dashboard 使用 json 文件导入或者直接输入面板 id 进行导入。 导入后便能看到基础的图形。 做变量筛选比如我们的监控会区分环境, 比如开发环境 dev,生产环境 prod, 现在需要在 grafana 的面板上做一个筛选框,这里是原始的数据:比如我们需要取 env 的值 在面板的设置 – 变量中, 添加一个变量, 变量名可以自定义,...
Django RestFramework 使用 JWT 认证
JWT 的优点优点:无状态,服务端不保存 token缺点:生成的 token 在有效期内一直有效,无论用户注销、修改密码。(可以通过存 redis,通过代码进行删除 redis 里的 token 解决。) 开始使用配置setting.py 里面设置默认值 12345678910REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', ),}JWT_AUTH = { 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7), # Token 过期时间为一周 'JWT_AUTH_HEADER_PREFIX': 'JWT', # Token的头为:JWT ...
fail2ban配合cloudflare cdn使用
Cloudflare 是一家全球最著名的 CDN 加速服务商,提供了免费和付费的网站加速和保护服务。即使是免费版,也提供了比较全面和强大的功能,非常不错。 通过使用 Cloudflare CDN 服务提供的全球节点,一方面可以提高网站响应速度和性能,节省源站资源;另一方面也可以保护站点抵御攻击,保证网站长期稳定在线。 fail2ban 是一个开源工具, 它通过分析日志, 将不满足要求的访问 (比如 cc 攻击、对网站进行扫描等) 的 ip 获取到, 通过自带防火墙 (iptables 等) 进行封禁. 问题一: 如何让 fail2ban 获取真实 IP 想要通过 fail2ban 来封禁 ip, 那么先要获取到用户 (或黑客) 的 ip, 如果不进行处理, 那么大概率你获取到的是 cloudflare 请求你用的 ip, 封禁这个 ip 是没有意义的… 我的服务架构是 cloudflare –> nginx –> 后端服务 在 nginx 上面配置 123456789101112131415server { ... # 这里设置一下Real_IP变量,...
制作macOS启动盘和dmg镜像
下载 macOS 安装文件参考苹果官方文档: https://support.apple.com/zh-cn/102662, 使用 App Store 下载即可。下载完成后会显示在应用程序里面 制作dmg磁盘镜像直接写入到u盘或移动硬盘创建一个空白的 dmg 镜像 打开「磁盘工具」,在顶部菜单选择「文件」>「新建映像」>「空白映像」,然后如下图: 「大小」的设置,根据安装镜像大小, 再增加 2GB, 我这里粗略设置为 15 GB;「格式」设置为「Mac OS 扩展(日志式)」;「分区」为设置为「单个分区 - GUID 分区图」;「映像格式」为「读/写」; 挂载这个磁盘镜像, 直接双击即可自动挂载。 数据写入到 dmg 磁盘 参考: https://support.apple.com/zh-cn/101578 12# 根据你的系统版本和磁盘挂载位置自行修改sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume...
macOS常用操作记录
HomeBrew安装 HomeBrewhttps://brew.sh/zh-cn/ brew 常用操作1234567891011121314# 更新 brewbrew update# 搜索软件包brew search <package name># 查看软件包信息brew info <package name># 查看软件包主页/官网brew home <package name># 查看一下安装位置brew --prefix mysql@8.0 常用工具安装123456789# 安装xcode工具集终端执行git命令。系统会自动弹窗,点击安装即可。# 安装git lfsbrew install git-lfsgit lfs install# 安装常用软件brew install stats clash-verge-rev keepassxc iterm2 iina squirrel visual-studio-code orbstack obsidian rustdesk lrzsz trzsz-ssh typora piclist...
开源组网工具-easytier
这个工具是利用 NAT 打洞实现,需要有一台服务器(可以自建也可以用官方提供的)做中介。经测试打洞成功率很高,速度也不错。打洞成功后,异地的机器就像在同一个内网一样方便,访问 smb、家里的 nas、远程桌面等等,并且支持自动对内网网段进行转发(zerotier 需要配置 iptables 转发)自建服务器后感觉比 zerotier 好用。zerotier 的文档可以看 群晖NAS部署zerotier内网穿透访问 附上官方的配置文件生成工具:https://easytier.cn/web/index.html#/config_generator 自建服务端这个步骤可以省略,不自建可以用社区提供的免费服务器。一个官方服务器地址:uri = "tcp://public.easytier.top:11010" 我安装的是 easytier 的 docker 版本。 config.toml123456789101112131415161718192021222324252627282930hostname = "guanyu"#...
shell脚本获取自身的信息
写 shell 脚本, 有时候需要获取一些信息, 比如这个脚本的名字,脚本所在的目录,脚本的绝对路径, 这个脚本的 pid, 参数等。 变量 说明 $0 脚本自身的路径(执行的时候调用路径) $1 第一个参数 $? 上一个脚本的返回值,0为正常 $* 所有的参数 $# 参数的个数 $$ 当前脚本的pid $_ 上一条命令的参数 获取脚本的文件名$0 是脚本的路径,这个路径有可能是相对路径,那么可以使用 dirname 和 basename 配合来获取脚本绝对路径 12345# 脚本所在的目录的绝对路径echo "$(cd $(dirname $0); pwd)"# 脚本的文件名echo $(basename $0) 获取脚本的绝对路径12345# 获取脚本的绝对路径DIR=$(cd $(dirname $0); pwd)FILE=$(basename $0)echo "${DIR}/${FILE}" 进入临时目录12# $_...
Linux大文件分割与合并
服务器上有个文件需要下载到本地, 但是文件较大, 我们都是通过 jumpserver 连接的, 通过 jumpserver 下载难免会遇到网络波动等导致下载失败, 我们可以通过分割大文件成一个个小文件, 然后下载后再在本地合并. 用到的命令是 split split 分割大文件1split -b 1024M -d -a 3 2023.tar.gz tmp. 参数说明: 参数 说明 -b 指定每个文件的大小, 支持 K M G -d 指定后缀编码为数字,默认编码为字母 -a 指定后缀长度,3 表示 3 位数, 比如上面的命令, 生成的文件就是 tmp.000 … ./tmp. 这个是生成的文件名前面的部分 如果报错 split: output file suffixes exhausted 说明后缀不够用了, 比如参数 -a 1 支持的后缀为 0 - 9 , 如果文件太大, 超过了 9, 就会报这个错. 使用 cat 合并大文件1cat tmp.* > 2023.tar.gz 合并完成再验证一下 MD5 值,...
Ubuntu 22.04 内核相关操作
文章内容在 Ubuntu 22.04 系统下测试成功, 版本相差过大请自测。 开机显示启动项新版 Ubuntu 好像默认不显示启动项而直接进入系统了,可以通过修改 /etc/default/grub 来实现开机显示启动选项列表 12345# 注释掉这一行# GRUB_TIMEOUT_STYLE=hidden# 这一行是在grub界面等待的时间,单位sGRUB_TIMEOUT=30 修改完成后执行 sudo update-grub 更新 grub 配置 下面两种方式二选一即可。 更换使用的内核版本(通过启动项 uuid 指定方式)查看当前在用的内核版本1uname -r 6.5.0-14-generic 查看系统启动项12345# 查看'Advanced options for Ubuntu'选项的uuidgrep "submenu 'Advanced options for Ubuntu'" /boot/grub/grub.cfg | awk -F\' '{print...
获取Kubernetes的token
获取 admin 的 token如果有这个 secret, 可以直接查看 token 1kubectl -n kube-system get secret admin-token-nwphb -o jsonpath={.data.token} | base64 -d 新版 k8s 命令为选择一个现有的 serviceaccount 1kubectl get serviceaccount 使用这个 serviceaccount 创建一个 token(并设置有效期) 1kubectl create token default --duration 10m 新建一个用户获取 token如果考虑到权限没有合适的,或者没有相关的 secret,可以通过创建一个新的用户来获取 token 12345kubectl create serviceaccount admin-sakubectl create clusterrolebinding admin-sa-binding --clusterrole=cluster-admin...