Centos7利用docker搭建prometheus+grafana,监控Nginx、mysql、process、linux主机、redis........
虚拟机所需cpu:8个cpu及以上安装docker 映像:yum install -y docker-io启动docker 守护线程:sudo systemctl start docker下载镜像包启动 node-exporter安装netstat 命令:查看 端口是否起来:访问url:虚拟机ip:9100检查哪个占用了端口:访问URL发现拒绝访问发现是由于防火墙开着,所以访问不了查看防火墙:su
虚拟机所需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' |
更多推荐
所有评论(0)