夜鶯(Nightingale)不同版本如何升級,應該注意什麼,應該替換哪些檔案

V6、V7、以及 V8 各個小版本之間的升級,方法相同。

升級步驟

  1. 備份資料:在升級之前,備份 MySQL 資料庫的內容、備份二進位、備份 etcintegrations 目錄,以防萬一,有了後路之後就可以放心大膽操作了
  2. 如果是二進位部署,替換二進位、替換 integrations 目錄(可以直接把老的 integrations 目錄挪走 mv integrations integrations.bak,直接使用新的 integrations 目錄),設定檔可以 diff 一下新老設定,手工補齊一下差異點(實際上應該幾乎不用修改設定檔,因為已經很久沒有調整過了)
  3. 如果是容器部署的,拉取一下最新的映像,設定檔 diff 一下,補齊差異點,再重啟一下容器即可
  4. 重新存取夜鶯的時候,強制重新整理一下瀏覽器,以防止瀏覽器快取了舊的 js、css 檔案

關於 DB 表結構

如果夜鶯所用的 DB 帳號是有建表、改表權限的話,您不需要手動去修改 DB 表結構,夜鶯會在啟動時自動檢查表結構是否需要升級,如果需要升級,則會自動改表。如果夜鶯所用的 DB 帳號沒有建表、改表權限,則需要手工調整,近期的改動可以參考 migrate.sql。如果自動改表失敗,請提 issue,我們會盡快跟進。

理論上資料庫同時支援 MySQL 和 Postgres,不過社群缺少 Postgres 的長期貢獻者,所以建議優先使用 MySQL。

FAQ

Docker 映像如何使用老版本

可以到 Docker Hub 上選擇需要的 Tag 自行 pull,然後在 docker-compose.yml 裡指定對應的 Tag 即可。

常見問題

Q1:升級會丟資料嗎?

A:n9e 升級不會自動清資料。但建議升級前備份:

  • 資料庫 mysqldump 備份;
  • 設定檔 n9e.toml 備份;
  • 升級新版本第一次啟動會自動跑 schema migration — 看日誌確認成功。

Q2:能否跨大版本升級(如 v6 → v9)?

A:建議逐版本升級(v6 → v7 → v8 → v9),不要直接跳兩個大版本。每個大版本可能有 schema breaking changes,跳級升級 migration 不一定乾淨。

Q3:升級後告警規則失效了?

A:

  • 檢查告警引擎是否健康;
  • 老版本的 PromQL 在新版本是否相容(極少數舊函式被廢棄);
  • 資料來源 URL / 認證是否仍有效。

參考資料

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云