國產監控夜鶯 v4 來了,大幅降低部署維護難度

大家好,經過2個月的開發,夜鶯v4來了,歡迎大家試用。本文爲大家介紹一下開發v4的背景、最新模塊組成、升級建議,同時演示一下單機快速部署的方式。如果朋友是第一次嘗試夜鶯,可以按照後面講解的部署方式來搞,5分鐘搞定。

演進背景

v3版本融入了很多運維平臺的功能,組件變多,部署麻煩,不同的組件相互之間有調用關係,在做分佈式部署的時候需要了解整體架構才能正確修改配置文件,對用戶提出了較高的要求。很多issue和羣裏的討論,都反映出了這個複雜性問題。

我們希望降低這個複雜度,所以,把衆多服務端模塊做了合併。這樣原來組件之間的調用都變成了進程內部的方法調用,可靠性性能都會提升。

新的架構

模塊合併之後,把時序存儲抽離,總共只剩3個組件:server、prober、agentd。

服務端就是部署server模塊,如果要集羣部署,就搞2個機器,每個機器分別部署server模塊即可。每個server會使用本機的redis,所以,有幾個server就部署幾個redis,redis只需監聽在127.0.0.1,供本機的server使用即可。

prober是個中心式探針,比如貴司有2個網絡區域,每個網絡區域可以部署一個prober,用此prober採集監控本區域的數據庫中間件。如果擔心prober掛掉,每個區域可以部署多個prober做高可用。不同網絡區域的prober,有個配置要注意,即:report.region字段,比如有bj和gz兩個網絡區域,每個網絡區域分別部署了2臺prober,bj的2臺prober,report.region要設置爲bj,gz的2臺prober,report.region要設置爲gz。最後,在server.yml裏修改monapi.region字段,配上bj和gz。

如果網絡是可以互聯互通的,那就簡單了,prober和server混部即可,都放到中心。

agentd是部署到所有目標機器的,採集目標機器的性能指標,在目標機器執行插件之類的,v4版本的agentd與server之間通信只走了server的rpc端口,所以相比v3,開通網絡acl要變簡單了。

升級建議

如果v2、v3已經玩得很溜了,並且滿足貴司的需求,就不建議升級了。當然,如果新版本有些功能特別想要,那就只能升級了。

如果時序庫是使用的tsdb+index這個方案,tsdb進程不用動,可以複用v3的,但是index需要升級。tsdb+index這倆模塊的代碼抽取到了github.com/n9e/n9e-tsdb中了,編譯方法和二進制最新地址都可以在這個repo的README中找到。

server.yml默認使用m3作爲存儲後端,所以,如果使用tsdb+index的方案,需要修改server.yml,把DataSource改成使用tsdb。

不過我個人建議大家嘗試一下m3db,容災、擴容都做的很方便。

快速部署

這裏我帶着大家部署一個單機版本的夜鶯v4,請大家提前準備好mysql、redis、nginx,單機部署,直接yum安裝即可,非常簡便。請找一臺乾淨的機器測試!

1、下載二進制

mkdir -p /home/n9e
cd /home/n9e
wget http://116.85.64.82/n9e-4.0.1.tar.gz
tar zxvf n9e-4.0.1.tar.gz

2、初始化數據庫,這裏假設使用 root 賬號,密碼爲 1234,如果不是這個賬號密碼,需要修改 /home/n9e/etc/mysql.yml

cd /home/n9e/sql
mysql -uroot -p1234 < n9e_ams.sql
mysql -uroot -p1234 < n9e_hbs.sql
mysql -uroot -p1234 < n9e_job.sql
mysql -uroot -p1234 < n9e_mon.sql
mysql -uroot -p1234 < n9e_rdb.sql

3、redis請不要配置密碼, 如果redis設置了密碼,需要修改/home/n9e/etc/server.yml,把密碼改對

4、下載前端靜態資源文件,放到/home/n9e下,請不要隨意更換目錄結構,否則還要自行修改nginx.conf,徒增煩惱

cd /home/n9e
wget http://116.85.64.82/pub-3.5.2.tar.gz
tar zxvf pub-3.5.2.tar.gz

5、覆蓋nginx.conf。如果靜態資源文件不是放到/home/n9e下的,就要先修改nginx.conf了

cp etc/nginx.conf /etc/nginx/nginx.conf
systemctl restart nginx

6、時序數據存儲部署,這裏選擇使用單機版本的m3db

mkdir -p /home/m3db
cd /home/m3db
wget https://s3-gz01.didistatic.com/n9e-pub/tarball/m3dbnode-single-v0.0.1.tar.gz

tar zxvf m3dbnode-single-v0.0.1.tar.gz
cd m3dbnode-single
./scripts/install.sh

# 使用下面的curl初始化M3DB,這一步千萬不能少!!!
# retentionTime 表示歷史監控數據存儲時長,使用m3一般建議最長不要超過3個月
curl -X POST http://localhost:7201/api/v1/database/create -d '{
  "type": "local",
  "namespaceName": "default",
  "retentionTime": "48h"
}'

7、最後一步,啓動相關進程。即可訪問nginx看效果了

cd /home/n9e
./control start server
./control start prober
./control start agentd

# 其中server如果正常啓動,會監聽在8000和8001兩個端口上,查看端口是否在監聽可以用下面的命令
ss -tlnp|grep n9e-server

# 正常應該展示下面的輸出
LISTEN     0      128         :::8000                    :::*                   users:(("n9e-server",pid=32234,fd=59))
LISTEN     0      128         :::8001                    :::*                   users:(("n9e-server",pid=32234,fd=58))

默認用戶是root,密碼是root.2020

8、可能的問題

系統安裝好了,也能看到指標,但是點擊指標看不到圖

很可能是系統時間沒有校準,與本地PC時間不一致

server模塊進程雖然在,但是server的兩個端口都沒有在監聽

這說明server模塊沒有正常啓動,可以查看logs/server/stdout.log查看是否有一些有用的信息,大概率是m3沒有安裝好,或者m3沒有用那個curl指令初始化。另外如果用的pve,可能會因爲指令集導致m3進程起來,過一會就掛了,所以不要用pve

設備管理的列表裏缺少了本機設備

說明agentd沒有成功註冊到server,需要檢查agentd和server的日誌來排查

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章