Skip to main content

面条实验室

折腾些什么玩意。

群组 @miantiao_chat
  1. 使用 Axiom 给 Traefik 的 accesslog 搞了个大盘

    记录下过程:

    1、升级 Traefik 版本到 3.2.0 以上,才可以支持 accesslog 的 otlp 插件。
    a. Dokploy 的 Traefik 默认是 3.1.2,需要修改安装脚本升级到 3.2.0 以上。

    2、在 Axiom 创建两个 Dataset: dokploy-log 和 dokploy-trace , 并创建 API Key。

    3、修改 Traefik 配置文件 `/etc/dokploy/traefik/traefik.yml`:

    experimental:
      otlpLogs: true
    
    accesslog:
      otlp:
        http:
          endpoint: https://api.axiom.co
          headers:
            authorization: Bearer xaat-miantiao-replace-me
            x-axiom-dataset: dokploy-log
          tls:
            insecureSkipVerify: true
    
    tracing:
      otlp:
        http:
          endpoint: https://api.axiom.co
          headers:
            authorization: Bearer xaat-miantiao-replace-me
            x-axiom-dataset: dokploy-trace
          tls:
            insecureSkipVerify: true


    4、如果使用了 Cloudlfare 代理, 给 websecure 和 web 下面增加配置,可以识别真实 IP。

    forwardedHeaders:
      trustedIPs:
        # Cloudflare
        - "173.245.48.0/20"
        - "103.21.244.0/22"
        - "103.22.200.0/22"
        - "103.31.4.0/22"
        - "141.101.64.0/18"
        - "108.162.192.0/18"
        - "190.93.240.0/20"
        - "188.114.96.0/20"
        - "197.234.240.0/22"
        - "198.41.128.0/17"
        - "162.158.0.0/15"
        - "104.16.0.0/13"
        - "104.24.0.0/14"
        - "172.64.0.0/13"
        - "131.0.72.0/22"
        - "2400:cb00::/32"
        - "2606:4700::/32"
        - "2803:f800::/32"
        - "2405:b500::/32"
        - "2405:8100::/32"
        - "2a06:98c0::/29"
        - "2c0f:f248::/32"


    5、重启 Traefik 后在 Axiom 就可以看见实时日志,Trace 的大盘 Axiom 集成了,Log 的需要我们自己创建,由于无法导出现有大盘,需要使用下面的语句手动配置:

    # Request
    ['dokploy-log']
    | summarize count() by bin_auto(_time), ['attributes.RequestHost']
    | limit 20
    
    # Duration
    ['dokploy-log']
    | summarize stdev(['attributes.Duration']) by bin_auto(_time), ['attributes.RequestHost']
    | limit 20
    
    # Host
    ['dokploy-log']
    | summarize count() by bin_auto(_time), ['attributes.RequestHost']
    | limit 20
    
    # StatusCode
    ['dokploy-log']
    | summarize count() by bin_auto(_time), ['attributes.DownstreamStatus']
    | limit 20
    
    # Method IP 同上
    
    # Path
    ['dokploy-log']
    | summarize count() by bin_auto(_time), ['attributes.RequestHost'], ['attributes.RequestPath']
    | order by ['count_'] desc
    | limit 20
    
    # 404
    ['dokploy-log']
    | where ['attributes.DownstreamStatus'] == 404
    | summarize count() by bin_auto(_time), ['attributes.RequestHost'], ['attributes.RequestPath']
    | order by ['count_'] desc
    | limit 20
    
    # 50x
    ['dokploy-log']
    | where ['attributes.DownstreamStatus'] >= 500
    | summarize count() by bin_auto(_time), ['attributes.RequestHost'], ['attributes.RequestPath']
    | order by ['count_'] desc
    | limit 20
    
    # Live
    ['dokploy-log']
  2. 在发营销邮件的时候,邮件不进垃圾箱已经很不容易。

    想让用户点击邮件中的链接,那简单漂亮的 UI 必不可少。

    非设计出身想快速做出漂亮的电子邮件模板,我推荐 Maily. to

    使用可视化方式编辑邮件,而且还是开源的。

    https://index.html.zone/dev/maily-to
1px