顯示具有 grafana 標籤的文章。 顯示所有文章
顯示具有 grafana 標籤的文章。 顯示所有文章

2026/08/04

grafana升到 13.1.1 時出現以下問題

dpkg -i grafana-enterprise_13.1.1_29761037902_linux_amd64.deb
(Reading database ... 42034 files and directories currently installed.)
Preparing to unpack grafana-enterprise_13.1.1_29761037902_linux_amd64.deb ...
Unpacking grafana-enterprise (13.1.1) over (13.1.0) ...
Setting up grafana-enterprise (13.1.1) ...
mv: cannot overwrite '/var/lib/grafana/plugins-bundled': Directory not empty
dpkg: error processing package grafana-enterprise (--install):
 installed grafana-enterprise package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 grafana-enterprise

解決方法

systemctl stop grafana-server
cd /var/lib/grafana/
mv plugins-bundled plugins-bundled_20260804
dpkg --configure -a


2026/05/14

之前把loki升到 3.7的時候
有發現怎麼少了很多檔案
因為都會同時升級 promtail
昨天看文件才發現 EOL了
雖然還是可以用 但總是要找別的解決方案
找到了 vector
滿多人推的
官網有rpm但可以不用裝rpm
直接下載執行檔來執行就好了
vector config 根据原來的promtail 調整如下

# 1. 定義資料來源 (對應 Promtail 的 scrape_configs)
sources:
  forti_logs:
    type: "file"
    include:
      - "/var/log/messages"
    # 對應 Promtail 的 positions.filename
    data_dir: "/vector_data" 

# 2. 處理資料與添加標籤 (對應 Promtail 的 labels)
transforms:
  add_labels:
    type: "remap"
    inputs:
      - "forti_logs"
    source: |
      .job = "forti_auth"
      .host = get_hostname!()

# 3. 定義目的地 (對應 Promtail 的 clients.url)
sinks:
  loki_output:
    type: "loki"
    inputs:
      - "add_labels"
    endpoint: "http://10.10.0.10:3100"
    encoding:
      codec: "text"
    labels:
      job: "{{ job }}"
      host: "{{ host }}"


grafana官網是建議使用 alloy
但測了一下一直有問題




2026/04/22

前几天把grafana升到 13 版後

原本可以捉的圖都無法出現了

查了一下才知道 13 版 已經把  

grafana-image-renderer 的plugin 拿掉了

官方文件有提到怎麼理

https://grafana.com/docs/grafana/latest/setup-grafana/image-rendering/


2025/05/06

昨天才注意到grafana最近的更新多了 Drilldown 這個功能
目前會用到的是log這個
之前要搜尋資料是到 Explore 這裡
現在直接到 Drilldown 就可以了
關鍵字預設會高亮
很方便

2024/12/15

最近一直需要在grafana上畫圖
之前一陣子用的是csv檔的方式
把csv檔放在 web server上就可以了
在更之前也有使用influxdb來放資料
昨天想說可以用sqlite來試試
OS要安裝 sqlite
grafana要安裝sqlite的plugin
但碰到了時間格式的問題
這個之前使用 csv檔時也碰過 當時也試了好久
csv可以使用的日期時間格式如下

2024-12-16T07:34:01+0800
2024-12-16 07:34:01

sqlite 文件上說只能使用  RFC3339 的格式 但實際上這個格式無法被解析
必須要使用 iso-8601 才行
linux date 指令如下

date --iso-8601=seconds

產生格式如下

2024-12-17T22:17:01+08:00

還有一個要注意的是在下方的 sql指令欄位中 
記得要在 format as 選 time series 然後把 日期時間的欄位加進去 這裡是 time
醬才能被解析 也才能成功畫圖













2024/09/16

最近因為換冷氣 所以要觀察 raspberry 的cpu溫度 

來調整冷氣的設定溫度

先前已經利用設定snmp把值放在librenms上畫圖

今天想到grafana可以取值來畫圖

而且應該比snmp librenms 方便

首先把日期跟溫度存成csv 檔 格式如下 放在web server上

格式如下

time,temperature

Sun Sep 15 09:15:01 CST 2024,46.2

Sun Sep 15 09:20:01 CST 2024,46.2


接下來只要定時更新這個csv檔就可以了

grafana 要add new datasource          

yesoreyeram-infinity-datasource

安裝後不需要先建立 Global queries

接下來 New 一個 dashboard

Add visualization









select data source






type 選擇csv           修改csv檔的url








要把columns 依照數字及時間 設定好 

時間的格式一定要依照cvs檔裡的時間格式設定好才能畫圖 








完成後就能看到如下的圖了






2024/03/14

今天撈 attack map 時出現以下訊息
















這個plugin使用的方法要被官方終止支援了
官方提供了 geomap來取代使用
試了半天
圖就是出不來
後來才找到問題










fotmat這裡一定要選 Table
不然在右方的選項會找不到值

2023/05/03

因應centos 7 的EOS 
最近把 grafana 轉到 debian

grafana 安裝好後移轉資料


Install used plugin on new server

    grafana-cli plugins install grafana-image-renderer
    grafana-cli plugins install grafana-clock-panel
    grafana-cli plugins install grafana-worldmap-panel

Stop Grafana service on source and destination server

Copy /var/lib/grafana/grafana.db from old to new server

Check /etc/grafana/grafana.ini

    以上copy完後要注意檔案擁有者及權限問題

Restart Grafana

Regular connection to the grafana url

Dashboard, datasource, users, psw, team,… are the same


因為之前有在本机開 influxdb
所以移轉

influxd backup /tmp/backup
    
    只備分資料結構不備分資料

influxd restore -metadir /var/lib/influxdb/meta /tmp


本來有開API給遠端撈資料
在9版之後改成 service accounts
所以直接轉換

轉後去後遠端還是撈不到資料 本來以為是key的問題
查了log才發現要補一些package

apt install libglib2.0-0
apt install libnss3
apt install libatk1.0-0
apt install libatk-bridge2.0-0
apt install libcups2
apt install libdrm2
apt install libxkbcommon0
apt install libxcomposite1
apt install libxdamage1
apt install libxfixes3
apt install libxrandr2
apt install libgbm1
apt install libpangocairo-1.0-0
apt install libasound2


目前看來是都正常了




2022/01/15

proxmox 目前有支援 metric server 把系統資料往外丟到

Graphite 或 InfluxDB



















就可以利用grafana來畫圖

因為proxmox丟到influxdb只提供 udp http https 三種方式

而influxdb預設使用tcp

因此要修改 /etc/influxdb/influxdb.conf

加上

[[udp]]
    enabled = true
    bind-address = "0.0.0.0:8089"
    database = "proxmox"
    batch-size = 1000
    batch-timeout = "1s"

proxmox 上的設定如上圖

如果設定新 proxmox 的dashboard
步驟如下
先在influxdb
create 新database
create database proxmox_new

再修改 /etc/influxdb/influxdb.conf    

加上

[[udp]]
    enabled = true
    bind-address = "0.0.0.0:8090"
    database = "proxmox_new"
    batch-size = 1000
    batch-timeout = "1s"

注意藍字部分
改完後重啟 influxdb

接下來到proxmox主控台依上述的config進行設定

再來設定grafana

到 https://grafana.com/grafana/dashboards/10048/revisions 下載 proxmox_rev1.json

修改 proxmox_rev1.json 內容 檔案最下方

"title": "Proxmox_new", "uid": "kxQQuHRak",













改完後 import 時要選擇 upload json file 使用上述修改好的檔案
















https://www.cxybb.com/article/caiyqn/106380171


https://www.linuxsysadmins.com/monitoring-proxmox-with-grafana/



2022/01/10

想在其他網頁上show出grafana的圖

查了一些資料

說到可以改為anonymous不登入

但感覺醬不太安全

最後決定使用api key的方式來處理

首先產生api key

登入後 在畫面左邊的齒輪(configuration)點進去 再點選 API keys













因為目前不支援整個dashboard的render 只能單一panel

所以在panel上方點出選項然後再點下 share










因為沒有安裝 renderer  所以出現以下訊息








以下指令安裝

grafana-cli plugins install grafana-image-renderer


安裝後就會出現

direct link rendered image 的連結













但點下去之後出現












無法畫圖

查了一下log

要在OS補上以下的package

yum install -y atk

yum install -y at-spi2-atk

yum install -y cups-libs

yum install -y libdrm

yum install -y libxkbcommon

yum install -y libXcomposite

yum install -y libXdamage

yum install -y mesa-libgbm

yum install -y pango

yum install -y alsa-lib

補好再點就會出現圖了


些時就可以使用 api key把圖捉出來了

curl 使用的連結就是 direct link rendered image 的連結

以下語法是取出10分鐘前到現在的資料

curl -H "Authorization: Bearer your api key" "http://10.0.0.1:3000/render/d-solo/XICbV6A7k/lib-air-quality?orgId=1&from=now-10m&to=now&panelId=6&width=1000&height=500&tz=Asia%2FTaipei"  > output.png


https://grafana.com/docs/grafana/latest/image-rendering/

https://mattionline.de/grafana-api-export-graph-as-png/

2021/04/23

最近在試grafana的loki

這個專案已經釋出有一段時間了

只是一直沒去試

這几天試了一下

發現還不錯

如果沒有太複雜的需求

是一個不錯的選擇


稍微簡單說一下

目前在github上可以看到相關的程式有4個


logcli

command line 搜尋工具

如果不想用這個工具 也可以直接使用curl


curl -G -s "http://10.0.0.1:3100/loki/api/v1/query_range" --data-urlencode 'query={job="abc"}' --data-urlencode 'step=3000'|jq


loki-canary

效能檢視工具


loki

主程式


promtail

把資料拋回loki的client程式


最簡單的方式就是直接執行

loki 跟 promtail這二支程式

完全不需要安裝

在執行前注意要先把二個yaml檔定義好

loki 如果使用預設的yaml 要記得修改資料存放的路徑 預設是放在 /tmp

promtail預設收log file的路徑要記得改 如果有多個檔案要收

記得要增加如藍色的那段


scrape_configs:

- job_name: system

  static_configs:

  - targets:

      - localhost

    labels:

      job: varlogs

      __path__: /var/log/*

  - targets:

      - localhost

    labels:

      job: nginxlogs

      __path__: /var/log/nginx/*


如果想使用網頁介面進行搜尋

就可以在grafana進行設定


https://grafana.com/docs/loki/latest/overview/

https://www.cnblogs.com/fsckzy/p/13231696.html

https://my.oschina.net/xiaominmin/blog/3300964

2019/05/29

繼續昨天的問題
目前發現用 grafana 如果只是單純的進elasticsearch去拿筆數出來畫圖
不會有什麼問題
可是如果還要排序 加總 等一些運算
感覺會在ES上運算完再傳回
可是因為grafana需要這些資料來繪圖
所以會一直跟ES要
如果ES不夠強壯
就無法應付如此頻繁的request
結論就是

把需要的資料定時撈回來 在本地的几器上處理完再放到本地的DB上
這樣grafana拿資料比較快 也不會增加ES的loading

2019/05/23

之前發過一篇有關如何在graylog利用ip在地圖上顯示的方法
本來是有使用
但自從上次nas 掛二個HD GG後
graylog重裝 這個功能就沒有再加上去了
直到最近有人提到說想看類似的圖
才想說再起起來
沒想到由於目前收的log筆數太多
功能起起來後 因為會去解析所有進到graylog的ip
系統資源無法負荷
所以只好關掉再想別的辦法
剛好最近玩的grafana有個worldmap pannel 的plugin
想說來試看看
這個plugin支援滿多的datasource

Graphite
InfluxDB
OpenTSDB
Prometheus
MySQL
Postgres
MSSQL
Elasticsearch

想說就拿influxDB來用

首先每五分鐘到graylog取回這段時間被block的ip
取回後
再利用 geoiplookup 來把ip的地理位置取出來
在centos 7 上安裝

yum install GeoIP

裝好後就可以使用了
語法是
geoiplookup 8.8.8.8

GeoIP Country Edition: US, United States

我只想用國家來畫 所以以上資的資料就夠了
有二個原因
因為worldmap panel 直接支援用國碼來畫圖
再來就是如果要用座標來畫 一天的資料可能就會把HD撐爆了

接下來就是把以上取得的資料塞進influxdb
以下是程式碼

/bin/curl -u username:passwd 'http://10.10.10.10:9000/api/search/universal/keyword/export?query=source%3A10.10.10.20&keyword=last%205%20mins&batch_size=500&fields=message' > /tmp/5min_ipp
cat /tmp/5min_ipp |grep '\[' |awk '{print $2}'|cut -d ']' -f 1|cut -d '[' -f 2 > /tmp/5min_ip

rm /tmp/country

for i in `cat /tmp/5min_ip`
do
        country=`/bin/geoiplookup $i|awk '{print $4}'|cut -c 1-2`
        echo $country >> /tmp/country
done

cat /tmp/country|sort|uniq -c > /tmp/attack_data

while read line
do
#       echo $line
        /bin/influx -database "attacker" -execute "insert attack,name=`echo $line|awk '{print $2}'` value=`echo $line|awk '{print $1}'`"
done < /tmp/attack_data

attack 這個 Measurement只放了二個資料
國碼 這五分鐘的攻擊次數
如下

1558574202593759971 SG   9
1558574203886084275 SK   1
1558574205156245342 TH   3
1558574206520742362 TR   4

最後就是畫圖了 這也是搞最久的地方

設定influxdb 的datasource



























在dashbord上加上world map panel

再來設定相關資料
















紅色框一定要依据定義的field設對 不然圖就是出不來













location data 選擇country 以符合上面說明資料

如果設定正常 就會看到以下的圖了


















以上的程式在每五分鐘執行時會使用大量的cpu資源
請特別注意
另外可能要依据需求定時去清理influxdb的資料 以免占用太多HD空間


https://blog.csdn.net/Py_Wang/article/details/79186634


2019/05/22

因為最近玩grafana的關係
順便了解一下influxDB
安裝在centos 7 上很方便
把yum源加上去
直接yum install -y influxdb就可以了
不要忘記設定開几啟動

sudo systemctl enable influxdb

再來就是建user
開db

influxdb是時序性的DB
跟一般DB對比如下

Influxdb           SQL
Database          Database
Measurement Table
Points         Data Rows

再來加入資料

Influxdb的measuremet不需要先建立,也不用設定資料欄位,
直接 insert就可以了
INSERT時不要加任何的單引號或雙引號
 insert command有四個重要元素

measurement

tag <tag1-key>=<tag1-value>,<tag2-key>=<tag2-value> 如果有複數個tag時以逗點隔離

field <field1-key>=field1-value>,<field2-key>=field2-value>如果有複數個field時以逗點隔離

time 格式為timestamp,單位us,可以不加。(influxdb會自動加上server時間)

要特別注意的是insert時一定要加 measurement
time如果不指定系統會自動加上去

範例如下

INSERT test_measure,host=abc,cpu=intel volume=55

tag 跟 field 不一定要同時存在

再來談update 跟 delete

fluxbd設計之初就認為資料只會寫入而不會異動
因此沒有update相關指令

delete 的說明如下
只能清除整個 measurement
或以時間為基準來清除資料

DELETE FROM abc
DELETE FROM abc WHERE time < '2000-01-01T00:00:00Z'
DELETE WHERE time < '2000-01-01T00:00:00Z'

其他相關的指令請參考以下文件或直接google




2019/05/21

今天來講一下如何設定 grafana的 email alert
由於使用rpm安裝好後並沒有設定寄信的功能
所以首先要修改
/etc/grafana/grafana.ini
如下

[smtp] 
enabled = true
host = 1.2.3.4:25  改為smtp server ip
from_address = grafana@abc.com
from_name = Grafana

改好重啟
systemctl restart grafana-server

接下來在網頁介面上設定 Notification channels




































設定完成後按下 save test 檢查是否設定成功
再來就是在panel 上設定
點下panel edit 後
再點畫面左下方 alert
設定相關的值


設定完成後可以點 右上 test rule
如果沒問題
就可以在設定的情況收到通知了

2019/05/20

這几天開始找時間玩 grafana
做個記錄

安裝基本上沒太大問題
這次是裝在centos 7上
從官網下載rpm回來後
rpm -Uhv --test 出現少了几個package
就補一補
很快就裝好了

由於 grafana 支援相當多的datasource 目前先找了二個來試試
首先是graylog裡的elasticsearch 
如果是裝graylog 3的版本
預設elasticsearch只listen在 127.0.0.1 應該是為了安全性的問題
要開放出來

修改 /etc/elasticsearch/elasticsearch.yml
加上
network.host: 0.0.0.0

改好後
systemctl restart elasticsearch.service

接下來在grafana的管理介面上加入 elasticsearch 的datasource
紅色框請特別注意

























接下來就可以新增一個 dashboard 並在dashboard加入panel
選擇剛建立的datasource
預設就會顯示所有的筆數
如果需要挑選資料
可以把條件下在 Query
條件的下法跟 graylog 完全一樣
可以在 Metric 選擇要顯示count 最大 最小 或 加總 等等
Alias 設定圖上的圖線說明