• win10安装Prometheus + grafana监控


     

    参考文章: https://blog.csdn.net/qq_38362419/article/details/108527506

    https://blog.csdn.net/u010053119/article/details/110800259

    https://www.cnblogs.com/xidianzxm/p/11542135.html

    1、安装prometheus

    1.1下载prometheus

    打开prometheus的官网:https://prometheus.io/ , 点击DOWNLOAD

     

    我下载的是window版本:

     

    1.2 运行prometheus。

    解压后进入目录运行prometheus.exe

     

    访问端口9090即可,需要查看监控的对象列表可以进入status>targets查看

     

    2、监控window系统信息

    2.1下载windows_exporter, 监控 window系统信息。

    在这里下载相关exporter:https://github.com/prometheus-community/ 

     

    直接msi安装即可。

    2.2 配置prometheus。

    默认端口是9182,然后到prometheus安装目录修改配置文件prometheus.yml,修改配置文件后重启prometheus,然后就可以看到targets列表增加的项目,状态为up表示正常监控,状态为down表示未检测到

        # winodows monitor

      - job_name: "windows_exporter"

        # metrics_path defaults to '/metrics'

        # scheme defaults to 'http'.

        static_configs:

          - targets: ["localhost:9182"]

     

    重启prometheus,进入status>targets查看

     

    在标红处可选择监控的window指标:

     

    选择指标后,点击execute。

     

    3.监控mysql

    https://prometheus.io/download/ 下载mysqld_exporter

     

    解压后,添加.my.cnf文件。

     

    内容如下:

    [client]

    host=192.168.1.173

    user=xxx

    password=xxx

     

    运行mysqld_exporter.exe文件:

     

    Mysqld_exporter的运行端口是:9104

    在prometheus的yaml中添加:

    # mysql monitor

      - job_name: "mysql_exporter"

        # metrics_path defaults to '/metrics'

        # scheme defaults to 'http'.

        static_configs:

          - targets: ["localhost:9104"]

     

    重启prometheus:

     

    Mysql相关的监控也有了:

     

    4、监控springBoot的值

    4.1 先搭建springBoot项目,添加prometheus的依赖

    <!--增加依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-core</artifactId>
    </dependency>
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>

     

    4.2 配置yaml

    spring:
      application:
        name: prometheus-demo

    server:
      port: 8877

    management:
      endpoints:
        web:
          exposure:
            include:  '*'
          base-path: /
      metrics:
        tags:
          application: ${spring.application.name}

     

    4.3 SpringBoot启动时加载这个Bean

    @Bean
    MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
        return (registry) -> registry.config().commonTags("application", applicationName);
    }

     

    4.4 绑定MeterBinder

    @Component
    public class JobMetrics implements MeterBinder {
        public Counter job1Counter;
        public Counter job2Counter;

        public Map<String, Double> map;

        JobMetrics() {
            map = new HashMap<>();
        }

        @Override
        public void bindTo(MeterRegistry meterRegistry) {
            this.job1Counter = Counter.builder("counter_builder_job_counter1")
                    .tags(new String[]{"name", "tag_job_counter1"})
                    .description("description-Job counter1 execute count").register(meterRegistry);

            this.job2Counter = Counter.builder("counter_builder_job_counter2")
                    .tags(new String[]{"name", "tag_job_counter2"})
                    .description("description-Job counter2 execute count ").register(meterRegistry);

            Gauge.builder("gauge_builder_job_gauge", map, x -> x.get("x"))
                    .tags("name", "tag_job_gauge")
                    .description("description-Job gauge")
                    .register(meterRegistry);
        }

    }

     

    4.5 建定时任务测试

    @Component
    @EnableScheduling
    public class MyJob {

        private Integer count1 = 0;

        private Integer count2 = 0;

        @Autowired
        private JobMetrics jobMetrics;

        @Async("main")
        @Scheduled(fixedDelay = 1000)
        public void doSomething() {
            count1++;
            jobMetrics.job1Counter.increment();
            jobMetrics.map.put("x", Double.valueOf(count1));
            System.out.println("task1 count:" + count1);
            if(count1%5==0){
                System.out.println("%5==0");
                jobMetrics.map.put("x", Double.valueOf(1));
            }

        }

        @Async
        @Scheduled(fixedDelay = 10000)
        public void doSomethingOther() {
            count2++;
            jobMetrics.job2Counter.increment();
            System.out.println("task2 count:" + count2);
        }
    }

     

    4.6 建Controller测试

    @RestController
    public class CounterController {
        @Autowired
        private JobMetrics jobMetrics;

        @RequestMapping(value = "/counter1", method= RequestMethod.GET)
        public void counter1() {
            jobMetrics.job2Counter.increment();
        }

        @RequestMapping(value = "/counter2", method= RequestMethod.GET)
        public void counter2() {
            jobMetrics.job2Counter.increment();
        }
        @RequestMapping(value = "/gauge", method= RequestMethod.GET)
        public void gauge(@RequestParam(value = "x") String x) {
            System.out.println("gauge controller x"+x);
            jobMetrics.map.put("x",Double.valueOf(x));
        }
    }

     

    启动springBoot后,配置prometheus。

    4.7配置prometheus

          #SpringBoot应用配置

      - job_name: 'prometheus_demo'

        scrape_interval: 5s

        metrics_path: '/prometheus'

        static_configs:

          - targets: ['localhost:8877']

     

    重启prometheus:

     

    监控的指标就出来了:

     

    5、安装grafana

    5.1 下载grafana

    地址:https://grafana.com/grafana/download?platform=windows

    需要注册后才能下载。我下载的是grafana-enterprise-8.2.5.windows-amd64.msi,直接安装就可以。

     

    安装完成后进入grafana/bin目录下,双击运行garafana-server.exe,访问地址http://localhost:3000/,默认用户名密码admin/admin

     

    6、向grafana添加prometheus数据源

     

    点Add data source 按钮 添加数据源:

     

    点select,填写prometheus的信息:

     

    填完之后,点下面的save&test按钮。

     

    保存成功后, 可以从以下路径查看已添加的prometheus数据源:

     

    7、向grafana添加监控mysql的仪表板

    Grafana官网有提供一些仪表板模板,地址:https://grafana.com/grafana/dashboards/

    可全页面搜索mysql:

     

    点mysql Overview

    搜索出想要的仪表板后复制它的ID

     

    导入模板:

     

     

    黏贴复制的id后,点击右侧的Load。

     

    标红处选择prommetheus数据源,然后Import即可。

    这是监控mysql的仪表板:

     

    监控window或linux系统的参数也是类似。

    8、向grafana添加springBoot的仪表盘,监控自己定义的数据

     

     

    添加一个空的panel。

    复制prometheus要监控的数据:

     

    counter_builder_job_counter1_total{application="prometheus-demo", instance="localhost:8877", job="prometheus_demo", name="tag_job_counter1"}

     

    鼠标离开焦点后,就可以监控了,不过还没保存。

    点Query在同一个panel里监控多个值。

     

     

    点击右上角的Apply。

     

    点击其他的按钮时, 提示  取消操作?  撤销操作?  保存操作?

    保存即可。

     

     

    这里可以选择刷新时间。

  • 相关阅读:
    从简单需求到OLAP的RANK系列函数
    数据库的Index Scan V.S. Rscan
    z/OS上Dataset 的移动
    如何保存CONSOLE LOG
    c#对文件进行MD5加密校验
    基于webpivottable做的透视表
    通过asp.net程序来控制自己开发的windows服务
    AES加密和解密
    C#添加日志
    cmd执行mssql脚本或者执行mysql脚本
  • 原文地址:https://www.cnblogs.com/maohuidong/p/15831184.html
Copyright © 2020-2023  润新知