Compare commits
4 commits
Author | SHA1 | Date | |
---|---|---|---|
51859b6171 | |||
8289890ccd | |||
f715b43402 | |||
9d67459479 |
6 changed files with 299 additions and 0 deletions
|
@ -118,6 +118,8 @@ rev: 2024-07-14
|
|||
- [Wildcard](utilities/Wildcard.md)
|
||||
- [Textpieces](utilities/Textpieces.md)
|
||||
- [ImHex](utilities/ImHex.md)
|
||||
- [Node Exporter](utilities/node-exporter.md)
|
||||
- [cAdvisor](utilities/cAdvisor.md)
|
||||
|
||||
# Mobile
|
||||
- [Aegis](./utilities/Aegis.md)
|
||||
|
@ -165,6 +167,9 @@ rev: 2024-07-14
|
|||
- [Caddy](./web/Caddy.md)
|
||||
- [zigbee2MQTT](./web/zigbee2mqtt.md)
|
||||
- [dawarich](./web/dawarich.md)
|
||||
- [Grafana](./web/Grafana.md)
|
||||
- [Prometheus](./web/Prometheus.md)
|
||||
- [Loki](./web/loki.md)
|
||||
|
||||
# CLI
|
||||
## Terminal
|
||||
|
|
42
technology/applications/utilities/cAdvisor.md
Normal file
42
technology/applications/utilities/cAdvisor.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
obj: application
|
||||
repo: https://github.com/google/cadvisor
|
||||
rev: 2024-12-12
|
||||
---
|
||||
|
||||
# cAdvisor
|
||||
cAdvisor (Container Advisor) provides container users an understanding of the resource usage and performance characteristics of their running containers. It is a running daemon that collects, aggregates, processes, and exports information about running containers. Specifically, for each container it keeps resource isolation parameters, historical resource usage, histograms of complete historical resource usage and network statistics. This data is exported by container and machine-wide.
|
||||
|
||||
## Prometheus
|
||||
Add this to [Prometheus](../web/Prometheus.md) config file:
|
||||
|
||||
```yml
|
||||
scrape_configs:
|
||||
- job_name: cadvisor
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets:
|
||||
- cadvisor:8080
|
||||
```
|
||||
|
||||
## Docker-Compose
|
||||
|
||||
```yml
|
||||
services:
|
||||
cadvisor:
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /var/run:/var/run:ro
|
||||
- /sys:/sys:ro
|
||||
- /var/lib/docker/:/var/lib/docker:ro
|
||||
- /dev/disk/:/dev/disk:ro
|
||||
ports:
|
||||
- target: 8080
|
||||
published: 8080
|
||||
protocol: tcp
|
||||
mode: host
|
||||
privileged: true
|
||||
image: gcr.io/cadvisor/cadvisor
|
||||
deploy:
|
||||
mode: global
|
||||
```
|
178
technology/applications/utilities/node-exporter.md
Normal file
178
technology/applications/utilities/node-exporter.md
Normal file
|
@ -0,0 +1,178 @@
|
|||
---
|
||||
obj: application
|
||||
repo: https://github.com/prometheus/node_exporter
|
||||
rev: 2024-12-12
|
||||
---
|
||||
|
||||
# Prometheus Node Exporter
|
||||
Prometheus exporter for hardware and OS metrics exposed by *NIX kernels, written in Go with pluggable metric collectors.
|
||||
|
||||
A Dashboard to use with Node Exporter and Grafana can be found [here](https://grafana.com/grafana/dashboards/1860-node-exporter-full/).
|
||||
|
||||
## Usage
|
||||
The node_exporter listens on HTTP port 9100 by default.
|
||||
|
||||
### Docker
|
||||
The `node_exporter` is designed to monitor the host system. Deploying in containers requires extra care in order to avoid monitoring the container itself.
|
||||
|
||||
For situations where containerized deployment is needed, some extra flags must be used to allow the `node_exporter` access to the host namespaces.
|
||||
|
||||
Be aware that any non-root mount points you want to monitor will need to be bind-mounted into the container.
|
||||
|
||||
If you start container for host monitoring, specify `path.rootfs` argument. This argument must match path in bind-mount of host root. The `node_exporter` will use `path.rootfs` as prefix to access host filesystem.
|
||||
|
||||
```yml
|
||||
---
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
node_exporter:
|
||||
image: quay.io/prometheus/node-exporter:latest
|
||||
container_name: node_exporter
|
||||
command:
|
||||
- '--path.rootfs=/host'
|
||||
network_mode: host
|
||||
pid: host
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- '/:/host:ro,rslave'
|
||||
```
|
||||
|
||||
On some systems, the timex collector requires an additional Docker flag, `--cap-add=SYS_TIME`, in order to access the required syscalls.
|
||||
|
||||
### Prometheus
|
||||
Configure Prometheus to scrape the exposed node exporter:
|
||||
|
||||
```yml
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
|
||||
scrape_configs:
|
||||
- job_name: node
|
||||
static_configs:
|
||||
- targets: ['localhost:9100']
|
||||
```
|
||||
|
||||
## Configuration
|
||||
Node Exporter can be configured using CLI arguments.
|
||||
|
||||
### Options
|
||||
|
||||
| **Option** | **Description** |
|
||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
|
||||
| `--path.procfs="/proc"` | procfs mountpoint. |
|
||||
| `--path.sysfs="/sys"` | sysfs mountpoint. |
|
||||
| `--path.rootfs="/"` | rootfs mountpoint. |
|
||||
| `--path.udev.data="/run/udev/data"` | udev data path. |
|
||||
| `--collector.runit.servicedir="/etc/service"` | Path to runit service directory. |
|
||||
| `--collector.supervisord.url="http://localhost:9001/RPC2"` | XML RPC endpoint. |
|
||||
| `--collector.sysctl.include=COLLECTOR.SYSCTL.INCLUDE ...` | Select sysctl metrics to include. |
|
||||
| `--collector.sysctl.include-info=COLLECTOR.SYSCTL.INCLUDE-INFO ...` | Select sysctl metrics to include as info metrics. |
|
||||
| `--collector.systemd.unit-include=".+"` | Regexp of systemd units to include. Units must both match include and not match exclude to be included. |
|
||||
| `--collector.systemd.unit-exclude=".+\\.(automount|device|mount|scope|slice|target)"` | Regexp of systemd units to exclude. Units must both match include and not match exclude to be included. |
|
||||
| `--collector.systemd.enable-task-metrics` | Enables service unit tasks metrics `unit_tasks_current` and `unit_tasks_max`. |
|
||||
| `--collector.systemd.enable-restarts-metrics` | Enables service unit metric `service_restart_total`. |
|
||||
| `--collector.systemd.enable-start-time-metrics` | Enables service unit metric `unit_start_time_seconds`. |
|
||||
| `--collector.tapestats.ignored-devices="^$"` | Regexp of devices to ignore for tapestats. |
|
||||
| `--collector.textfile.directory="/var/lib/prometheus/node-exporter"` | Directory to read text files with metrics from. |
|
||||
| `--collector.vmstat.fields="^(oom_kill|pgpg|pswp|pg.*fault).*"` | Regexp of fields to return for vmstat collector. |
|
||||
| `--collector.arp` | Enable the arp collector (default: enabled). |
|
||||
| `--collector.bcache` | Enable the bcache collector (default: enabled). |
|
||||
| `--collector.bonding` | Enable the bonding collector (default: enabled). |
|
||||
| `--collector.btrfs` | Enable the btrfs collector (default: enabled). |
|
||||
| `--collector.buddyinfo` | Enable the buddyinfo collector (default: disabled). |
|
||||
| `--collector.cgroups` | Enable the cgroups collector (default: disabled). |
|
||||
| `--collector.conntrack` | Enable the conntrack collector (default: enabled). |
|
||||
| `--collector.cpu` | Enable the cpu collector (default: enabled). |
|
||||
| `--collector.cpufreq` | Enable the cpufreq collector (default: enabled). |
|
||||
| `--collector.diskstats` | Enable the diskstats collector (default: enabled). |
|
||||
| `--collector.dmi` | Enable the dmi collector (default: enabled). |
|
||||
| `--collector.drbd` | Enable the drbd collector (default: disabled). |
|
||||
| `--collector.drm` | Enable the drm collector (default: disabled). |
|
||||
| `--collector.edac` | Enable the edac collector (default: enabled). |
|
||||
| `--collector.entropy` | Enable the entropy collector (default: enabled). |
|
||||
| `--collector.ethtool` | Enable the ethtool collector (default: disabled). |
|
||||
| `--collector.fibrechannel` | Enable the fibrechannel collector (default: enabled). |
|
||||
| `--collector.filefd` | Enable the filefd collector (default: enabled). |
|
||||
| `--collector.filesystem` | Enable the filesystem collector (default: enabled). |
|
||||
| `--collector.hwmon` | Enable the hwmon collector (default: enabled). |
|
||||
| `--collector.infiniband` | Enable the infiniband collector (default: enabled). |
|
||||
| `--collector.interrupts` | Enable the interrupts collector (default: disabled). |
|
||||
| `--collector.ipvs` | Enable the ipvs collector (default: enabled). |
|
||||
| `--collector.ksmd` | Enable the ksmd collector (default: disabled). |
|
||||
| `--collector.lnstat` | Enable the lnstat collector (default: disabled). |
|
||||
| `--collector.loadavg` | Enable the loadavg collector (default: enabled). |
|
||||
| `--collector.logind` | Enable the logind collector (default: disabled). |
|
||||
| `--collector.mdadm` | Enable the mdadm collector (default: enabled). |
|
||||
| `--collector.meminfo` | Enable the meminfo collector (default: enabled). |
|
||||
| `--collector.meminfo_numa` | Enable the meminfo_numa collector (default: disabled). |
|
||||
| `--collector.mountstats` | Enable the mountstats collector (default: disabled). |
|
||||
| `--collector.netclass` | Enable the netclass collector (default: enabled). |
|
||||
| `--collector.netdev` | Enable the netdev collector (default: enabled). |
|
||||
| `--collector.netstat` | Enable the netstat collector (default: enabled). |
|
||||
| `--collector.network_route` | Enable the network_route collector (default: disabled). |
|
||||
| `--collector.nfs` | Enable the nfs collector (default: enabled). |
|
||||
| `--collector.nfsd` | Enable the nfsd collector (default: enabled). |
|
||||
| `--collector.ntp` | Enable the ntp collector (default: disabled). |
|
||||
| `--collector.nvme` | Enable the nvme collector (default: enabled). |
|
||||
| `--collector.os` | Enable the os collector (default: enabled). |
|
||||
| `--collector.perf` | Enable the perf collector (default: disabled). |
|
||||
| `--collector.powersupplyclass` | Enable the powersupplyclass collector (default: enabled). |
|
||||
| `--collector.pressure` | Enable the pressure collector (default: enabled). |
|
||||
| `--collector.processes` | Enable the processes collector (default: disabled). |
|
||||
| `--collector.qdisc` | Enable the qdisc collector (default: disabled). |
|
||||
| `--collector.rapl` | Enable the rapl collector (default: enabled). |
|
||||
| `--collector.runit` | Enable the runit collector (default: disabled). |
|
||||
| `--collector.schedstat` | Enable the schedstat collector (default: enabled). |
|
||||
| `--collector.selinux` | Enable the selinux collector (default: enabled). |
|
||||
| `--collector.slabinfo` | Enable the slabinfo collector (default: disabled). |
|
||||
| `--collector.sockstat` | Enable the sockstat collector (default: enabled). |
|
||||
| `--collector.softnet` | Enable the softnet collector (default: enabled). |
|
||||
| `--collector.stat` | Enable the stat collector (default: enabled). |
|
||||
| `--collector.supervisord` | Enable the supervisord collector (default: disabled). |
|
||||
| `--collector.sysctl` | Enable the sysctl collector (default: disabled). |
|
||||
| `--collector.systemd` | Enable the systemd collector (default: enabled). |
|
||||
| `--collector.tapestats` | Enable the tapestats collector (default: enabled). |
|
||||
| `--collector.tcpstat` | Enable the tcpstat collector (default: disabled). |
|
||||
| `--collector.textfile` | Enable the textfile collector (default: enabled). |
|
||||
| `--collector.thermal_zone` | Enable the thermal_zone collector (default: enabled). |
|
||||
| `--collector.time` | Enable the time collector (default: enabled). |
|
||||
| `--collector.timex` | Enable the timex collector (default: enabled). |
|
||||
| `--collector.udp_queues` | Enable the udp_queues collector (default: enabled). |
|
||||
| `--collector.uname` | Enable the uname collector (default: enabled). |
|
||||
| `--collector.vmstat` | Enable the vmstat collector (default: enabled). |
|
||||
| `--collector.wifi` | Enable the wifi collector (default: disabled). |
|
||||
| `--collector.xfs` | Enable the xfs collector (default: enabled). |
|
||||
| `--collector.zfs` | Enable the zfs collector (default: enabled). |
|
||||
| `--collector.zoneinfo` | Enable the zoneinfo collector (default: disabled). |
|
||||
| `--web.telemetry-path="/metrics"` | Path under which to expose metrics. |
|
||||
| `--web.disable-exporter-metrics` | Exclude metrics about the exporter itself (`promhttp_*`, `process_*`, `go_*`). |
|
||||
| `--web.max-requests=40` | Maximum number of parallel scrape requests. Use 0 to disable. |
|
||||
| `--collector.disable-defaults` | Set all collectors to disabled by default. |
|
||||
| `--runtime.gomaxprocs=1` | The target number of CPUs Go will run on (`GOMAXPROCS`). |
|
||||
| `--web.systemd-socket` | Use systemd socket activation listeners instead of port listeners (Linux only). |
|
||||
| `--web.listen-address=:9100 ...` | Addresses on which to expose metrics and web interface. Repeatable for multiple addresses. |
|
||||
| `--web.config.file=""` | [EXPERIMENTAL] Path to configuration file that can enable TLS or authentication. |
|
||||
| `--log.level=info` | Only log messages with the given severity or above. One of: `[debug, info, warn, error]`. |
|
||||
| `--log.format=logfmt` | Output format of log messages. One of: `[logfmt, json]`. |
|
||||
|
||||
### Web Configuration
|
||||
Exporters and services instrumented with the Exporter Toolkit share the same web configuration file format. This is experimental and might change in the future.
|
||||
|
||||
To specify which web configuration file to load, use the `--web.config.file` flag.
|
||||
|
||||
Basic config file:
|
||||
```yml
|
||||
# TLS and basic authentication configuration example.
|
||||
#
|
||||
# Additionally, a certificate and a key file are needed.
|
||||
tls_server_config:
|
||||
cert_file: server.crt
|
||||
key_file: server.key
|
||||
|
||||
# Usernames and passwords required to connect.
|
||||
# Passwords are hashed with bcrypt: https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md#about-bcrypt.
|
||||
basic_auth_users:
|
||||
alice: $2y$10$mDwo.lAisC94iLAyP81MCesa29IzH37oigHC/42V2pdJlUprsJPze
|
||||
bob: $2y$10$hLqFl9jSjoAAy95Z/zw8Ye8wkdMBM8c5Bn1ptYqP/AXyV0.oy0S8m
|
||||
```
|
8
technology/applications/web/Grafana.md
Normal file
8
technology/applications/web/Grafana.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
obj: application
|
||||
website: https://grafana.com
|
||||
repo: https://github.com/grafana/grafana
|
||||
---
|
||||
|
||||
# Grafana
|
||||
#wip
|
58
technology/applications/web/Prometheus.md
Normal file
58
technology/applications/web/Prometheus.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
obj: application
|
||||
website: https://prometheus.io
|
||||
repo: https://github.com/prometheus/prometheus
|
||||
rev: 2024-12-12
|
||||
---
|
||||
|
||||
# Prometheus
|
||||
Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud.
|
||||
It collects and stores its metrics as time series data, i.e. metrics information is stored with the timestamp at which it was recorded, alongside optional key-value pairs called labels.
|
||||
This data can then be visualized using [Grafana](./Grafana.md).
|
||||
|
||||
## Docker Compose
|
||||
|
||||
```yml
|
||||
services:
|
||||
prometheus:
|
||||
image: prom/prometheus
|
||||
ports:
|
||||
- 9090:9090
|
||||
volumes:
|
||||
- ./data:/prometheus
|
||||
- ./conf:/etc/prometheus
|
||||
```
|
||||
|
||||
## Configuration
|
||||
Basic prometheus config:
|
||||
|
||||
```yml
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
|
||||
scrape_configs:
|
||||
- job_name: "prometheus"
|
||||
static_configs:
|
||||
- targets: ["localhost:9090"]
|
||||
|
||||
# Node Exporter Config
|
||||
- job_name: node_exporter
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['host:9100']
|
||||
|
||||
# Job with custom CA
|
||||
- job_name: custom_ca
|
||||
static_configs:
|
||||
- targets: ['endpoint']
|
||||
tls_config:
|
||||
ca_file: '/ca_file.crt'
|
||||
|
||||
# Job with Bearer Auth
|
||||
- job_name: bearer_auth
|
||||
scrape_interval: 120s
|
||||
static_configs:
|
||||
- targets: ['endpoint']
|
||||
bearer_token: 'BEARER_TOKEN'
|
||||
```
|
8
technology/applications/web/loki.md
Normal file
8
technology/applications/web/loki.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
obj: application
|
||||
repo: https://github.com/grafana/loki
|
||||
website: https://grafana.com/oss/loki
|
||||
---
|
||||
|
||||
# Grafana Loki
|
||||
#wip
|
Loading…
Reference in a new issue