Netdata 學習筆記

前言

這是一份未整理過的 Netdata 學習筆記
內容參考出處:
官方文件

Configuration (設定檔)

檔案位置: /etc/netdata/netdata.conf

backend

[backend]
enabled = yes | no
type = graphite | opentsdb:telnet | opentsdb:http | opentsdb:https | prometheus_remote_write | json | kinesis | mongodb
host tags = list of TAG=VALUE
destination = space separated list of [PROTOCOL:]HOST[:PORT] - the first working will be used, or a region for kinesis
data source = average | sum | as collected
prefix = Netdata
hostname = my-name
update every = 10
buffer on failures = 10
timeout ms = 20000
send charts matching = *
send hosts matching = localhost *
send names instead of ids = yes
  • enabled = yes | no, 開啟或關閉後端

  • type = graphite | opentsdb:telnet | opentsdb:http | opentsdb:https | json | kinesis | mongodb, 選擇後端類型

  • destination = host1 host2 host3 ..., 接受一個空白來分開多個欲連接的 hostnames, IPs (IPv4 以及 IPv6), 以及 port 號。 Netdata 會使用第一個可用目的地來傳送指標。

    • 每個品項的格式 [PROTOCOL:]IP[:PORT]
    • PROTOCOL 可以是 udp 或 tcp, 預設為 tcp 且只被目前的後端支援。
    • IP 可以是 XX.XX.XX.XX (IPv4), 或 [XX:XX…XX:XX] (IPv6). IPv6 的話你可以將 IP 包在 [] 內來與 port 分開。
    • PORT 可以是服務名稱的號碼。 如果沒填, 後端預設的 PORT 將會被使用 (graphite = 2003, opentsdb = 4242)
    • IPv4 範例: destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242
    • IPv4 以及 IPv6 範例: destination = [ffff:...:0001]:2003 10.11.12.1:2003
    • 當多個 server 被定義, 第一個失敗時, Netdata 將會自動嘗試下一個。 這讓我們可以平衡負載不同的 server: 在每一個 Netdata 給予不同的後端服務順序
    • Netdata 也提供了 nc-backend.sh, 一個備用解決方法來將指標先存到硬碟中, 待 time-series 資料庫可用了, 再將資料傳到資料庫。 它也可用來監控 / 追蹤 / 除錯 Netadata 產生的指標。
    • 如果是 kinesis 後端目的地, 應該要被設定成 AWS region (例如, us-east-1)
    • MongoDB 後端在這設定中不使用 destination 選項, 它使用 mongodb.conf 設定
  • data source = as collected, 或 data source = average, 或 data source = sum, 選擇要被傳送到後端的資料類型

    • as-collected: 當指標被採集時, 傳送到後端, 以他們被採集時的單位。 所以說, counter 將會以 counter 傳送, gauge 也被以 gauge 傳送, 就像所有的資料採集器那樣。 例如說, 若要算出在這格式下的 CPU 使用率,你需要知道怎麼轉換 kernel ticks 到百分比
    • average: 將正規化之後的指標從 Netdata 資料庫傳送到後端。 在這個模式下,所有的指標都被以 gauges 傳送,並且使用 Netdata 使用的單位。 這抽象化了資料收集以及簡單化了視覺顯示,但你將沒有辦法從其他來源複製貼上 query 來轉換單位。 例如, CPU 使用百分比是被 Netdata 計算,所以 Netdata 將會轉換 ticks 到百分比,然後傳送平均百分比到後端
    • sum or volume: Netdata 圖表上的總合將會被傳送到後端。 所以,如果 Netdata 被設定為每 10 秒傳送資料一次,那 10 秒的總合將會被傳送。
    • Time-series 資料庫建議以原始數值的方式收集資料 (as-collected)。 如果你打算建立你自己的監控系統搭配 time-series 資料庫,且你已經(或你將會花時間學習)知道如何轉換單位以及正規化資料已符合 Grafana 或其他視覺化工具,我們建議使用 as-collected
    • 如果,另一方面,你只是需要長期的 Netdata 資料歸檔,並且妳主要打算使用 Netdata, 我們建議使用 average。 它將視覺化以及資料收集分離,所以整體來說它會簡單很多。 再進一步來說,如果你使用 average, 在後端看到的圖表將會完全符合你在 Netdata 看到的,如果是在別種模式的話,可能不是這樣。

利用 InfluxDB 作為 Netdata backend

Netdata

安裝

bash <(curl -Ss https://my-netdata.io/kickstart.sh) --dont-wait

Config

  • 開啟設定檔

    vim /etc/netdata/netdata.conf
  • 設定

    [backend]
    # host tags =
    enabled = yes
    data source = average
    type = opentsdb
    destination = localhost:4242
    # prefix = netdata
    # hostname = netdata
    update every = 10
    # buffer on failures = 10
    # timeout ms = 20000
    # send names instead of ids = yes
    # send charts matching = *
    # send hosts matching = localhost *
  • 重新啟動

    systemctl restart netdata

InfluxDB

安裝

參考官方流程

開啟設定檔

vim /etc/influxdb/influxdb.conf

設定

[[opentsdb]]
enabled = true
bind-address = "localhost:4242"
database = "opentsdb"
InfluxDB 學習筆記 利用 Let's Encrypt 來自動簽署並更新 SSL 憑證 (wildcard)

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×