Add the secret sauce
This commit is contained in:
		
							
								
								
									
										15
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| FROM alpine AS build | ||||
|  | ||||
| RUN apk add --no-cache \ | ||||
|     smartmontools \ | ||||
|     jq \ | ||||
|     nvme-cli \ | ||||
|     bash \ | ||||
|     hwids-pci | ||||
|  | ||||
| COPY node-exporter-textfile-collector-scripts /scripts | ||||
| COPY entrypoint.sh /entrypoint.sh | ||||
| COPY bridge.sh /scripts/ | ||||
| RUN chmod +x /scripts/bridge.sh | ||||
| RUN chmod +x /entrypoint.sh | ||||
| ENTRYPOINT /entrypoint.sh | ||||
							
								
								
									
										17
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| # Background | ||||
|  | ||||
| Ubuntu packages are outdated and getting textfile collectors working is a hassle. | ||||
| This is the only sane option for running Prometheus Node Exporter with textfile collectors | ||||
| such as SMART metrics, NVMe metrics etc. | ||||
|  | ||||
|  | ||||
| # Deploying | ||||
|  | ||||
| See supplied `docker-compose.yml` | ||||
|  | ||||
|  | ||||
| # Security | ||||
|  | ||||
| Don't forget to add some `iptables` rules for protecting the node exporter endpoint. | ||||
|  | ||||
|  | ||||
							
								
								
									
										9
									
								
								bridge.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								bridge.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
|  | ||||
| echo "# HELP node_bridge_members How many member interfaces bridge has" | ||||
| echo "# TYPE node_bridge_members gauge" | ||||
|  | ||||
| for BRIDGE in $(ls /sys/devices/virtual/net); do | ||||
|   if [ -e /sys/devices/virtual/net/$BRIDGE/brif ]; then | ||||
|     echo node_bridge_members{bridge=\"$BRIDGE\"} $(/bin/ls -1 /sys/devices/virtual/net/$BRIDGE/brif 2>/dev/null | wc -l) | ||||
|   fi | ||||
| done | ||||
							
								
								
									
										25
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| version: '3.7' | ||||
|  | ||||
| services: | ||||
|   app: | ||||
|     restart: always | ||||
|     image: quay.io/prometheus/node-exporter:latest | ||||
|     command: | ||||
|       - --path.rootfs=/host | ||||
|       - --collector.textfile.directory=/host/run/node-exporter | ||||
|     network_mode: host | ||||
|     pid: host | ||||
|     restart: always | ||||
|     volumes: | ||||
|       - '/:/host:ro,rslave' | ||||
|  | ||||
|   collectors: | ||||
|     image: kspaceee:prometheus-textfile-collectors | ||||
|     restart: always | ||||
|     network_mode: none | ||||
|     privileged: true | ||||
|     volumes: | ||||
|       - '/dev:/dev' | ||||
|       - '/sys:/sys:ro,rslave' | ||||
|       - '/run/node-exporter:/run/node-exporter' | ||||
|  | ||||
							
								
								
									
										8
									
								
								entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| #!/bin/bash | ||||
| while true; do | ||||
|   /scripts/smartmon.sh > /run/node-exporter/smart.prom | ||||
|   /scripts/nvme_metrics.sh > /run/node-exporter/nvme.prom | ||||
|   /scripts/bridge.sh > /run/node-exporter/bridge.prom | ||||
|   /scripts/ipmitool > /run/node-exporter/impitool.prom | ||||
|   sleep 15 | ||||
| done | ||||
		Reference in New Issue
	
	Block a user