夜鶯Nightingale:打造高可用監控平臺
一、夜鶯監控簡介
夜鶯監控(Nightingale)是一款集數據采集、可視化、監控告警和數據分析于一體的開源云原生觀測分析工具。它采用All-in-One設計理念,與云原生生態緊密集成,為企業提供即插即用的監控分析和告警能力。
二、夜鶯Nightingale高可用架構
實現夜鶯的高可用性,只需將服務部署在不同的機器上,并確保配置文件一致,同時連接到同一個MySQL和Redis實例。通過在夜鶯前端配置虛擬IP(VIP)并部署集群或主從模式的中間件,即可實現高可用架構。
三、部署步驟詳解
Redis集群部署
- 啟動Redis容器:使用Docker在兩臺服務器上分別啟動3個Redis容器。
- 配置Redis:在redis.conf中設置集群相關參數,如開啟集群模式、配置文件、節點超時等。
Plain Text
protected-mode no
port 7001 #三個不同的端口即可
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip IP #服務器本機ip
cluster-announce-port 7001 #同port參數
cluster-announce-bus-port 17001 #三個不同的端口即可
appendonly yes
- 創建集群:所有容器啟動后,通過redis-cli命令創建集群。
Bash
redis-cli --cluster create n9e-01IP:7001 n9e-01IP:7002 1n9e-01IP:7003 n9e-02IP:7001 n9e-02IP:7002 n9e-02IP:7003 --cluster-replicas 1
MySQL主從部署
- 部署MySQL服務:在兩臺服務器上使用二進制方式部署MySQL,確保server_id不同,并開啟gtid_mode。
- 創建同步賬戶:在主庫上創建從庫同步賬戶并授權。
SQL
CREATE USER 'slave'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'slave'@'%';
- 開啟同步:在從庫上配置主庫信息,開啟數據同步。
SQL
CHANGE MASTER TO MASTER_HOST='n9e-01IP', MASTER_USER='slave', MASTER_PASSWORD='password', MASTER_PORT=3306,
MASTER_AUTO_POSITION=1, MASTER_CONNECT_RETRY=10;
Prometheus部署
- 部署Prometheus:在服務器上部署Prometheus,作為數據源。
- 配置參數:開啟熱重載和遠程寫入監控數據接收。
YAML
--web.enable-lifecycle
--web.enable-remote-write-receiver
夜鶯服務部署
- 部署夜鶯:在兩臺服務器上部署夜鶯服務。
- 配置日志:在config.toml中配置日志目錄、級別和輸出方式。
TOML
[Log]
Dir = "logs"
Level = "INFO"
Output = "file"
- 配置Redis和MySQL:在config.toml中配置Redis集群地址和MySQL主庫地址,并導入夜鶯數據庫表結構。
TOML
[Redis]
Address = "n9e-01IP:7001,n9e-01IP:7002,n9e-01IP:7003,n9e-02IP:7001,n9e-02IP:7002,n9e-02IP:7003"
[DB]
DSN = "root:password@tcp(n9e-01IP:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local&allowNativePasswords=true"
Bash
mysql -u root -p password < n9e.sql
Keepalived配置
- 安裝Keepalived:在兩臺服務器上安裝Keepalived。
- 配置搶占:配置為BACKUP模式,使用不同優先級進行搶占。
- 配置檢測腳本:配置檢測腳本檢測夜鶯進程。
夜鶯平臺配置
- 訪問夜鶯:通過配置的VIP訪問夜鶯服務,夜鶯服務的端口默認為17000,使用http://vip:17000/進行訪問,賬戶密碼默認為root/root.2020。
- 添加數據源:在集成中心添加Prometheus-like數據源,URL填入http://n9e-01IP:9090。
集成grafana儀表盤
- 集成Grafana:如果有正在使用的Grafana,可以在夜鶯中集成。
- 配置Grafana:修改defaults.ini配置,允許嵌入式集成和匿名訪問,需要修改defaults.ini配置,將allow_embedding取消注釋并設為true,將[server]下的domain
設為grafana的服務器ip,將[auth.anonymous]下的配置取消注釋并將enabled設為true,然后即可將grafana中的儀表盤通過短鏈集成到夜鶯。
在本文中,我們詳細介紹了如何部署和配置夜鶯Nightingale監控平臺,以實現高可用性監控架構。通過精心設計的Redis集群、MySQL主從復制、Prometheus數據源集成,以及Keepalived的高可用配置,我們確保了監控服務的穩定性和可靠性。此外,通過集成Grafana儀表盤,我們進一步增強了監控數據的可視化和分析能力。
隨著監控平臺的成功部署和運行,我們不僅提升了對IT基礎設施的實時監控能力,還為未來的業務擴展和性能優化奠定了堅實的基礎。我們期待夜鶯Nightingale監控平臺在持續的運營中發揮關鍵作用,幫助我們更好地理解和優化系統性能,確保業務連續性和數據安全。