Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 前提の話ですが、rasberry piを使用する場合、そのまま利用するとmicroSDにリソース情報を書き込むため寿命を縮めます。
- 事前にSSDやHDDなどの外付けに保存するようご注意ください。
- それぞれのconfを書き換えても良いですが、手っ取り早く /var を外付けに保存していることを前提に書いています。
- ```
- $ sudo apt install apt-transport-https
- $ curl https://repos.influxdata.com/influxdb.key | sudo apt-key add -
- $ curl https://packages.grafana.com/gpg.key | sudo apt-key add -
- $ source /etc/lsb-release
- $ sudo curl “deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable” | sudo tee /etc/apt/sources.list.d/influxdb.list
- $ sudo add-apt-repository “deb https://packages.grafana.com/oss/deb stable main”
- $ sudo apt update && sudo apt install influxdb telegraf grafana
- $ sudo systemctl enable grafana-server
- ```
- grafanaだけサービスがdisableでしたのでインストール直後にサービスをenableに変更しています。
- `/etc/telegraf/telegraf.conf` のショート版設定内容です
- 編集前にバックアップいただき、どういう値が取れるかも参考にいただいた方が良いと思います。
- `sudo cp /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.bak`
- 以下は普通に `sudo vim /etc/telegraf/telegraf.conf` です。
- ```
- [global_tags]
- [agent]
- interval = "60s"
- round_interval = true
- metric_batch_size = 1000
- metric_buffer_limit = 10000
- collection_jitter = "0s"
- flush_interval = "60s"
- flush_jitter = "0s"
- precision = ""
- hostname = ""
- omit_hostname = false
- [[outputs.influxdb]]
- [[inputs.cpu]]
- percpu = true
- totalcpu = true
- collect_cpu_time = false
- report_active = false
- [[inputs.disk]]
- mount_points = ["/","/var","/var/swap"]
- ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
- [[inputs.io]]
- [[inputs.diskio]]
- [[inputs.kernel]]
- [[inputs.mem]]
- [[inputs.processes]]
- [[inputs.swap]]
- [[inputs.system]]
- [[inputs.net]]
- interfaces = ["eth0","wlan0"]
- [[inputs.netstat]]
- [[inputs.systemd_units]]
- unittype = "service"
- [[inputs.wireless]]
- host_proc = "/proc"
- # ここからはカスタムデータ
- # CPU温度をinfluxdbに投入する
- [[inputs.exec]]
- commands = [ "sh /usr/local/bin/therm.sh" ]
- name_override = "cpu_frequency"
- data_format = "value"
- data_type = "float"
- # boincのCSVを作成するコマンドとcsvをinfluxdbに投入する
- [[inputs.exec]]
- commands = [ "sh /usr/local/bin/boinc-task.sh" ]
- [[inputs.file]]
- files = ["/var/tmp/boinc-task.csv"]
- name_override = "boinc_task_state"
- data_format = "csv"
- csv_header_row_count = 1
- csv_skip_rows = 0
- csv_delimiter = ","
- csv_trim_space = false
- csv_tag_columns = ["name"]
- ```
- /usr/local/binに配置したファイルの中身です。
- cat /usr/local/bin/therm.sh
- ```
- #!/bin/sh
- echo "scale=3; `cat /sys/class/thermal/thermal_zone0/temp`/1000" | /usr/bin/bc
- ```
- cat /usr/local/bin/boinc-task.sh
- ```
- #!/bin/sh
- /usr/bin/boinccmd --get_tasks > /var/tmp/tasks.txt
- grep -v "[0-9].*)" /var/tmp/tasks.txt | grep -v "=" | sed -e "s/^\ \ \ //g" | grep -e "^name" -e "^ready" -e "^state" -e "^scheduler" -e "^active_task_state" | sed -e "s/^\(name.*$\)/\1,/g" | sed -e "s/^\(ready.*$\)/\1,/g" | sed -e "s/^\(state.*$\)/\1,/g" | sed -e "s/^\(scheduler.*$\)/\1,/g" | sed -e "s/^\(active.*$\)/\1\\[EOF\]/g" | xargs | sed -e "s/\[EOF\] /\n/g" | sed -e "s/\[EOF\]//g" | sed -e "s/^name:\ //g"| sed -e "s/,\ ready\ to\ report:\ /,/g" | sed -e "s/,\ scheduler\ state:\ /,/g" | sed -e "s/,\ state:\ /,/g" | sed -e "s/,\ active_task_state:\ /,/g"> /var/tmp/pre_insert-boinc-task.csv
- echo “name,ready to report,state,schedule state,active_task_state” > /var/tmp/boinc-task.csv
- cat /var/tmp/pre_insert-boinc-task.csv >> /var/tmp/boinc-task.csv
- ```
- ※ コードが汚いので誰かリファクタリングお願いします(ぉぃ
- telegrafの設定が終わったらサービスをreloadです
- `sudo systemctl reload telegraf`
- grafanaはサービスが停止しているのでサービス起動から実施で
- `sudo systemctl start grafana-server`
- grafanaは設定ファイルがなく、WebGUIから操作します。
- http://localhost or Private IP:3000/ でアクセスします。
- ログイン画面が表示されますので以下のユーザでログインし、パスワード変更します。
- ユーザ名 / パスワード
- admin / admin
- ログインしたらサイドメニューに + ボタンがあるので押すとDashboardのimport画面になります。
- テンプレートにするdashboardのIDを入力するか、生のjsonをimportします。
- おすすめのdashboad IDは5955で、以下にjsonファイル一緒にまとめます。
- また5955をcustomしたdashboardも記載しますが、custom版はboincのタスク進捗状況やCPU温度を表示するようカスタマイズされていますので参考にご覧ください。
- - original: Telegraf - system metrics
- https://grafana.com/api/dashboards/5955/revisions/1/download
- - original: Telegraf - system metrics(json)
- https://grafana.com/api/dashboards/5955/revisions/1/download
- - custom: Telegraf - system metrics
- https://pastebin.com/hTUHPtQD
- オリジナル版を使用する場合は表示されたダッシュボードでほとんど N/AやNoneだと思いますので、各項目を編集できるため編集します。
- SQLみたいにselect文が書かれているのですが、このselect文がinfluxdbから取得しているselect文になっています。
- カスタム版はboincのタスク進捗状況やCPU温度がN/Aやアイテムがカスタムされているためデータが取れていないはずです。
- 変更前
- ```
- WHERE ("host" =~ /^$server$/)
- ```
- 変更後
- ```
- WHERE ("host" =~ /^$server$/)
- ```
- おかしいのはWHERE句の$server$の前にある ^ が不要で、これがあることでN/AやNone表示になっています。
- うまく取得できればリアルタイムで表示されます。
- telegrafとinfluxdbとgrafanaはうまく活用すると株価、外貨の変動チェックなどにも利用できます(w
- Good luck.
- 参考にしたURL
- ttps://docs.influxdata.com/telegraf/v1.14/introduction/installation/
- ttps://grafana.com/docs/grafana/latest/installation/
- ttps://goozenlab.com/blog/2019/08/telegraf-pi-install/
Add Comment
Please, Sign In to add comment