Couchbase 介紹
Couchbase 是一個開源的分布式 NoSQL 數據庫,專為高性能和高可擴展性設計,適用于實時數據處理的企業應用。它結合鍵值存儲和文檔數據庫的優勢,支持 JSON 文檔存儲,并通過 N1QL(類 SQL 查詢語言)提供強大查詢能力。Couchbase 采用分布式架構,利用 vBucket 實現數據分片和負載均衡,支持跨數據中心復制(XDCR),確保高可用性和數據一致性。其內存優先架構保證低延遲讀寫,適合高并發場景,如電商、廣告技術和物聯網。Couchbase 還提供全文搜索、分析和事件處理功能,支持多云和混合云部署,兼容 AWS、Azure 等平臺,并通過 SDK 支持多種語言(如 Java、Python)。其易用性和可擴展性使其成為構建現代化、數據密集型應用的理想選擇。
觀測云
觀測云是一款專為 IT 工程師打造的全鏈路可觀測產品,它集成了基礎設施監控、應用程序性能監控和日志管理,為整個技術棧提供實時可觀察性。這款產品能夠幫助工程師全面了解端到端的用戶體驗追蹤,了解應用內函數的每一次調用,以及全面監控云時代的基礎設施。此外,觀測云還具備快速發現系統安全風險的能力,為數字化時代提供安全保障。
部署 DataKit
登錄觀測云控制臺,點擊「集成」 -「DataKit」 - 「Linux」,復制命令并執行。
配置采集器
進入 DataKit 安裝目錄下的?conf.d/couchbase
?目錄,復制?couchbase.conf.sample
?并命名為?couchbase.conf
。
[[inputs.couchbase]]## Collect interval, default is 30 seconds. (optional)# interval = "30s"## Timeout: (defaults to "5s"). (optional)# timeout = "5s"## Scheme, "http" or "https".scheme = "http"## Host url or ip.host = "127.0.0.1"## Host port. If "https" will be 18091.port = 8091## Additional host port for index metric. If "https" will be 19102.additional_port = 9102## Host user name.user = "Administrator"## Host password.password = "xxxxxx"## TLS configuration.tls_open = false# tls_ca = ""# tls_cert = "/var/cb/clientcertfiles/travel-sample.pem"# tls_key = "/var/cb/clientcertfiles/travel-sample.key"## Disable setting host tag for this inputdisable_host_tag = false## Disable setting instance tag for this inputdisable_instance_tag = false## Set to 'true' to enable election.election = true# [inputs.couchbase.tags]# some_tag = "some_value"# more_tag = "some_other_value"
配置后重啟 DataKit。
datakit service -R
Couchbase 指標集
日志采集
Couchbase 的日志默認輸出到?/opt/couchbase/var/lib/couchbase/logs
,我們可以通過主機采集日志的方式開啟日志采集器來采集日志。
在?logging.conf
?中配置日志路徑。
關鍵指標
Metric | 中文描述 | Type | Unit |
---|---|---|---|
cmd_get | 該存儲桶每秒讀取(get操作)的次數。 | float | req/s |
cmd_set | 該存儲桶每秒寫入(set操作)的次數。 | float | req/s |
ops | 該存儲桶每秒的總操作量。 | float | req/s |
ep_cache_miss_rate | 該存儲桶每秒從磁盤讀取而非RAM的百分比(緩存未命中率)。 | float | percent |
get_hits | 獲取操作命中的次數。 | float | count |
systemstats_cpu_utilization_rate | 該服務器上所有可用核心的CPU使用率百分比。 | float | percent |
systemstats_mem_free | 該服務器上未使用的內存字節數。 | float | B |
systemstats_mem_total | 該服務器上總共可用的內存字節數。 | float | B |
mem_used | 已使用的內存量。 | float | B |
ep_max_size | 該存儲桶可使用的最大內存量。 | float | B |
disk_write_queue | 該存儲桶中等待寫入磁盤的項目數量。 | float | count |
curr_items | 該存儲桶中活躍vBucket的項目數量。 | float | count |
curr_items_tot | 該存儲桶中的項目總數。 | float | count |
ep_bg_fetched | 該存儲桶每秒從磁盤讀取的次數。 | float | req/s |
ep_resident_items_rate | 該存儲桶中緩存于RAM的所有項目的百分比(駐留率)。 | float | percent |
healthy | 該節點是否健康(布爾值,1表示健康,0表示不健康)。 | float | bool |
rebalance_success | 重新平衡成功事件計數。 | float | count |
failover | 故障轉移(Failover)事件計數。 | float | count |
ep_dcp_xdcr_items_remaining | 該存儲桶中XDCR DCP待發送的項目數量。 | float | count |
xdc_ops | 該存儲桶每秒的XDCR操作總數。 | float | req/s |
場景視圖
登錄觀測云控制臺,點擊「場景」 -「新建儀表板」,輸入 “Couchbase”, 選擇 “Couchbase監控視圖”,點擊 “確定” 即可添加視圖。
日志分析
點擊「日志」菜單,可以看到相關日志信息。
監控器
節點 CPU 使用率過高
如果 Couchbase 節點的 CPU 使用率過高,可能會導致查詢處理速度變慢,甚至引發服務降級,影響應用程序的響應時間。告警可以在 CPU 使用率接近瓶頸時提醒運維團隊,采取措施如優化查詢、減少負載或擴展集群節點,以避免性能下降和潛在的服務中斷。
緩存未命中率過高告警
如果 Couchbase 桶的緩存未命中率過高,表明內存緩存效率低下,系統需要頻繁從磁盤讀取數據,這會導致查詢延遲增加,嚴重影響性能。告警可以在未命中率達到臨界值時提醒團隊,采取措施如增加桶的內存配額、優化數據訪問模式或擴展內存資源,以提升緩存命中率并保障服務性能。
節點不健康告警
如果 Couchbase 節點處于不健康狀態,可能會導致數據不可用或服務中斷,直接影響應用程序的正常運行。告警可以在節點出現問題時立即通知運維團隊,采取措施如檢查網絡、磁盤或進程狀態,必要時執行故障轉移或替換節點,以恢復集群的穩定性并確保服務連續性。
磁盤寫入隊列過長告警
如果 Couchbase 節點的磁盤寫入隊列過長,表明磁盤 I/O 壓力過大,可能導致數據寫入延遲,進而影響查詢性能和數據一致性。告警可以在隊列長度達到臨界值時提醒團隊,采取措施如升級磁盤硬件、優化寫入操作或重新分配數據,以減輕 I/O 壓力并確保系統性能穩定。
總結
Couchbase 接入觀測云的最佳實踐能夠實現對 Couchbase 集群的全面監控與管理。通過集成,觀測云可以可視化 Couchbase 的性能指標(如操作速率、緩存命中率、內存使用量),并集中展示日志數據,幫助用戶快速了解系統狀態。用戶還能基于這些數據創建自定義視圖和監控器,實時掌握關鍵指標的異常變化。此外,結合日志分析,客戶可以高效排查問題,提升系統運維效率。這種方式適用于不同場景,助力用戶優化 Couchbase 性能并確保服務穩定性。