虚拟机所需cpu:8个cpu及以上
安装docker 映像:   yum install -y docker-io
启动docker 守护线程:sudo systemctl start docker

下载镜像包

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana

启动 node-exporter

docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  prom/node-exporter
安装netstat 命令:
sudo yum install net-tools
查看 端口是否起来:
netstat -anpt
访问url:虚拟机ip:9100
检查哪个占用了端口:
sudo netstat -tuln | grep 9100



访问URL发现拒绝访问

发现是由于防火墙开着,所以访问不了

查看防火墙:sudo systemctl status firewalld

停止防火墙:sudo systemctl stop firewalld

禁止防火墙开机启动:sudo systemctl disable firewalld

开放指定端口:firewall-cmd --zone=public --add-port=9100/tcp --permanent

关闭指定端口:firewall-cmd --zone=public --remove-port=5672/tcp --permanent

重启防火墙:firewall-cmd --reload

参考文章:Docker环境部署Prometheus实践 - 知乎 (zhihu.com)
重新拉取镜像:docker pull zhanganmin2017/prometheus:v2.9.0
检查cpu核心:cat /proc/cpuinfo | grep 'processor' | wc -l
运行docker: 
 systemctl start docker
生成镜像并运行容器服务:docker run -itd  -h prometheus139-210 -m 8g  --cpuset-cpus=0-7  --name=prometheus139-210 --network trust139  --ip=10.1.133.28  -v /data/works/prometheus139-210:/data  192.168.166.229/1an/prometheus:v2.9.0

安装prometheus server(server安装)

新建prometheus文件夹,修改prometheus.yml文件
mkdir /opt/prometheus
进入目录:
cd /opt/prometheus
编辑prometheus.yml文件
vi prometheus.yml
贴入如下命令:
global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

# 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'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:9090']
启动 prometheus命令:
docker run -d \  
  --name prometheus \  
  -p 9090:9090 \  
  -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \  
  prom/prometheus
利用下边命令检查一下:
docker ps -a
启动prometheus容器:
docker start 容器号
再次检查:
docker ps -a
如果为up态,直接访问主页 ['localhost:9090']

安装grafana

新建空文件夹grafana-storage,用来存储数据
mkdir /opt/grafana-storage
进入目录:
cd /opt/grafana-storage
设置权限(grafana用户会在该目录中写入文件),执行如下命令
chmod 777 -R /opt/grafana-storage
启动grafana,执行如下命令
docker run -d -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana
访问URL:http://localhost:3000/login
 
默认用户名和密码都是admin,首次登录需要修改
用户名密码都是admin
选择数据源

prometheus监控SpringBoot项目

grafana模板号:10280

1、SpringBoot项目中,添加pom依赖:
<dependency>  
    <groupId>io.prometheus</groupId>  
    <artifactId>simpleclient</artifactId>  
    <version>0.6.0</version>  
</dependency>  
<dependency>  
    <groupId>io.prometheus</groupId>  
    <artifactId>simpleclient_spring_boot</artifactId>  
    <version>0.6.0</version>  
</dependency>
2、配置Prometheus属性

在application.properties文件中添加以下配置:
spring.metrics.export.prometheus.enabled=true  
spring.metrics.export.prometheus.interval=10s  
spring.metrics.export.prometheus.step=10s
启动springboot项目
浏览器输入:localhost:项目端口号
localhost:9081/actuator/prometheus
看到指标之后,可以将jar包放到虚拟机服务器上,在虚拟机中启动之后,进行vi /prometheus.yml配置
并在grafana中输入 prometheus server ip进行监控。prometheus server ip 就是 虚拟机ip:prometheus端口号

prometheus监控Linux主机项目

模板号:8919

例如:监控虚拟机 172.16.50.246
1、在需要监控的主机安装node-exporter
docker pull prom/node-exporter
docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  prom/node-exporter
2、配置Prometheus属性 vi prometheus.yml 

prometheus监控Mysql

模板号:11323

 
将 mysqld_exporter-0.14.0.linux-amd64.tar.gz 放到要监控的虚拟机上
进行解压:
tar zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /opt
创建软链接
ln -s /opt/mysqld_exporter-0.14.0.linux-amd64/ /opt/mysqld_exporter
在 MySQL 上创建监控用户
create user 'exporter'@'localhost'  IDENTIFIED BY 'mysql';
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'exporter'@'localhost';
新建一个配置文件:
vim /opt/mysqld_exporter/mysqld_exporter.cnf
配置 MySQL 监控用户信息:
[client]
user=exporter
password=mysql
启动 mysqld_exporter
nohup /opt/mysqld_exporter/mysqld_exporter  --config.my-cnf=/opt/mysqld_exporter/mysqld_exporter.cnf &
配置 prometheus.yml
- job_name: 'mysql-123'    static_configs:    - targets: ['192.168.150.123:9104']

prometheus监控某个进程服务

例如 监控172.16.50.66中的 nexus进程服务

模板号:249

参考文章:prometheus监控之进程监控(process-exporter) - 个人文章 - SegmentFault 思否

1、在虚拟机172.16.50.66中 利用 docker 拉取 process_exproter镜像
命令如:docker pull ncabatoff/process-exporter
2、创建 /opt/process_exporter/process_exporter.yml文件,进行对nexus配置
配置如:
- pattern: '.*nexus start.*'  
  source: args  
  name: nexus  
  labels:  
    application: nexus
3、docker 启动:
docker run -d --name process-exporter --pid=host -v /opt/process_exporter/process_exporter.yml:/etc/process-exporter/process-exporter.yml -p 9256:9256 ncabatoff/process-exporter
4、在 prometheus(50.239虚拟机中)进行 prometheus.yml 配置
 

prometheus监控rabbitmq

例如 监控172.16.50.64中的rabbitmq服务

模板号:4279

参考文章Prometheus + Grafana(九)系统监控之RabbitMQ - 曹伟雄 - 博客园 (cnblogs.com)

1、安装 rabbit-exporter
docker 方式:1、拉取镜像:docker pull kbudde/rabbitmq-exporter
             2、 启动 rabbitmq-exporter: docker run -d --name rabbitmq-exporter -p 9419:9419 \  
  -e RABBITMQ_URL="http://172.16.50.68:15672" \  
  -e RABBITMQ_USER="jsbr" \  
  -e RABBITMQ_PASSWORD="jsbr" \  
  kbudde/rabbitmq-exporter
2、进行 prometheus.yml进行配置
  - job_name: rabbitmq
    static_configs:
      - targets:
          - '172.16.50.68:9419'
3、在grafana:172.16.50.239:3000中 添加 模板,模板号可以使用 4279。

prometheus监控Redis

模板号:11835

文章参考Grafana+Prometheus系统监控之Redis_prometheus监控redis-CSDN博客

在目标虚拟机上边安装 redis-exporter
wget https://github.com/oliver006/redis_exporter/releases/download/v0.24.0/redis_exporter-v0.24.0.linux-amd64.tar.gz
解压命令:
tar -xf  redis_exporter-v0.24.0.linux-amd64.tar.gz  -C  /usr/local/prometheus
启动redis_exporter登陆redis
## 无密码
nohup ./redis_exporter -redis.addr 192.168.1.120:6379 &
## 有密码
nohup ./redis_exporter  -redis.addr 192.168.1.120:6379  -redis.password 123456 &
查看redis_exporte是否开启
netstat -lntp
tcp6       0      0 :::9121               :::*              LISTEN      32407/redis_exporte
查找 redis-exporter的位置
find / -name redis_exporter
添加PATH并执行dedis-exporter
安装nano命令
sudo yum install nano
编辑
nano ~/.bashrc 
在文件的末尾添加以下行:
复制代码
export PATH=$PATH:/usr/local/prometheus/redis_exporter
Ctrl+O保存,Crtl+X退出
刷新
source ~/.bashrc
启动
nohup /usr/local/prometheus/redis_exporter -redis.addr 172.16.50.60:6379 &





Nginx 安装

Nginx安装参考:【CentOS7快速上手】4、Nginx安装&配置 - Ken的杂谈

nginx监控参考:nginx全方面监控Fluentd+Nginx Prometheus Exporter - 掘金 (juejin.cn)

如何用Prometheus和Grafana监控Nginx_哔哩哔哩_bilibili

grafana模板 12708

/etc/nginx/nginx.conf
/etc/nginx/server/default.conf
/etc/nginx/conf.d/default.conf
监控指标
$remote_addr:客户端的IP地址。
$remote_user:如果有认证,客户端的用户名。
$time_local:本地时间的访问时间。
$request:完整的HTTP请求行。
$status:HTTP响应状态码。
$body_bytes_sent:发送给客户端的响应主体的大小(字节数)。
$http_referer:客户端的Referer头部(如果存在)。
$http_user_agent:客户端的用户代理头部(如果存在)。
$upstream_response_time:与上游服务器通信的响应时间。
查看 nginx日志:
tail -f 日志路径。


prometheus 安装alertmanager

启动命令: docker run -p 9093:9093 -v /opt/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml --restart=always prom/alertmanager:latest --config.file=/etc/alertmanager/alertmanager.yml --storage.path=/opt/alertmanager/data/
 

app-cloud工程中的druid管理界面开启配置下,需要调整配置在feat-observability分支下调整测试

配置文件:
test-on-borrow: true
test-on-return: true
stat-view-servlet:
  enabled: true
  allow: 127.0.0.1
  login-username: admin
  login-password: admin
filter:
  stat:
    enabled: true
    log-slow-sql: true
    slow-sql-millis: 5000
    merge-sql: false
filters: stat,wall

访问 ip:端口/druid
GitBash 构建项目 例如:gradle-6.8将文件放置在 ~/.gradle/wrapper/dists下边-----------一定注意文件路径的问题!!!!!!!
命令如下:
./gradlew build -x test
 

gradle 部署 cloud

1、如果 ./gradlew build -x test 构建失败,我的问题是 因为缺少/cloud-sentry-starter依赖,故安装 maven3.6.3注意格式,千万别多一花少一木,setting在/maven/conf/setting.xml中
然后进行环境配置,高级系统配置如java一样
配置环境变量参考文档:maven3.6.3下载与安装。安装教程(新手向最完整教程)_apache-maven-3.6.3-bin.zip-CSDN博客
使用命令部署:mvn clean install

备份一下prometheus.yml  我的路径为:/opt/prometheus/prometheus.yml

global:
  scrape_interval: 15s
  external_labels:
    monitor: codelab-monitor
scrape_configs:
  - job_name: prometheus
    scrape_interval: 5s
    static_configs:
      - targets:
          - '172.16.50.239:9090'
          - '172.16.50.239:9100'
 # - job_name: spring
    #scrape_interval: 10s
    #metrics_path: /actuator/prometheus
    #static_configs:
      #- targets:
          #- '172.16.50.239:9080'
  - job_name: mysql
    static_configs:
      - targets:
          - '172.16.50.102:9104'
  - job_name: redis
    static_configs:
      - targets:
          - '172.16.50.60:9121'
          - '172.16.50.61:9121'
          - '172.16.50.62:9121'
  - job_name: nginx
    static_configs:
      - 'targets:[''172.16.50.239:9113'']'
  - job_name: linux
    scrape_interval: 5s
    static_configs:
      - targets:
          - '172.16.50.239:9100'
          - '172.16.50.102:9100'
          - '172.16.50.71:9100'
          - '172.16.50.44:9100'
          - '172.16.50.45:9100'

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐