主頁 >  其他 > Grafana系列-GaC-1-Grafana即代碼的幾種實作方式

Grafana系列-GaC-1-Grafana即代碼的幾種實作方式

2023-06-19 07:47:11 其他

系列文章

  • Grafana 系列文章
  • Terraform 系列文章

概述

GaC(Grafana as Code, Grafana 即代碼) 很明顯是擴展自 IaC(Infrastructure as Code, 基礎設施即代碼)的概念.

在Terraform 系列 - 什么是 IaC?一文中, 我們已經詳細地說明了相關的概念, 我們可以直接套用在 GaC 上:

Grafana 即代碼 (Grafana as Code, GaC) 是指通過 代碼 而不是手動流程 / 控制臺點擊來管理和配置 Grafana,

這里有 2 個關鍵詞:

  • Grafana
  • Code

Grafana 是被管理物件,在這里,不僅僅是指 Grafana OSS 這一款產品, 還包括 Grafana Labs 提供的商業產品和云服務. 包括不限于:

  • Grafana Alerting
  • Grafna Cloud Stack, 包括 Grafana Cloud 的:
    • 認證
    • 權限
    • 策略
    • Service Account
    • 組織
    • ...
  • Grafana Enterprise (企業版)
  • Grafana OnCall: 事件回應和管理平臺(IRM)
  • Grafana SLO: SLA 和 可用性管理
  • Grafana Synthetic Monitoring: 撥測, 類似 BlackBoxProbe

Code 是管理方式,即像管理代碼一樣管理 Grafana 資源,那么管理代碼最重要的部分: 版本管理是繞不開的,
...

當然, 這一系列文章, 主要還是關注于通過代碼的形式來管理 Grafana 這個產品.

這篇文章主要跟著Grafana as code: A complete guide to tools, tips, and tricks 這篇官方文章的邏輯來進行, 變穿插筆者的評價和最終選擇.

GaC 的幾種官方方案

官方推薦這么幾種方案, 另外我也會加幾個我認為可行的方案:

  • 基于 Terraform 的 Grafana Terraform provider
  • 基于 Ansible 的 Grafana Ansible collection
  • Grizzly: Grafana 官方開源的一個部署和配置Grafana 一體化 cli 工具.
  • Tanka: Grafana 官方開源的一個基于 jsonnet 的 Kubernetes 集群管理工具
  • 基于 Crossplane 的Grafana Crossplane provider
  • 基于 Kubernetes CRD 的 Kubernetes Grafana Operator
  • 基于 API 的定制化開發:
    • grafana-api-golang-client
    • Grafana API
  • 基于 Jsonnet 的 Dashboard as Code
    • grafana/jsonnet-libs: Grafana Labs' Jsonnet libraries (github.com)
    • grafana/grafonnet: Jsonnet library for generating Grafana dashboards. (github.com)
    • grafana/grafonnet-lib: Jsonnet library for generating Grafana dashboard files. (github.com) (??已棄用, 但是仍有很多 Dashboard 資源依賴它)
    • Prometheus Monitoring Mixins | Monitoring Mixins
    • kubernetes-monitoring/kubernetes-mixin: A set of Grafana dashboards and Prometheus alerts for Kubernetes. (github.com)

是不是有點琳瑯滿目, 是不是有點挑花眼了? ??????

我剛開始也是這樣, 不用擔心, 我們一一過一下. 很快 GaC 的脈絡就會清晰起來.

??Notes:

這里面 Crossplane 大家可能沒怎么聽過, 剛好我 2021 年有一篇介紹其的文章, 感興趣的可以作為擴展閱讀.

  • Crossplane - 比 Terraform 更先進的云基礎架構管理平臺?

Jsonnet

根據 Grafana 的一些官方演講視頻和代碼庫以及博客文章, Grafana 是重度依賴 Jsonnet 這一配置語言的. 后面我們會詳細介紹其歷史及使用方法.

無論我們使用哪一種 GaC 方案, 基于 Jsonnet 的 Dashboard as Code 都是必選的.

  • 在 Terraform 中, 可以通過Jsonnet Provider 和 Grafana 配合使用
  • 在 Ansible 中, 可以在 task 之前加入對 jsonnet 相關依賴的安裝, 以及 jsonnet 生成 Dashboard 的前置 tasks
  • 在 Grizzly 和 Tanka 中, jsonnet 就是一級公民. 如 Grizzly 可以直接使用 Jsonnet
  • ...

小結, Jsonnet 是目前幾乎唯一的深度 Dashboard as Code 方案, 必選.

??Notes:
如果是淺顯地應用 GaC, 那么 Dashboard 直接通過 Dashboard json 檔案作為代碼管理也可以.
但是進入使用深水區, 在 Dashboard 多起來, 且有大量重復的配置的情況下, Jsoonet 是唯一選擇.

Grafana Terraform provider

Grafana 管理員可以使用Grafana的Terraform Provider 管理 dashboards 和 alerts,添加 synthetic monitoring probes 和檢查,管理身份和訪問,等等,

用于創建儀表盤的Terraform配置示例如下:

resource "grafana_dashboard" "metrics" {
  config_json = jsonencode({
    title   = "as-code dashboard"
    uid     = "ascode"
  })
}

適用用戶

Grafana Terraform Provider 更適合那些已經在非Grafana使用案例中使用Terraform的用戶,

對于目前希望在Grafana Cloud 或Grafana的OSS部署上管理整個Grafana生態系統資源的用戶,最好使用Grafana Terraform Provider,因為與Grafana的其他作為代碼的解決方案相比,它還支持最多的Grafana資源

筆者的最終選擇, 就是:

  • Grafana Terraform Provider + Jsonnet

其中很大的一個原因就是上面提到的: 支持最多的Grafana資源.

筆者計劃在 Aws Managed Grafana 中使用 Grafana, Aws Managed Grafana 相比 Grafana OSS, 功能還是有一點點的細微差別:

  • AWS Managed Grafana 有 DataSource 的 Permission 管理功能, 而 Grafana OSS 并沒有這項功能.

但是 Grafana Terraform Provider 是提供這一功能的, 該功能位于 Grafana Enterprise 下面. 但確實可用.

目前我需要用到的 Grafana 功能有:

  • Grafana 用戶
  • Grafana Team
  • Grafana 組織
  • Grafana DataSource
  • Grafana DataSource Permission
  • Grafana Folder
  • Grafana Folder Permission
  • Grafana Dashboard
  • Grafana Dashboard Permission
  • Grafana Alerting

只有 Grafana Terraform Provider 提供了完整的功能.

已知的限制

管理儀表盤并不是一個最簡單的程序--用戶必須處理長長的JSON,這也會變得難以審查和更新,Grafonnet可以幫助生成可用于Terraform的儀表盤JSON,但Grafonnet需要了解Jsonnet,所以這對一些用戶來說是不可取的,

不管哪種方案, Jsonnet 其實是對所有進入 GaC 深水區的用戶都必須掌握的, 逃不掉的.

Grafana Ansible collection

配置管理的資源可以通過Ansible Collection for Grafana提供,它可以用來管理各種資源,包括 folders、cloudstack和dashboards,用戶可以通過撰寫使用HTTP API管理Grafana資源的Ansible playbooks,以編程方式管理Grafana上目前還不屬于Grafana Ansible集合的資源,

創建儀表盤的Ansible配置示例如下:

- name: dashboard as code
  grafana.grafana.dashboard:
    dashboard: {
      "title": "as-code dashboard",
      "uid": "ascode"
    }
    stack_slug: "{{ stack_slug }}"
    grafana_api_key: "{{ grafana_api_key }}"
    state: present

適用用戶

和Terraform一樣,Grafana Ansible Collection 更適合已經將Ansible用于非Grafana用例的人,此外,該 Collection 目前只適用于Grafana Cloud,所以它對那些希望使用Ansible宣告式管理資源的Grafana Cloud客戶最有意義,

已知的限制

截至目前,Grafana Ansible Collection 只適用于Grafana Cloud,并且只支持8種資源

  • API密鑰
  • Cloud Stack
  • plugins
  • dashboards
  • folders
  • data sources
  • alert contact points
  • alert notification policies

對于希望用Ansible以代碼形式管理整個Grafana生態系統的用戶來說,這可能是一個缺點,與Terraform一樣,儀表盤的構建也不是最簡單的程序,

小結, Grafana Ansible Collection 最大的缺點在于: 只適用于Grafana Cloud,并且只支持8種資源.

Grizzly

Grizzly 是一個命令列工具,允許你用代碼管理你的可觀察性資源,Grizzly支持Kubernetes啟發的YAML表示的Grafana資源,這使得它更容易熟悉,Grizzly支持在Grafana實體內移動儀表盤,也可以檢索已經配置的Grafana資源的資訊,Grizzly目前支持:

  • Grafana dashboards/dashboard folders
  • Grafana data sources
  • Grafana Cloud 中的 Prometheus recording rules/alerts
  • Grafana Cloud Synthetic Monitoring checks

Grizzly也可以使用 Grafonnet 部署在Jsonnet中構建的儀表盤,(在Grafonnet檔案中了解更多資訊),

用于創建儀表盤的Kubernetes風格的Grizzly配置樣本看起來是這樣的:

apiVersion: grizzly.grafana.com/v1alpha1
kind: Dashboard
metadata:
    name: as-code-dashboard
spec:
    title: as-code dashboard
    uid: ascode

適用用戶

Grizzly最適合使用Jsonnet來管理Grafana資源的用戶,或者喜歡用Kubernetes風格的YAML定義他們的Grafana資源,

已知的限制

Grizzly目前不支持Grafana OnCall和Grafana Alerting資源,

也不支持 DataSource/Folder/Dashboard Permission 等資源.

小結, Grizzly最適合使用Jsonnet來管理Grafana資源的用戶. 但是支持的 Grafana 資源也不夠全.

Grafana Crossplane provider

Grafana Crossplane Provider 使用Terrajet構建,為Grafana Terraform Provider 支持的所有資源提供支持,它使用戶能夠將Grafana資源定義為Kubernetes清單,也會幫助那些使用ArgoCD等工具圍繞Kubernetes清單建立GitOps管道的用戶,

要開始使用Grafana Crossplane Provider,請在Kubernetes集群中安裝Crossplane,并使用此命令安裝 provider:

kubectl crossplane install provider grafana/crossplane-provider-grafana:v0.1.0

在安裝 provider 的程序中,Terraform provider 支持的所有資源的CRD被添加到集群中,因此用戶可以開始將他們的Grafana資源定義為Kubernetes自定義資源,Crossplane provider 確保在 CRD 中所定義的內容在Grafana用戶界面中是可見的,如果在用戶界面中直接進行了任何更改,那么當提供者重新同步時,這些更改將被丟棄,這有助于確保集群中的任何宣告性定義都將是Grafana資源的真實來源,

要開始使用,請參考Grafana Crossplane資源庫中的示例檔案夾,

用于創建 Dashboard 的Kubernetes CRD 樣本看起來像這樣:

apiVersion: grafana.jet.crossplane.io/v1alpha1
kind: Dashboard
metadata:
  name: as-code-dashboard
spec:
  forProvider:
    configJson: |
      {
        "title": "as-code dashboard",
        "uid": "ascode"
      }
  providerConfigRef:
    name: grafana-crossplane-provider

適用用戶

Grafana Crossplane provider 適合現有的Crossplane用戶,他們希望從Kubernetes內管理Grafana資源,并作為Kubernetes清單用于GitOps管道,

已知限制

Crossplane provider 依賴于在Kubernetes集群中安裝了Crossplane CLI和Crossplane,這種依賴性對于非Crossplane用戶來說是沒有吸引力的,它也處于alpha階段,所以還沒有達到穩定的狀態,

小結, 適合已經用了 CrossPlane 的用戶, 但對于非Crossplane用戶來說就沒啥吸引力了. 另外, 它還不穩定.

Kubernetes Grafana Operator

Grafana Operator 是一個 Kubernetes Operator,用于配置和管理Grafana及其使用Kubernetes CR 的資源,它是一個由Grafana社區建立的Kubernetes原生解決方案,它還可以把在Grafonnet中構建的儀表盤作為儀表盤配置的來源,

請參考grafana-operator倉庫中的檔案部分來開始使用,

一個使用Grafana操作器創建儀表盤的Kubernetes配置樣本看起來是這樣的:

apiVersion: integreatly.org/v1alpha1
kind: GrafanaDashboard
metadata:
  name: simple-dashboard
  labels:
    app: grafana
spec:
  json: >
    {
      "title": "as-code dashboard",
      “uid” : “ascode”
    }

適用用戶

對于希望從Kubernetes內管理Grafana資源的用戶來說,Grafana-operator非常好用,并作為Kubernetes清單用于GitOps管道,

已知的限制

這只適用于Grafana OSS,所以Grafana Cloud用戶將無法使用它,另外,Grafana-operator沒有Helm Chart,這對于擁有圍繞Helm構建的管道的組織來說可能是個問題,

小結, 筆者個人認為, Kubernetes Grafana Operator 是非常適合這類用戶的:

  • 自托管 Grafana OSS
  • Grafana OSS 部署在 Kubernetes 集群內

并且其還有這些優勢:

  • 支持 Grafana OSS 各種細節配置
  • Grafana Dashboard 可以來自 Grafana com 的 id(其他工具好像都沒有)
  • 支持安裝 Grafana Plugin(其他工具好像都沒有)
  • 完美契合 GitOps

相應地, 也有一些劣勢:

  • 社區開發的, 缺少 Grafana 官方支持
  • 不支持 Grafana Cloud/AWS Managed Grafana 等云服務.

Tanka

為你的Kubernetes集群提供干凈、簡潔和超級靈活的YAML替代品

  • ?? 簡潔:Jsonnet語言比YAML更明顯地表達了你的應用程式,
  • ?? 復用:構建庫,隨時匯入它們,甚至在GitHub上分享它們
  • ?? 簡潔:使用Kubernetes庫和抽象,你將永遠不會再看到模板!
  • ?? 信心:停止猜測,使用tk diff來看看到底會發生什么
  • ?? Helm:可重現的Helm Chart 中的 vendor、修改和匯出,
  • ?? 生產就緒:Tanka部署了Grafana Cloud和更多的生產設定

一個使用 tanka 創建 Prometheus + Grafana K8s 資源的配置樣本看起來是這樣的:

local k = import "github.com/grafana/jsonnet-libs/ksonnet-util/kausal.libsonnet";

{
  _config:: {
    grafana: {
      port: 3000,
      name: "grafana",
    },
    prometheus: {
      port: 9090,
      name: "prometheus"
    }
  },

  local deployment = k.apps.v1.deployment,
  local container = k.core.v1.container,
  local port = k.core.v1.containerPort,
  local service = k.core.v1.service,

  prometheus: {
    deployment: deployment.new(
      name=$._config.prometheus.name, replicas=1,
      containers=[
        container.new($._config.prometheus.name, "prom/prometheus")
        + container.withPorts([port.new("api", $._config.prometheus.port)]),
      ],
    ),
    service: k.util.serviceFor(self.deployment),
  },
  grafana: {
    deployment: deployment.new(
      name=$._config.grafana.name, replicas=1,
      containers=[
        container.new($._config.grafana.name, "grafana/grafana")
        + container.withPorts([port.new("ui", $._config.grafana.port)]),
      ],
    ),
    service:
      k.util.serviceFor(self.deployment)
      + service.mixin.spec.withType("NodePort"),
  },
}

適用用戶

嚴格來說, Tanka 不應該出現在這里. Tanka 本質上是一個 Kubernetes 基礎設施管理工具. 對標的競品是:

  • Kustomize
  • Helm
  • Kubernetes Operator

甚至是:

  • Terraform
  • Ansible

如果你是 Jsonnet 配置語言的狂熱粉絲, 并且想要通過 Jsonnet 管理 Kubernetes 基礎設施和可觀察性的 Grafana Dashboard、Prometheus rule 和 Alert rule,那么 tanka 是適合你的,

已知的限制

拋棄 Kubernetes YAML,完全采用 jsonnet 管理資源,你需要另外掌握以下知識:

  • Jsonnet
  • Tanka 使用
  • Kubernetes 資源的相關 Jsonnet Library
  • Grafana 相關的 Jsonnet Library

小結,不建議使用 tanka, 除非你是 Jsonnet 配置語言的狂熱粉絲和專家,

基于 API 的定制化開發

Grafana 的 API,我也仔細找了一圈,官方有這么幾種 API:

  • Grafana API: 最底層的 API 介面,
  • grafana-api-golang-client: 基于 Grafana API 的低級別的 golang 客戶端. 也是 Grafana Terraform provider 的底層實作

如果使用 Grafana API, 創建 Dashboard 的示例如下:

POST /api/dashboards/db HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "dashboard": {
    "id": null,
    "uid": null,
    "title": "Production Overview",
    "tags": [ "templated" ],
    "timezone": "browser",
    "schemaVersion": 16,
    "version": 0,
    "refresh": "25s"
  },
  "folderId": 0,
  "folderUid": "l3KqBxCMz",
  "message": "Made changes to xyz",
  "overwrite": false
}

如果使用 grafana-api-golang-client, 創建 Dashboard 的示例可以參考這個測驗用例:

https://github.com/grafana/grafana-api-golang-client/blob/master/dashboard_test.go

適用用戶

首先, 基于 API 的定制化開發都適用于開發能力強、有更多自定義需求、上述 GaC 方案都不滿足需求、需要和公司企業內部的自動化工具整合的情況.

其次, Grafana 提供了基于 golang 的 grafana-api-golang-client, 如果您的技術堆疊是 golang, 建議直接使用 grafana-api-golang-client.

如果您的技術堆疊不是 golang, 則建議基于 Grafana API 開發.

已知限制

唯一的限制就是您/貴團隊/貴司的技術能力和資源投入.

總結

這里有一個方便的對比表格,對比了上面提到的所有屬性和工具,

屬性/工具 Grafana Terraform Provider Grafana Ansible Collection Grizzly Tanka Grafana CrossPlane Provider Grafana Operator Grafana API
支持的Grafana資源 所有資源 Grafana Cloud Stack, plugins, API keys, dashboards, data sources, folders Synthetic Monitoring checks, dashboards, data sources, folders, Prometheus rules Unknown 所有主要資源 Folders, data sources, dashboards, notification channels, Grafana plugin, Grafana oss deploy 所有資源
格式化工具 HCL/JSON/Jsonnet YAML Jsonnet/YAML/JSON Jsonnet YAML/JSON YAML 取決于你
Kubernetes風格清單 ?? ?? ?? 取決于你
在K8s中管理定義資源 ?? ?? ?? 取決于你
簡單的Dashboard構建流程 ?? 取決于你
獲取Grafana資源資訊 ?? ?? Unknown 取決于你
內置資源同步流程 ?? Unknown ?? ?? 取決于你
適用用戶 已在用Terraform的用戶 已在用Ansible的用戶 期望Kubernetes風格清單管理Grafana, 內置作業流和同步流程的用戶 部署在K8s上且是Jsonnet粉絲/專家的用戶 已在用CrossPlane, 或期望用K8s資源管理Grafana的用戶 全部使用Grafana OSS, 并且部署在K8s中, 期望使用K8s資源管理的用戶. 現有方案都不滿足, 定制需求較多, 需要和內部工具集成的用戶

這里定義的大多數工具可以相互結合使用,使用戶實作 1 + 1 > 2 的效果.

我的最終選擇是:

  • Grafana Terraform provider
  • Jsonnet

我的 Grafana 主要是以下幾類:

  • AWS Managed Grafana
  • Grafana OSS
  • Grafana Cloud Free

我需要用到的 Grafana 功能有:

  • Grafana 用戶
  • Grafana Team
  • Grafana 組織
  • Grafana DataSource
  • Grafana DataSource Permission
  • Grafana Folder
  • Grafana Folder Permission
  • Grafana Dashboard
  • Grafana Dashboard Permission
  • Grafana Alerting

欲了解更多資訊或開始使用 Grafana ,請查看每個工具的代碼庫或和我交流, 敬請期待我的后續文章,??????

???參考檔案

  • Grafana as code: A complete guide to tools, tips, and tricks

三人行, 必有我師; 知識共享, 天下為公. 本文由東風微鳴技術博客 EWhisper.cn 撰寫.

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555514.html

標籤:其他

上一篇:A First course in FEM —— matlab代碼實作求解傳熱問題(穩態)

下一篇:返回列表

標籤雲
其他(161249) Python(38240) JavaScript(25505) Java(18246) C(15237) 區塊鏈(8271) C#(7972) AI(7469) 爪哇(7425) MySQL(7256) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4603) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2436) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) HtmlCss(1968) 功能(1967) Web開發(1951) C++(1941) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • Grafana系列-GaC-1-Grafana即代碼的幾種實作方式

    ## 系列文章 * [Grafana 系列文章](https://ewhisper.cn/tags/Grafana/) * [Terraform 系列文章](https://ewhisper.cn/tags/Terraform/) ## 概述 GaC(Grafana as Code, Grafana ......

    uj5u.com 2023-06-19 07:47:11 more
  • A First course in FEM —— matlab代碼實作求解傳熱問題(穩態)

    這篇文章會將FEM全流程走一遍,包括網格、矩陣組裝、求解、后處理。內容是大三時的大作業,今天拿出來回顧下。 1. 問題簡介 渦輪機葉片需要冷卻以提高渦輪的性能和渦輪葉片的壽命。我們現在考慮一個如上圖所示的葉片,葉片處在一個高溫環境中,中間通有四個冷卻孔。 假設為穩態,那么葉片內導熱微分方程為: 內部 ......

    uj5u.com 2023-06-19 07:46:51 more
  • After Effects 2023發布,有哪些值得關注的新功能?

    After Effects 2023 (版本 23.4) 發布 有哪些值得關注的新功能?AE2023改進了用戶請求的作業流程并進行了重要修復,用戶可在 After Effects 中更高效地作業,在不影響創意構想的情況下設計更加優質的細節。 AE2023 for Mac AE2023 新增功能如下: ......

    uj5u.com 2023-06-19 07:46:14 more
  • 【技識訓累】演算法中的排序演算法【一】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-19 07:45:17 more
  • LINUX LAMP架構

    目錄 一、LAMP 二、Apache 三、MySQL 四、PHP 一、LAMP 1.概念 LAMP架構是目前成熟的企業網站應用模式之一,指的是協同作業的一整臺系統和相關軟體,能夠提供動態web站點服務及其應用開發環境 2.組成 在構建LAMP平臺時,各組件的安裝順序依次為Linux,Apache,M ......

    uj5u.com 2023-06-19 07:43:32 more
  • A First course in FEM —— matlab代碼實作求解傳熱問題(穩態)

    這篇文章會將FEM全流程走一遍,包括網格、矩陣組裝、求解、后處理。內容是大三時的大作業,今天拿出來回顧下。 1. 問題簡介 渦輪機葉片需要冷卻以提高渦輪的性能和渦輪葉片的壽命。我們現在考慮一個如上圖所示的葉片,葉片處在一個高溫環境中,中間通有四個冷卻孔。 假設為穩態,那么葉片內導熱微分方程為: 內部 ......

    uj5u.com 2023-06-19 07:42:02 more
  • 【技識訓累】演算法中的排序演算法【一】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-19 07:41:33 more
  • After Effects 2023發布,有哪些值得關注的新功能?

    After Effects 2023 (版本 23.4) 發布 有哪些值得關注的新功能?AE2023改進了用戶請求的作業流程并進行了重要修復,用戶可在 After Effects 中更高效地作業,在不影響創意構想的情況下設計更加優質的細節。 AE2023 for Mac AE2023 新增功能如下: ......

    uj5u.com 2023-06-19 07:40:34 more
  • 【介面測驗】Postman(三)-變數與集合

    ? 在Postman中,我們進行介面測驗一般是以集合為單位,而在日常應用中,我們會經常使用到變數。下面我們將介紹一下變數和集合的一些用法。 ......

    uj5u.com 2023-06-18 07:56:18 more
  • docker構建FreeSWITCH編譯環境及打包

    作業系統 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Docker版本:23.0.6 FreeSWITCH這種比較復雜的系統,使用容器部署是比較方便的,今天記錄下CentOS 7環境下使用docker構建FreeSWITCH編譯環境及打包發布的程序。 一、資源準備 1、 ......

    uj5u.com 2023-06-18 07:55:28 more