基于Prometheus+Grafana的服务监控系统

基于Prometheus+Grafana的服务监控系统

一 背景&目的

在原有的日志展示平台Grafana上集合Prometheu实现对服务器资源和java应用服务的资源监控。

并配套Alertmanager实现资源告警功能

二 系统结构说明

Prometheus负责收集数据,Grafana负责展示数据。其中采用Prometheus 中的 Exporter含:

1)Node Exporter,负责收集 host 硬件和操作系统数据。提供数据抓取接口供Prometheus收集。

2)cAdvisor,负责收集容器数据。它将以容器方式运行在所有 host 上。(docker应用)

3)Alertmanager,负责告警。它将以容器方式运行在所有 host 上。

三 安装部署

3.1安装docker

3.2安装docker-compose

3.3添加prometheus.yml配置文件

在/usr/local/config添加prometheus.yml配置文件

 

3.4编写docker-compose

 

注:   volumes:

            - /usr/local/config/prometheus.yml:/etc/prometheus/prometheus.yml

            - /usr/local/config/node_down.yml:/etc/prometheus/node_down.yml

配置docker目录和系统目录的映射

3.5启动docker-compose

在当前目录执行

  1. docker-compose up -d

其他:

  1. #删除容器:
  1. docker-compose -f down#重启容器:
  1. docker restart id

如图:prometheus,alertmanager,node-exporter已启动

 

访问http://106.75.222.98:9090/targets

可以看到当前服务器的监控数据

3.6 SpringBoot应用集成prometheus监控

3.6.1 添加依赖

  1. <!--增加prometheus监控依赖-->
  1. <dependency>
  1.     <groupId>org.springframework.boot</groupId>
  1.     <artifactId>spring-boot-starter-actuator</artifactId>
  1.     <version>${spring-boot-starter-actuator.version}</version>
  1. </dependency>
  1. <dependency>
  1.     <groupId>io.micrometer</groupId>
  1.     <artifactId>micrometer-core</artifactId>
  1. </dependency>
  1. <dependency>
  1.     <groupId>io.micrometer</groupId>
  1.     <artifactId>micrometer-registry-prometheus</artifactId>
  1. </dependency>

3.6.2添加配置

##############################  业务源配置  

business:

  source: 1

#yml格式

management:

  endpoints:

    web:

      exposure:

        include: "*"

  endpoint:

    health:

      show-details: ALWAYS

  metrics:

    tags:

      application: ${spring.application.name}+"-"+${spring.profiles.active}

3.6.3设置application

  1. public class CbasApplication {
  1.  
  1.     public static void main(String[] args) {
  1.         SpringApplication.run(CbasApplication.class, args);
  1.     }
  1. //
  1.  
  1.     //添加prometheus+grafana+springboot2监控集成配置
  1.     @Bean
  1.     MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName,@Value("${spring.profiles.active}") String profiles) {
  1.         return (registry) -> registry.config().commonTags("application", applicationName+"-"+profiles);
  1.     }
  1.  
  1. }

3.6.4启动效果

SpringBoot项目到这里就配置完成了,启动项目,访问http://localhost:8888/actuator/prometheus,如图所示,可以看到一些度量指标。

 

3.7 prometheus配置java应用的采集job

在prometheus.yml中添加两个job分别采集测试环境和开发环境

  - job_name: 'HRO-SERVICE-DEV'

    scrape_interval: 5s

    metrics_path: '/actuator/prometheus'

    static_configs:

      - targets: ['10.23.196.244:8888','10.23.196.244:8881','10.23.196.244:8700','10.23.196.244:8099','10.23.196.244:8904','10.23.196.244:9999','10.23.196.244:8882','10.23.196.244:5999']

  - job_name: 'HRO-SERVICE-TEST'

    scrape_interval: 5s

    metrics_path: '/actuator/prometheus'

    static_configs:

      - targets: ['10.23.96.219:8888','10.23.96.219:8881','10.23.96.219:8700','10.23.96.219:8099','10.23.96.219:8904','10.23.96.219:9999','10.23.96.219:8882','10.23.96.219:5999']

3.7grafana添加Prometheus数据源

 

3.8配置grafana仪表盘dashboards

说明:可以用自带模板,也可以去https://grafana.com/dashboards,下载对应的模板。

java服务仪表盘 ID:12856

输入ID点load


效果如图:

 

服务器资源仪表盘8919

效果如下:

 

一、prometheus简介 Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。 5.Grafana:监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值