diff --git a/wiki/services/grafana.md b/wiki/services/grafana.md deleted file mode 100644 index 70238abd..00000000 --- a/wiki/services/grafana.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: Grafana Setup Information -description: -published: true -date: 2021-07-25T21:59:55.861Z -tags: -editor: markdown -dateCreated: 2021-07-19T20:35:25.196Z ---- - -# Purpose and Layout -My Grafana dashboard serves as a one-stop systems monitoring frontend. - -![grafana.png](/grafana.png =50%x) - - -# Grafana - -# InfluxDB - -| Host | Database Name | Inputs | -|:-|-:|:-| -| Main Server | `jafgraf` | -| Seedbox | `seedbox` | -| NAS | `nas` | -| PiHole | `pihole` | - -The full configuration files for the main server are available at: [Jafner/docker_compose/grafana-stack](https://github.com/Jafner/docker_config/tree/master/grafana-stack). - -# Telegraf -Below are excerpts from the `telegraf.conf` and accompanying files for each host. All config files are based on the [config files](https://github.com/Mbarmem/Grafana.Dashboard/blob/master/docker/telegraf/telegraf.conf) from Mbarmem's repository. - -## Main Server -```toml -[global_tags] -[agent] - interval = "10s" - round_interval = true - metric_batch_size = 1000 - metric_buffer_limit = 10000 - collection_jitter = "0s" - flush_interval = "10s" - flush_jitter = "0s" - precision = "" - hostname = "" - omit_hostname = false -[[outputs.influxdb]] - urls = ["http://influxdb:8086"] - database = "jafgraf" -[[inputs.cpu]] - percpu = true - totalcpu = true - collect_cpu_time = false - report_active = false -[[inputs.disk]] - ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] -[[inputs.mem]] -[[inputs.system]] -[[inputs.docker]] - endpoint = "unix:///var/run/docker.sock" -[[inputs.sensors]] -[[inputs.file]] - files = ["/.forgetps.json"] - data_format = "json" - name_override = "tickinfo" - tag_keys = ["dim"] -``` - -### Getting Forge Server Tick Info -The main server's Telegraf instance gets information about my Forge server using a chain of tools. `cron` runs `docker exec e6 rcon-cli forge -```bash -#!/bin/bash -# this script converts the output of the "forge tps" command (in the form of the .forgetps file) into json for sending to influxdb -# by default it reads from stdin and outputs to a .forgetps.json file -while IFS= read -r line; do - if [ "$line" != "" ]; then - DIM=$(echo -n "$line" | awk '{print $2}') - if [ "$DIM" = "Mean" ]; then - DIM="Overall" - fi - TPT=$(echo "$line" | grep -oE 'Mean tick time: .+ms' | awk '{print $4}') - TPS=$(echo "$line" | grep -oE 'Mean TPS: .+' | awk '{print $3}') - JSON+=\{$(echo \"dim\":\"$DIM\",\"tpt\":$TPT,\"tps\":$TPS)\}, - fi -#done < .forgetps # inputs from .forgetps file -done <$1 # inputs from file passed via stdin -JSON=$(echo ${JSON} | sed 's/,$//') - -#echo [${JSON}] >&1 # outputs to stdout -echo [${JSON}] > .forgetps.json # uncomment this to output to file -``` - -``` -* * * * * cd /home/joey/docker_config/grafana-stack/scripts/ && docker exec e6 rcon-cli forge tps > .forgetps && ./forgetps-to-json.sh .forgetps -``` - -## NAS -```toml -[global_tags] - role = "freenas" -[[outputs.influxdb]] - urls = ["http://192.168.1.23:8086"] - database = "nas" -[[inputs.cpu]] - percpu = true - totalcpu = true -[[inputs.mem]] -[[inputs.net]] -[[inputs.system]] -[[inputs.diskio]] -[[inputs.zfs]] - poolMetrics = true -[[inputs.exec]] - name_override = "diskhealth" - commands = ["/root/telegraf/diskstatus.sh"] - timeout = "30s" - data_format = "json" - tag_keys = ["disk","health"] -[[inputs.exec]] - name_override = "cputemps" - commands = ["sh /root/telegraf/cputemp.sh"] - timeout = "5s" - data_format = "influx" -``` - -## Seedbox -```toml -[global_tags] -[agent] - interval = "10s" - round_interval = true - metric_batch_size = 1000 - metric_buffer_limit = 10000 - collection_jitter = "0s" - flush_interval = "10s" - flush_jitter = "0s" - precision = "" - hostname = "" - omit_hostname = false -[[outputs.influxdb]] - urls = ["http://192.168.1.23:8086"] - database = "seedbox" -[[inputs.cpu]] - percpu = true - totalcpu = true - collect_cpu_time = false - report_active = false -[[inputs.disk]] - ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] -[[inputs.mem]] -[[inputs.system]] -[[inputs.docker]] - endpoint = "unix:///var/run/docker.sock" -[[inputs.sensors]] -``` -## PiHole -```toml -[global_tags] -[agent] - interval = "10s" - round_interval = true - metric_batch_size = 1000 - metric_buffer_limit = 10000 - collection_jitter = "0s" - flush_interval = "10s" - flush_jitter = "0s" - precision = "" - hostname = "" - omit_hostname = false -[[outputs.influxdb]] - urls = ["http://192.168.1.23:8086"] - database = "pihole" -[[inputs.http]] - urls = ["http://192.168.1.191/admin/api.php"] - method = "GET" - data_format = "json" - json_string_fields = ["status"] - name_suffix = "_pihole" -``` -# Resources -The main guide I used for my setup: https://github.com/Mbarmem/Grafana.Dashboard -The guide I used for installing Telegraf on my NAS: https://blog.victormendonca.com/2020/10/28/how-to-install-telegraf-on-freenas/ -The repository containing my -The instructions I followed to get SMART HDD reporting from the NAS: https://www.reddit.com/r/freenas/comments/81t2bw/can_i_install_telegraf_on_my_freenas_host/dv67xu8/ \ No newline at end of file