2023年12月

tianji对于服务器的监控短小够用,只需要在后台,点击添加Server后会弹出执行命令

2023-12-29T07:43:34.png

不过这个地方要注意,这段curl+bash指令会自动安装系统服务,但是上报接口就是当前访问管理后台的地址,除了把协议变成了http。所以,如果tianji系统部署后设置了只允许https访问,那么就要设置bt面板同样允许http访问或者修改

sed -i 's:http:https:g' /lib/systemd/system/tianji-reporter.service
systemctl daemon-reload
systemctl restart tianji-reporter

最终效果是这样的

2023-12-29T07:45:44.png

tianji是一个借鉴uptime-kuma实现的网站服务器、网站服务的监控,尤其是后者,对于访问来源、页面、次数有统计,对于站长了解当前网站访问情况有帮助。

部署tianji

version: '3'
services:
  tianji:
    image: moonrailgun/tianji
#    ports:
#      - "12345:12345"
    environment:
      DATABASE_URL: postgresql://tianji:tianji@postgres:5432/tianji
      JWT_SECRET: xxx
      ALLOW_REGISTER: "false"
      ALLOW_OPENAPI: "true"
      SERVER_URL:
    depends_on:
      - postgres
    restart: always
    networks:
      tianji-network:
        ipv4_address: 172.19.3.31
  postgres:
    image: postgres:15.4-alpine
    environment:
      POSTGRES_DB: tianji
      POSTGRES_USER: tianji
      POSTGRES_PASSWORD: tianji
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      tianji-network:
        ipv4_address: 172.19.3.51

networks:
  tianji-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.19.3.0/24

在后台,新建网站,会得到一段code,实际是一段script调用脚本,放到html文件中就可以了。
2023-12-29T07:23:57.png
为了简单,我们也可以使用nginx的http_sub_module模块实现自动加入统计代码。

#PROXY-START/

location ^~ /
{
    proxy_pass http://172.18.7.31:8181;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache
    
    
    set $static_fileC8idh6S8 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        set $static_fileC8idh6S8 1;
        expires 1m;
        }
    if ( $static_fileC8idh6S8 = 0 )
    {
    add_header Cache-Control no-cache;
    }



        sub_filter '</body>' '<script async defer src="https://tianji.op123.ren/tracker.js" data-website-id="clqqazhov002ntj7moh8djq8g"></script></body>';
        sub_filter_once on;  # 确保替换只发生一次
        sub_filter_types text/html;  # 确保只处理HTML文件

}

#PROXY-END/

2023-12-29T07:25:19.png

新建proxmox虚拟机,不要磁盘

2023-12-29T05:05:09.png

登录proxmox,下载qcow文件
2023-12-29T05:05:49.png

安装7z解压软件

sudo apt-get install p7zip-full

准备解压。proxmox当前根分区容量有限,还剩9GB,担心不够。看到/dev足足有63GB没有使用,何不解压到这个地方呢,而且,这里面还都是内存哦,读写速度更快。
2023-12-29T05:21:20.png

2023-12-29T05:23:30.png

果然,足足有14GB。

2023-12-29T05:23:53.png

准备导入

qm importdisk  202 /dev/kali-linux-2023.4-qemu-amd64.qcow2 nvme  --format=qcow2 

2023-12-29T05:25:20.png

因为当前proxmox系统的磁盘一共有两块,一块是512GB的SSD,另一块是1TB的PCIE NVME SSD。
2023-12-29T05:27:00.png
且,前者是lvm-thin模式,后者是lvm没有thin模式。
2023-12-29T05:27:33.png

所以解压过程从14GB->80GB(qcow2全尺寸大小)会慢一些。
2023-12-29T05:28:20.png
解压完成
2023-12-29T05:28:31.png

切换到proxmox控制面板,点击导入的硬盘,并点击Add
2023-12-29T05:29:08.png
硬盘已经挂上了。
2023-12-29T05:29:36.png

进入Option选项页面,调整启动设备和顺序,勾选新加硬盘。
2023-12-29T05:31:32.png

开机。
2023-12-29T05:29:54.png

无法关机,
2023-12-29T05:34:08.png

使用如下命令unlock文件

qm unlock 202
qm stop 202

2023-12-29T05:39:25.png

可以进去了
2023-12-29T05:40:00.png

确认服务名称
进入jenkins相应任务页面,查看历史发布记录,找到最后一次正常发布的任务
2023-12-29T03:47:43.png
点击对号图标,查看运行日志。翻到最后,找到该服务的容器镜像标签。
2023-12-29T03:49:12.png

进入dcos平台,搜索对应服务,点击下图红色箭头所指位置
2023-12-29T03:50:22.png

点击右上角三个小点,并点击edit
2023-12-29T03:51:42.png

找到该服务的容器镜像标签,修改最后的容器镜像时间戳内容,并点击右上角的“Review/Run”,按提示确认。
2023-12-29T03:53:00.png

进入.obsidian/plugins目录,下载

https://vip.123pan.cn/1815238395/download/obsidian/obsidian-diagrams-net-1.0.4.tar.gz

并解压。

打开obsdian,开启插件
2023-12-29T03:41:50.png

使用的时候,与新建一个文件不同,它会插入图片到当前markdown文件,以SVG的形式,但是这个SVG还是可以编辑的。

2023-12-29T03:42:37.png

2023-12-29T03:43:00.png

2023-12-29T03:43:13.png

插件网站:
https://github.com/jensmtg/obsidian-diagrams-net/releases/tag/1.0.4

注意,上述链接下载后,需要再次下载main.js文件,否则无法再obsidian插件管理处开启。

echo '* */3 * * * /root/clearLog.sh' >> /var/spool/cron/root
cat <<EOF>/root/clearLog.sh 
#!/bin/bash

removeDirLog() {
  # 检查是否提供了第一个参数
  if [ -z "$1" ]; then
    echo "Error: First argument is missing."
    return 1 # 返回一个非零退出码表示错误
  fi

  # 检查是否提供了第二个参数
  if [ -z "$2" ]; then
    echo "Error: Second argument is missing."
    return 1
  fi

  find $1 -name "*.log" -type f -mtime +$2 -exec rm {} \;
}

clearDirLog() {
  echo "==================== start clean nginx logs =========================="
  # 检查是否提供了第一个参数
  if [ -z "$1" ]; then
    echo "Error: First argument is missing."
    return 1 # 返回一个非零退出码表示错误
  fi

  logs=$(find $1 -name *.log)
  for log in $logs; do
    echo "clean logs : $log"
    cat /dev/null >$log
  done
  echo "==================== end clean nginx containers logs   =========================="
}

#clearDirLog /usr/local/nginx/logs/
removeDirLog /var/log 3
removeDirLog /data/logs 3
EOF
chmod a+x /root/clearLog.sh

一边听着彦飞的视频,一边划拉着网页页面。反反复复看着这些网页,总是能有一些收获。

这不,之前测试华为云的函数计算,不小心把AK SK删除了。当时,也没想起来会影响什么。刚才看到了容器仓库,而仓库中有一个客户的容器镜像。心想,坏了,这个地方应该不能正常下载了。

虽然近期没有发布任务,也就没有发现问题,但是一旦有发布,势必会报错。

检查了一下codeup的部署逻辑,发现的确是从这里下载,而且是从客户的一台应用服务器上直接运行。

检查了一下,果然不能下载了。

那就重新认证一下吧。

华为云登录容器镜像仓库只需要AK SK的信息就可以了。

AK=xxx
SK=xxx
key=$(printf "$AK" | openssl dgst -binary -sha256 -hmac "$SK" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//') 
docker login -u cn-north-4@${AK} -p ${key} swr.cn-north-4.myhuaweicloud.com

2023-12-28T08:11:58.png
2023-12-28T08:12:05.png