轉(zhuǎn)自我的個(gè)人博客https://blognas.hwb0307.com。歡迎關(guān)注揖盘!
前言
此文內(nèi)容目前處于BETA版本
我之前在《Linux基礎(chǔ) 目錄管理的個(gè)人實(shí)踐》曾經(jīng)介紹過(guò)一款叫Ward的VPS性能監(jiān)控應(yīng)用,當(dāng)時(shí)對(duì)它的privileged=true
帶來(lái)的安全性問(wèn)題有點(diǎn)擔(dān)憂(yōu)捻悯。近期忽然發(fā)現(xiàn)它的Docker應(yīng)用崩了简逮,所以自己就再找一個(gè)同類(lèi)產(chǎn)品。經(jīng)杜比ZoniNG
大佬介紹强缘,有一款叫netdata的應(yīng)用不錯(cuò),工作界面大致如下:
這是我的網(wǎng)站托管的VPS實(shí)時(shí)監(jiān)控情況:https://wardrn2.hwb0307.com不傅。實(shí)時(shí)觀測(cè)的過(guò)程中旅掂,也沒(méi)有發(fā)現(xiàn)netdata對(duì)VPS的性能造成明顯的擠壓。
總體上访娶,netdata是一個(gè)比ward更加專(zhuān)業(yè)的工具商虐,有以下特點(diǎn)(主要是Google機(jī)翻):
- Linux 發(fā)行版的一站式部署,以及對(duì) Kubernetes/Docker 基礎(chǔ)設(shè)施的支持崖疤。
- 每秒從底層操作系統(tǒng)和正在運(yùn)行的應(yīng)用程序收集數(shù)千個(gè)指標(biāo)所需的零配置和維護(hù)秘车。
- 預(yù)建圖表和警報(bào)提醒您常見(jiàn)的異常和性能問(wèn)題,無(wú)需手動(dòng)配置劫哼。
- 分布式存儲(chǔ)叮趴,以簡(jiǎn)化存儲(chǔ)來(lái)自任意數(shù)量節(jié)點(diǎn)的指標(biāo)數(shù)據(jù)的成本和復(fù)雜性。
- 1% 的 CPU 利用率权烧、幾 MB 的 RAM 和最少的磁盤(pán) I/O以在裸機(jī)眯亦、虛擬機(jī)咳蔚、容器甚至物聯(lián)網(wǎng)設(shè)備上運(yùn)行監(jiān)控代理。
- 基于您在節(jié)點(diǎn)上運(yùn)行的硬件和應(yīng)用程序的無(wú)限數(shù)量指標(biāo)的每秒粒度搔驼。
- 可互操作的導(dǎo)出器讓您可以將 Netdata 的每秒指標(biāo)與現(xiàn)有的監(jiān)控堆棧和其他時(shí)間序列數(shù)據(jù)庫(kù)連接起來(lái)谈火。
- 使用強(qiáng)調(diào)圖表之間關(guān)系的 UI/UX 進(jìn)行視覺(jué)異常檢測(cè)。
- 可定制的儀表板用于查明相關(guān)指標(biāo)舌涨、響應(yīng)事件并幫助您簡(jiǎn)化工作流程糯耍。
- 集中式界面中的分布式指標(biāo)可幫助用戶(hù)或團(tuán)隊(duì)跟蹤分布式節(jié)點(diǎn)之間的復(fù)雜問(wèn)題。
目前其Github Repo (GPL-3.0 license)有近60k的Star囊嘉。Guide教程和文檔都相當(dāng)豐富温技,足見(jiàn)專(zhuān)業(yè)性。作為一個(gè)明星應(yīng)用扭粱,netdata也支持docker安裝喔舵鳞!經(jīng)過(guò)簡(jiǎn)單的測(cè)試,我選擇netdata以更好地實(shí)時(shí)監(jiān)控自己服務(wù)器的性能琢蛤。
下面我們看看怎么安裝Docker版的netdata吧蜓堕!
測(cè)試環(huán)境
uname -a # Linux racknerd-74a241 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
docker --version # Docker version 20.10.14, build a224086
docker-compose --version # Docker Compose version v2.4.1
準(zhǔn)備工作
工作目錄:
# 按需修改
work=~/docker/netdata && mkdir -p $work && cd $work
如有防火墻,請(qǐng)開(kāi)放端口3962
:
# 按需修改端口號(hào)
sudo ufw allow 3962/tcp comment 'netdata' && sudo ufw reload
提前拉取鏡像:
docker pull netdata/netdata
映射配置文件
獲取測(cè)試目錄/etc/netdata
:這個(gè)目錄用于個(gè)性化設(shè)置博其,有大用套才,大家不要忽略這一步
cd $work
mkdir netdataconfig
docker run -d --name netdata_tmp netdata/netdata
docker cp netdata_tmp:/etc/netdata netdataconfig/
docker rm -f netdata_tmp
編輯配置文件:
netdata.conf其實(shí)功能特別多。以后我了解深些再介紹一個(gè)最佳實(shí)踐慕淡。更多默認(rèn)配置可見(jiàn)這里背伴。
sudo vim $work/netdataconfig/netdata/netdata.conf
加入以下內(nèi)容:
[plugin:apps]
update every = 1
command options = no-users no-groups
[plugin:proc:/proc/net/dev:docker0]
enabled = no
按:wq
保存并退出。
plugin:apps
的設(shè)置是為了隱藏users和groups的性能匯報(bào)峰髓,否則它將向直接公開(kāi)users ID傻寂,這可能會(huì)帶來(lái)安全性問(wèn)題。
plugin:proc:/proc/net/dev:docker0
則是為了隱藏dokcer的相關(guān)信息(沒(méi)有生效携兵?)疾掰。
更多的設(shè)置敬請(qǐng)關(guān)注更新吧!
ddns-go & NPM
不了解Nginx Proxy Manager用法的小伙伴眉孩,請(qǐng)看《Docker系列 兩大神器NPM和ddns-go的安裝》个绍。
在ddns-go或者域名托管商后臺(tái)解析好域名勒葱,比如netdata.example.com
浪汪。
Nginx Proxy Manager設(shè)置無(wú)特殊,類(lèi)似于下圖:
配置yml文件
主要參考: https://learn.netdata.cloud/docs/agent/packaging/docker
version: '3'
services:
netdata:
image: netdata/netdata
container_name: netdata
hostname: 苯苯天眼通 # 起個(gè)喜歡的名字
ports:
- 3962:19999 # 按需修改凛虽,與上面防火墻開(kāi)放的端口一致即可
restart: unless-stopped
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
volumes:
- ./netdataconfig/netdata:/etc/netdata:ro # 這個(gè)文件夾就是掛載上面的測(cè)試文件夾
- netdatalib:/var/lib/netdata
- netdatacache:/var/cache/netdata
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
volumes:
netdatalib:
netdatacache:
上線服務(wù):
cd $work && docker-compose up -d
查看日志:
cd $work && docker-compose logs -f
可能會(huì)有一些Error死遭,但不影響正常使用。
使用
登陸https://netdata.example.com
即可查看工作界面:
小結(jié)
總算安裝了一個(gè)配置較簡(jiǎn)單的Docker應(yīng)用( ̄△ ̄凯旋;)
其實(shí)呀潭,netdata文檔還介紹了很多自定義設(shè)置钉迷,不過(guò)我暫時(shí)還沒(méi)有細(xì)看。接下來(lái)的主要目標(biāo)是讓netdata隱藏一些我不想要的項(xiàng)目(比如網(wǎng)絡(luò)钠署、防火墻)糠聪,而不是一股腦將大多數(shù)信息都顯示出來(lái)。之后有什么心得再更新谐鼎!
參考
- Guide:https://learn.netdata.cloud/guides
- 隱藏用戶(hù)(組):https://github.com/netdata/netdata/issues/1250
- Daemon configuration:https://learn.netdata.cloud/docs/agent/daemon/config
- Supported collectors list: https://learn.netdata.cloud/docs/agent/collectors
本文使用 文章同步助手 同步