User Tools

Site Tools


сервис_prometheus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
сервис_prometheus [2021/04/19 16:42]
val [prometheus-blackbox-exporter]
сервис_prometheus [2023/06/27 09:51]
val [prometheus-snmp-exporter]
Line 4: Line 4:
   * [[https://​habr.com/​ru/​company/​southbridge/​blog/​455290/​|Полное руководство по Prometheus в 2019 году]]   * [[https://​habr.com/​ru/​company/​southbridge/​blog/​455290/​|Полное руководство по Prometheus в 2019 году]]
   * [[https://​www.shellhacks.com/​ru/​prometheus-delete-time-series-metrics/​|Prometheus:​ Удаление Метрик Временных Рядов]]   * [[https://​www.shellhacks.com/​ru/​prometheus-delete-time-series-metrics/​|Prometheus:​ Удаление Метрик Временных Рядов]]
 +  * [[https://​habr.com/​ru/​companies/​tochka/​articles/​683608/​|Человеческим языком про метрики]]
  
-===== Установка в Debian ​10 ===== +===== Установка в Debian/​Ubuntu ​=====
- +
-  * [[Сервис MTA#​Установка и настройка MTA на обработку почты домена hostname]]+
  
 <​code>​ <​code>​
 # apt install prometheus # apt install prometheus
 +
 +# less /​etc/​prometheus/​prometheus.yml
 +</​code><​code>​
 +...
 +global:
 +  scrape_interval: ​    15s
 +...
 </​code>​ </​code>​
  
Line 24: Line 30:
  
   * [[http://​server.corpX.un:​9090/​targets]]   * [[http://​server.corpX.un:​9090/​targets]]
 +  * [[http://​server:​9090/​classic/​targets]]
   * [[http://​192.168.X.10:​9090/​metrics]]   * [[http://​192.168.X.10:​9090/​metrics]]
   * [[http://​10.5.N.100+X:​9090/​graph]]   * [[http://​10.5.N.100+X:​9090/​graph]]
Line 36: Line 43:
   * [[https://​www.digitalocean.com/​community/​tutorials/​how-to-use-alertmanager-and-blackbox-exporter-to-monitor-your-web-server-on-ubuntu-16-04|How To Use Alertmanager And Blackbox Exporter To Monitor Your Web Server On Ubuntu 16.04]]   * [[https://​www.digitalocean.com/​community/​tutorials/​how-to-use-alertmanager-and-blackbox-exporter-to-monitor-your-web-server-on-ubuntu-16-04|How To Use Alertmanager And Blackbox Exporter To Monitor Your Web Server On Ubuntu 16.04]]
   * [[https://​awesome-prometheus-alerts.grep.to/​|Awesome Prometheus alerts]]   * [[https://​awesome-prometheus-alerts.grep.to/​|Awesome Prometheus alerts]]
 +
 +  * [[Сервис MTA#​Установка и настройка MTA на обработку почты домена hostname]]
  
 <​code>​ <​code>​
Line 47: Line 56:
   smtp_from: '​prometheus@server.corpX.un'​   smtp_from: '​prometheus@server.corpX.un'​
   smtp_require_tls:​ false   smtp_require_tls:​ false
 +#  smtp_auth_username:​ '​alertmanager'​
 +#  smtp_auth_password:​ '​password'​
 ... ...
   # A default receiver   # A default receiver
Line 54: Line 65:
 - name: '​team-X-mails'​ - name: '​team-X-mails'​
   email_configs:​   email_configs:​
-  ​send_resolved:​ true +#  ​- to: '​student@corpX.un'​ 
-    ​to: '​student@corpX.un'​+#  - to: '​userX@isp.un'​ 
 +    send_resolved:​ true
 ... ...
 </​code><​code>​ </​code><​code>​
 +# service prometheus-alertmanager restart
 +
 # cat /​etc/​prometheus/​first_rules.yml # cat /​etc/​prometheus/​first_rules.yml
 </​code><​code>​ </​code><​code>​
Line 81: Line 95:
  
   - alert: CriticalTraffic   - alert: CriticalTraffic
-    expr: rate(if_in_octets{instance="​router"​}[1m])>​125000+    expr: rate(ifInOctets{instance="​router"​}[1m])>​125000
     for: 1m     for: 1m
     labels:     labels:
Line 113: Line 127:
 ... ...
 </​code>​ </​code>​
 +
 +  * [[http://​192.168.X.10:​9090/​alerts]]
 ===== Exporters ===== ===== Exporters =====
  
 ==== prometheus-node-exporter ==== ==== prometheus-node-exporter ====
  
-  * В Debian ставится как зависимость к пакету prometheus и добавлен в конфигурацию+  * В Debian/​Ubuntu ​ставится как зависимость к пакету prometheus и добавлен в конфигурацию
   * [[http://​server.corpX.un:​9100/​metrics]]   * [[http://​server.corpX.un:​9100/​metrics]]
  
Line 128: Line 144:
 /​dev/​mapper/​debian--vg-root ​ 15662008 1877488 ​ 12969212 ​ 13% / /​dev/​mapper/​debian--vg-root ​ 15662008 1877488 ​ 12969212 ​ 13% /
 ... ...
 +# TYPE node_filesystem_free_bytes gauge
 node_filesystem_free_bytes{device="/​dev/​mapper/​debian--vg-root",​fstype="​ext4",​mountpoint="/"​} = (15662008 - 1877488) * 1024  node_filesystem_free_bytes{device="/​dev/​mapper/​debian--vg-root",​fstype="​ext4",​mountpoint="/"​} = (15662008 - 1877488) * 1024 
 </​code>​ </​code>​
Line 134: Line 150:
 == node_network_receive_bytes_total == == node_network_receive_bytes_total ==
 <​code>​ <​code>​
-$ cat /​sys/​class/​net/​eth1/​statistics/​rx_bytes+$ cat /​sys/​class/​net/​eth0/​statistics/​rx_bytes 
 +  или 
 +$ cat /​sys/​class/​net/​bond0/​statistics/​rx_bytes
  
-node_network_receive_bytes_total{device="​eth1"}+# TYPE node_network_receive_bytes_total counter 
 +node_network_receive_bytes_total{device="​bond0"}
 </​code>​ </​code>​
  
Line 155: Line 174:
 8*rate(node_network_receive_bytes_total[1m]) 8*rate(node_network_receive_bytes_total[1m])
  
-8*rate(node_network_receive_bytes_total{device="​eth1"​}[1m])+8*rate(node_network_receive_bytes_total{device="​bond0"​}[1m])
  
-8*rate(node_network_receive_bytes_total{device="​eth1",​instance="​localhost:​9100",​job="​node"​}[1m])+8*rate(node_network_receive_bytes_total{device="​eth0",​instance="​localhost:​9100",​job="​node"​}[1m])
 </​code>​ </​code>​
  
Line 185: Line 204:
 # cat /​etc/​prometheus/​prometheus.yml # cat /​etc/​prometheus/​prometheus.yml
 </​code><​code>​ </​code><​code>​
 +...
   - job_name: check_http   - job_name: check_http
     metrics_path:​ /probe     metrics_path:​ /probe
Line 191: Line 211:
     static_configs:​     static_configs:​
       - targets:       - targets:
-        - http://val.bmstu.ru+        - https://google.com
         - https://​ya.ru         - https://​ya.ru
     relabel_configs:​     relabel_configs:​
Line 199: Line 219:
         target_label:​ instance         target_label:​ instance
       - target_label:​ __address__       - target_label:​ __address__
-        replacement: ​127.0.0.1:9115+        replacement: ​localhost:9115
  
   - job_name: check_ssh   - job_name: check_ssh
Line 216: Line 236:
         target_label:​ instance         target_label:​ instance
       - target_label:​ __address__       - target_label:​ __address__
-        replacement: ​127.0.0.1:9115+        replacement: ​localhost:9115
 </​code>​ </​code>​
  
   * [[#​Проверка конфигурации и перезапуск]]   * [[#​Проверка конфигурации и перезапуск]]
-  * [[http://​server.corpX.un:​9115/​]] Blackbox Exporter->​Logs и [[http://​server.corpX.un:​9100/metrics]]+  * [[http://​server.corpX.un:​9115/​]] Blackbox Exporter->​Logs и [[http://​server.corpX.un:​9090/graph]]
  
 <​code>​ <​code>​
Line 262: Line 282:
 </​code><​code>​ </​code><​code>​
 # cat /​etc/​prometheus/​switchs.yml # cat /​etc/​prometheus/​switchs.yml
 +</​code><​code>​
 - targets: - targets:
   - switch1   - switch1
Line 276: Line 297:
 <​code>​ <​code>​
 # apt install prometheus-snmp-exporter # apt install prometheus-snmp-exporter
 +</​code>​
  
 +=== Создание файла конфигурации "​вручную"​ ===
 +
 +<​code>​
 # cat /​etc/​prometheus/​snmp.yml # cat /​etc/​prometheus/​snmp.yml
 </​code><​code>​ </​code><​code>​
Line 289: Line 314:
   - 1.3.6.1.2.1.2.2.1.2   - 1.3.6.1.2.1.2.2.1.2
   metrics:   metrics:
-  - name: if_in_octets+  - name: ifInOctets
     oid: 1.3.6.1.2.1.2.2.1.10     oid: 1.3.6.1.2.1.2.2.1.10
     type: counter     type: counter
Line 301: Line 326:
       oid: 1.3.6.1.2.1.2.2.1.2       oid: 1.3.6.1.2.1.2.2.1.2
       type: DisplayString       type: DisplayString
-  - name: if_out_octets+  - name: ifOutOctets
     oid: 1.3.6.1.2.1.2.2.1.16     oid: 1.3.6.1.2.1.2.2.1.16
     type: counter     type: counter
Line 313: Line 338:
       oid: 1.3.6.1.2.1.2.2.1.2       oid: 1.3.6.1.2.1.2.2.1.2
       type: DisplayString       type: DisplayString
-</​code><​code>​+</​code>​ 
 + 
 +=== Создание файла конфигурации через "​generator"​ === 
 + 
 +<​code>​ 
 +# cp /​usr/​share/​doc/​prometheus-snmp-exporter/​examples/​generator.yml . 
 + 
 +# prometheus-snmp-generator generate 
 + 
 +# cp snmp.yml /​etc/​prometheus/​snmp.yml 
 +</​code>​ 
 + 
 +=== Примеры использования === 
 + 
 +<​code>​
 # service prometheus-snmp-exporter restart # service prometheus-snmp-exporter restart
 +</​code>​
  
 +  * [[http://​server.corpX.un:​9116/​]]
 +
 +<​code>​
 # curl --noproxy 127.0.0.1 '​http://​127.0.0.1:​9116/​snmp?​target=router&​module=snmp_in_out_octets'​ # curl --noproxy 127.0.0.1 '​http://​127.0.0.1:​9116/​snmp?​target=router&​module=snmp_in_out_octets'​
 +  или
 +# curl '​http://​127.0.0.1:​9116/​snmp?​target=router'​
 </​code><​code>​ </​code><​code>​
 # cat /​etc/​prometheus/​prometheus.yml # cat /​etc/​prometheus/​prometheus.yml
Line 326: Line 371:
         - router         - router
     metrics_path:​ /snmp     metrics_path:​ /snmp
-    params: +    params: ​                              # no need  
-      module: [snmp_in_out_octets]+      module: [snmp_in_out_octets] ​       # if if_mib
     relabel_configs:​     relabel_configs:​
       - source_labels:​ [__address__]       - source_labels:​ [__address__]
Line 334: Line 379:
         target_label:​ instance         target_label:​ instance
       - target_label:​ __address__       - target_label:​ __address__
-        replacement: ​server:9116+        replacement: ​localhost:9116
 </​code>​ </​code>​
  
Line 340: Line 385:
  
 <​code>​ <​code>​
-rate(if_in_octets{ifDescr="​FastEthernet1/​1",​ifIndex="​3",​instance="​router",​job="​snmp"​}[1m])+rate(ifInOctets{ifDescr="​FastEthernet0/0",​ifIndex="​1",instance="​router",​job="​snmp"​}[1m]) 
 +  или 
 +rate(ifOutOctets{ifIndex="​5",​instance="​router",​job="​snmp"​}[1m])
  
-8*rate(if_in_octets{ifDescr="​FastEthernet1/1",​instance="​router"​}[1m])+8*rate(ifInOctets{ifDescr="​FastEthernet0/0",​instance="​router"​}[1m]) 
 +  или 
 +8*rate(ifOutOctets{ifDescr="​Port-channel1",​instance="​router"​}[1m])
 </​code>​ </​code>​
  
Line 354: Line 403:
 </​code><​code>​ </​code><​code>​
 ... ...
-  - job_name: 'Pushgateway'+  - job_name: 'pushgateway'
     honor_labels:​ true     honor_labels:​ true
     static_configs:​     static_configs:​
Line 382: Line 431:
 </​code><​code>​ </​code><​code>​
 ip_dhcp_binding{dhcp_server="​router",​job="​cisco_dhcp",​net="​192.168"​} ip_dhcp_binding{dhcp_server="​router",​job="​cisco_dhcp",​net="​192.168"​}
 +</​code><​code>​
 +# crontab -l
 +</​code><​code>​
 +* * * * * /​root/​ip_dhcp_binding.sh
 </​code>​ </​code>​
сервис_prometheus.txt · Last modified: 2023/10/12 16:54 by val