首页 > 其他分享 >部署prometheus2.40.2

部署prometheus2.40.2

时间:2022-11-23 10:36:21浏览次数:81  
标签:node prometheus2.40 exporter ubuntu2004 部署 0.0 prometheus root

 

1、部署prometheus server

 官网下载地址:https://prometheus.io/download/
 ​
 [root@ubuntu2004 ~]#tar xf prometheus-2.40.2.linux-amd64.tar.gz -C /usr/local/
 ​
 [root@ubuntu2004 ~]#cd /usr/local/
 [root@ubuntu2004 local]#mv prometheus-2.40.2.linux-amd64 prometheus-2.40.2
 [root@ubuntu2004 local]#ln -s /usr/local/prometheus-2.40.2 /usr/local/prometheus
 ​
 [root@ubuntu2004 local]#cd prometheus
 [root@ubuntu2004 prometheus]#ln -s /usr/local/prometheus/prometheus /usr/local/bin/
 [root@ubuntu2004 prometheus]#cp prometheus.yml{,.bak}
 ​
 #基于systemd管理启动、停止
 [root@ubuntu2004 prometheus]#vim /usr/lib/systemd/system/prometheus.service
 [Unit]
 Description=Monitoring system and time series database
 Documentation=https://prometheus.io/docs/introduction/overview/
 ​
 [Service]
 Restart=always
 #User=prometheus
 ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
 ExecReload=/bin/kill -HUP $MAINPID
 TimeoutStopSec=20s
 SendSIGKILL=no
 LimitNOFILE=8192
 ​
 [Install]
 WantedBy=multi-user.target
 ​
 [root@ubuntu2004 prometheus]#systemctl daemon-reload
 ​
 [root@ubuntu2004 prometheus]#systemctl stop prometheus.service 
 [root@ubuntu2004 prometheus]#systemctl start prometheus.service 
 [root@ubuntu2004 prometheus]#ss -ntlp
 State  Recv-Q  Send-Q   Local Address:Port   Peer Address:Port Process                                    
 LISTEN 0       128            0.0.0.0:22          0.0.0.0:*     users:(("sshd",pid=772,fd=3))             
 LISTEN 0       4096     127.0.0.53%lo:53          0.0.0.0:*     users:(("systemd-resolve",pid=739,fd=13)) 
 LISTEN 0       128               [::]:22             [::]:*     users:(("sshd",pid=772,fd=4))             
 LISTEN 0       4096                 *:9090              *:*     users:(("prometheus",pid=6640,fd=3))

image-20221121204834909

2、部署node exporter

 #prometheus节点:
 [root@ubuntu2004 ~]#tar xf node_exporter-1.4.0.linux-amd64.tar.gz
 [root@ubuntu2004 ~]#cd node_exporter-1.4.0.linux-amd64/
 [root@ubuntu2004 node_exporter-1.4.0.linux-amd64]#mv node_exporter /usr/local/bin/
 ​
 [root@ubuntu2004 node_exporter-1.4.0.linux-amd64]#vim /usr/lib/systemd/system/exporter.service 
 ​
 [Unit]
 Description=node_exporter
 Documentation=https://prometheus.io/
 After=network.target
 ​
 [Service]
 Type=simple
 #User=prometheus
 ExecStart=/usr/local/bin/node_exporter  --collector.ntp --collector.mountstats --collector.systemd --collector.ethtool --collector.tcpstat
 ExecReload=/bin/kill -HUP $MAINPID
 TimeoutStopSec=20s
 Restart=always
 ​
 [Install]
 WantedBy=multi-user.target
 ​
 ​
 [root@ubuntu2004 node_exporter-1.4.0.linux-amd64]#systemctl daemon-reload 
 [root@ubuntu2004 node_exporter-1.4.0.linux-amd64]#systemctl start exporter.service 
 ​
 [root@ubuntu2004 ~]#ss -ntlp
 State  Recv-Q  Send-Q   Local Address:Port   Peer Address:Port Process                                    
 LISTEN 0       128            0.0.0.0:22          0.0.0.0:*     users:(("sshd",pid=772,fd=3))             
 LISTEN 0       4096     127.0.0.53%lo:53          0.0.0.0:*     users:(("systemd-resolve",pid=739,fd=13)) 
 LISTEN 0       128               [::]:22             [::]:*     users:(("sshd",pid=772,fd=4))             
 LISTEN 0       4096                 *:9090              *:*     users:(("prometheus",pid=6640,fd=3))      
 LISTEN 0       4096                 *:9100              *:*     users:(("node_exporter",pid=51385,fd=7))
 #其他被监控节点:
 [root@ubuntu2004 ~]#tar xf node_exporter-1.4.0.linux-amd64.tar.gz 
 [root@ubuntu2004 ~]#mv node_exporter-1.4.0.linux-amd64/node_exporter /usr/local/bin/
 [root@ubuntu2004 ~]#vim /usr/lib/systemd/system/exporter.service 
 [Unit]
 Description=node_exporter
 Documentation=https://prometheus.io/
 After=network.target
 ​
 [Service]
 Type=simple
 ExecStart=/usr/local/bin/node_exporter 
 ExecReload=/bin/kill -HUP $MAINPID
 TimeoutStopSec=20s
 Restart=always
 ​
 [Install]
 WantedBy=multi-user.target
 ​
 [root@ubuntu2004 ~]#systemctl daemon-reload 
 [root@ubuntu2004 ~]#systemctl start exporter.service 
 ​
 [root@ubuntu2004 ~]#ss -ntlp
 State  Recv-Q  Send-Q   Local Address:Port   Peer Address:Port Process                                    
 LISTEN 0       4096     127.0.0.53%lo:53          0.0.0.0:*     users:(("systemd-resolve",pid=739,fd=13)) 
 LISTEN 0       128            0.0.0.0:22          0.0.0.0:*     users:(("sshd",pid=772,fd=3))             
 LISTEN 0       4096                 *:9100              *:*     users:(("node_exporter",pid=46958,fd=3))  
 LISTEN 0       128               [::]:22             [::]:*     users:(("sshd",pid=772,fd=4))  

3、修改prometheus配置监控各节点

 [root@ubuntu2004 prometheus]#pwd
 /usr/local/prometheus
 [root@ubuntu2004 prometheus]#vim prometheus.yml
 ......
   - job_name: "node_exporter"
     metrics_path: '/metrics'
     scheme: 'http'
     static_configs:
       - targets:
         - "10.0.0.101:9100"
         - "10.0.0.102:9100"
         - "10.0.0.103:9100"
 [root@ubuntu2004 prometheus]#systemctl restart prometheus.service

image-20221122104753552

4、基于文件自动发现节点

 [root@ubuntu2004 prometheus]#mkdir targets
 [root@ubuntu2004 prometheus]#vim targets/node-linux.yaml
 - targets:
   - 10.0.0.101:9100
   - 10.0.0.102:9100
   - 10.0.0.103:9100
   labels:
     os: ubuntu
 ​
 #更改配置为:
 [root@ubuntu2004 prometheus]#vim prometheus.yml
 ......
   - job_name: "node_exporter"
     metrics_path: '/metrics'
     scheme: 'http'
     file_sd_configs:
       - files:
           - targets/node*.yaml
         refresh_interval: 2m
 ​
 ​
 [root@ubuntu2004 prometheus]#systemctl restart prometheus.service 
 [root@ubuntu2004 prometheus]#systemctl status prometheus.service

image-20221122135215849

5、基于consul自动发现监控节点

 [root@ubuntu2004 ~]#curl -LO https://releases.hashicorp.com/consul/1.14.1/consul_1.14.1_linux_amd64.zip
 [root@ubuntu2004 ~]#unzip consul_1.14.1_linux_amd64.zip 
 ​
 [root@ubuntu2004 ~]#mv consul /usr/local/bin
 [root@ubuntu2004 ~]#mkdir -pv /consul/data
 [root@ubuntu2004 ~]#mkdir /etc/consul
 ​
 #以开发者模式运行:
 [root@ubuntu2004 ~]#consul agent -dev -ui -data-dir=/consul/data/ --config-dir=/etc/consul -client=0.0.0.0

image-20221122142443625

 [root@ubuntu2004 ~]#vim /etc/consul/nodes.json
 {
   "services": [
     {
       "id": "node_exporter-node01",
       "name": "103.wang.org",
       "address": "10.0.0.103",
       "port": 9100,
       "tags": ["nodes"],
       "checks": [{
         "http": "http://10.0.0.103:9100/metrics",
         "interval": "5s"
       }]
     },
     {
       "id": "node_exporter-node02",
       "name": "102.wang.org",
       "address": "10.0.0.102",
       "port": 9100,
       "tags": ["nodes"],
       "checks": [{
         "http": "http://10.0.0.102:9100/metrics",
         "interval": "5s"
       }]
     },
     {
       "id": "node_exporter-node03",
       "name": "prometheus-server",
       "address": "10.0.0.101",
       "port": 9100,
       "tags": ["nodes"],
       "checks": [{
         "http": "http://10.0.0.101:9100/metrics",
         "interval": "5s"
       }]
     }
   ]
 }
 ​

image-20221122143517391

 #修改配置文件:
 [root@ubuntu2004 prometheus]#vim prometheus.yml
 .......
   - job_name: "node_exporter"
     metrics_path: '/metrics'
     scheme: 'http'
     consul_sd_configs:
     - server: "10.0.0.101:8500"
       tags:
       - "nodes"
       refresh_interval: 2m 
       
 [root@ubuntu2004 prometheus]#systemctl reload prometheus.service 

image-20221122144210297

6、基于docker-compose部署prometheus

温馨提示:所有节点提前部署好docker和docker-compose,如需脚本,请参照:https://blog.51cto.com/dayu/5878166

避免冲突,请提前关闭宿主机部署的prometheus和node-exporter

6-1、部署prometheus
 [root@ubuntu2004 01-prometheus-basics-example]#tree
 .
 ├── docker-compose.yml
 ├── prometheus
 │?? ├── prometheus.yml
 │?? └── targets
 │??     ├── nodes-linux.yaml
 │??     └── prometheus-servers.yaml
 └── README.md
 ​
 ​
 [root@ubuntu2004 01-prometheus-basics-example]#cat docker-compose.yml
 version: '3.6'
 ​
 volumes:
     prometheus_data: {}
 ​
 networks:
   monitoring:
     driver: bridge
 ​
 services:
 ​
   prometheus:
     image: prom/prometheus:v2.40.2
     volumes:
       - ./prometheus/:/etc/prometheus/
       - prometheus_data:/prometheus
     command:
       - '--config.file=/etc/prometheus/prometheus.yml'
       - '--storage.tsdb.path=/prometheus'
       - '--web.console.libraries=/usr/share/prometheus/console_libraries'
       - '--web.console.templates=/usr/share/prometheus/consoles'
       - '--web.enable-lifecycle'
     networks:
       - monitoring
     ports:
       - 9090:9090
     restart: always
 ​
   node-exporter:
     image: prom/node-exporter:v1.4.0
     volumes:
       - /proc:/host/proc:ro
       - /sys:/host/sys:ro
       - /:/rootfs:ro
     command:
       - '--path.procfs=/host/proc'
       - '--path.sysfs=/host/sys'
       - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
       - '--path.rootfs=/rootfs'
     ports:
       - 9100:9100
     networks:
       - monitoring
     restart: always
 ​
 ​
 [root@ubuntu2004 01-prometheus-basics-example]#cd prometheus/
 [root@ubuntu2004 prometheus]#ls
 prometheus.yml  targets
 [root@ubuntu2004 prometheus]#cat prometheus.yml 
 # my global config
 # Author: MageEdu <[email protected]>
 # Repo: http://gitlab.magedu.com/MageEdu/prometheus-configs/
 global:
   scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
   evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
   # scrape_timeout is set to the global default (10s).
 ​
 # Alertmanager configuration
 alerting:
   alertmanagers:
   - static_configs:
     - targets:
       # - alertmanager:9093
 ​
 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
 rule_files:
   # - "first_rules.yml"
   # - "second_rules.yml"
 ​
 # A scrape configuration containing exactly one endpoint to scrape:
 # Here it's Prometheus itself.
 scrape_configs:
   # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
   - job_name: 'prometheus'
 ​
     # metrics_path defaults to '/metrics'
     # scheme defaults to 'http'.
 ​
     static_configs:
     - targets:
       - localhost:9090
 ​
   # All nodes
   - job_name: 'nodes'
     file_sd_configs:
     - files:                                               
       - targets/nodes-*.yaml  
       refresh_interval: 2m 
       
  
 [root@ubuntu2004 prometheus]#cd targets/
 [root@ubuntu2004 targets]#ls
 nodes-linux.yaml  prometheus-servers.yaml
 [root@ubuntu2004 targets]#cat prometheus-servers.yaml 
 - targets:
   - localhost:9090
   labels:
     app: prometheus
     job:  prometheus
 [root@ubuntu2004 targets]#cat nodes-linux.yaml 
 - targets:
   - 10.0.0.101:9100
   - 10.0.0.102:9100
   - 10.0.0.103:9100
   labels:
     app: node-exporter
 ​
 [root@ubuntu2004 targets]#cd ../..
 [root@ubuntu2004 01-prometheus-basics-example]#ls
 docker-compose.yml  prometheus  README.md
 ​
 [root@ubuntu2004 01-prometheus-basics-example]#docker-compose up -d
 Creating 01-prometheus-basics-example_node-exporter_1 ... done
 Creating 01-prometheus-basics-example_prometheus_1    ... done
 [root@ubuntu2004 01-prometheus-basics-example]#docker-compose ps
                     Name                                  Command               State                    Ports                  
 --------------------------------------------------------------------------------------------------------------------------------
 01-prometheus-basics-example_node-exporter_1   /bin/node_exporter --path. ...   Up      0.0.0.0:9100->9100/tcp,:::9100->9100/tcp
 01-prometheus-basics-example_prometheus_1      /bin/prometheus --config.f ...   Up      0.0.0.0:9090->9090/tcp,:::9090->9090/tcp
 ​
 [root@ubuntu2004 00-node-exporter]#ss -ntlp
 State             Recv-Q            Send-Q                       Local Address:Port                       Peer Address:Port           Process                                              
 LISTEN            0                 128                                0.0.0.0:22                              0.0.0.0:*               users:(("sshd",pid=772,fd=3))                       
 LISTEN            0                 4096                               0.0.0.0:9090                            0.0.0.0:*               users:(("docker-proxy",pid=65747,fd=4))             
 LISTEN            0                 4096                               0.0.0.0:9100                            0.0.0.0:*               users:(("docker-proxy",pid=65721,fd=4))             
 LISTEN            0                 4096                         127.0.0.53%lo:53                              0.0.0.0:*               users:(("systemd-resolve",pid=739,fd=13))           
 LISTEN            0                 128                                   [::]:22                                 [::]:*               users:(("sshd",pid=772,fd=4))                       
 LISTEN            0                 4096                                  [::]:9090                               [::]:*               users:(("docker-proxy",pid=65754,fd=4))             
 LISTEN            0                 4096                                  [::]:9100                               [::]:*               users:(("docker-proxy",pid=65730,fd=4))  
 ​

image-20221122152924101

6-2、部署node-exporter
 [root@ubuntu2004 ~]#cat docker-compose.yml
 version: '3.3'
 ​
 volumes:
     prometheus_data: {}
 ​
 networks:
   monitoring:
     driver: bridge
 ​
 services:
   node-exporter:
     image: prom/node-exporter:v1.4.0
     volumes:
       - /proc:/host/proc:ro
       - /sys:/host/sys:ro
       - /:/rootfs:ro
     command:
       - '--path.procfs=/host/proc'
       - '--path.sysfs=/host/sys'
       - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
       - '--path.rootfs=/rootfs'
     ports:
       - 9100:9100
     networks:
       - monitoring
     restart: always
     
     
     
 [root@ubuntu2004 ~]#docker-compose up -d
 ​
 [root@ubuntu2004 ~]#ss -ntlp
 State             Recv-Q            Send-Q                       Local Address:Port                       Peer Address:Port           Process                                              
 LISTEN            0                 4096                               0.0.0.0:9100                            0.0.0.0:*               users:(("docker-proxy",pid=61112,fd=4))             
 LISTEN            0                 4096                         127.0.0.53%lo:53                              0.0.0.0:*               users:(("systemd-resolve",pid=740,fd=13))           
 LISTEN            0                 128                                0.0.0.0:22                              0.0.0.0:*               users:(("sshd",pid=773,fd=3))                       
 LISTEN            0                 4096                                  [::]:9100                               [::]:*               users:(("docker-proxy",pid=61118,fd=4))             
 LISTEN            0                 128                                   [::]:22                                 [::]:*               users:(("sshd",pid=773,fd=4))

标签:node,prometheus2.40,exporter,ubuntu2004,部署,0.0,prometheus,root
From: https://www.cnblogs.com/wdy001/p/16917476.html

相关文章

  • IDEA热部署插件
    JRebelandXRebel插件 一、开启IDEA配置二、生成GUID(1)生成GUID生成器地址:https://www.guidgen.comhttp://www.ofmonkey.com/transfer/guidhttps://www.guidgenera......
  • 使用jenkins部署gitbook
    声明文章仅记录jenkins推送脚本和部分注解,方便个人复制使用。有基础的人可以参考。#环境变量exportGOROOT=/data/go1.9exportPATH=${PATH}:${GOROOT}/binexportGOPATH=/......
  • nginx 部署前端项目
    前言nginx如何部署打包成为dist的前端项目。读者须知:nginx如何安装与使用PSdocker安装与使用​​​dockerpullnginx​​​​dockerrun--restart=on-failure:20-itd......
  • Linux 系统自动化部署系统
    linux安装光盘中的相关文件:[root@Centos8cdrom]#lsBaseOSEFIimagesisolinuxLICENSEmedia.repoMinimalTRANS.TBL#isolinux:存放和安装相关的文件[root@......
  • 小公司的应用服务部署历程
    小公司的应用服务部署历程 先声明一下:我所在的公司是一个小团队,做物联网相关的,前后端、硬件、测试加起来也就五六十个人左右;本人的岗位是Java开发(兼DBA、运维。。。);......
  • Linux 下部署 kkFileView
    Linux下部署kkFileViewgitee:kkFileView标签-Gitee.com官网:kkFileView-在线文件预览(keking.cn)在gitee中下载tar包。解压后进入bin目录,执行./install.sh......
  • Jenkins服务器的部署与简单使用(第三周)
    Jenkins安装安装依赖:https://www.jenkins.io/zh/doc/book/installing/    #CPU、内存、磁盘安装Java8、在2.361.1及以上版本开始要求Java11:aptinstallopenj......
  • 知行之桥EDI系统2022版Tomcat部署
    1.首先需要下载Tomcat,可在Tomcat官网获取,本部署步骤以apache-tomcat-9.0.67.tar.gz为例,通过XFTP将该包放在服务器上的指定位置,如/opt/test进入/opt/test文件夹后,在命令行执......
  • linux上部署皕杰报表小结
    最近需要在一个服务器上部署皕杰报表,连接的是mysql的库。步骤如下:1.首先先下载jdk,配置相应的Java环境。2.下载mysql,上官网下载相应的rpm包。3.安装好mysql后,使用dbeaver工具......
  • Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署
    Jenkins+Maven+Gitlab+Tomcat自动化构建打包、部署笔记版本控制概念记录开发文件的时间机器更好的开发,挽回代码错误带来的损失分类本地版本控制系统集中......