专栏首页java程序员思维java应用监控之prometheus、node export、grafana安装和配置

java应用监控之prometheus、node export、grafana安装和配置

目录

1、prometheus安装

2、grafana安装

3、node export 安装

4、grafana配置

为了与时俱进,介绍基于docker的安装部署,如果想用非docker化部署,可以参考官网

对于docker的安装,在cat安装部署已经介绍过了,这里就不再重复了,如果还有不清楚的可以点击java应用监控之CAT安装部署

docker已经安装好之后,正式安装prometheus

1、prometheus安装

docker run -d  -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml   -v /etc/localtime:/etc/localtime prom/prometheus

对docker命令不熟悉的朋友,可以通过菜鸟教程进行学习

简单的介绍一下上面的命令,运行了一个9090端口的prometheus容器,通过-v进行挂载,指定了prometheus配置文件路径/etc/prometheus/prometheus.yml , /etc/localtime主要是指定时区,防止容器和宿主机的时间对不上的问题。 -d是指后台运行

如果启动成功,访问http://服务器地址:9090

如果访问不成功可以通过docker查看日志信息,先使用docker ps命令查看所有容器

找到相应的prometheus容器

docker logs -f prometheus容器ID

prometheus配置,记得修改ip地址

# my global configglobal:  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 configurationalerting:  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: ['prometheus的ip地址:9090']
  - job_name: 'node'
    # metrics_path defaults to '/metrics'    # scheme defaults to 'http'.
    static_configs:    - targets: ['node export ip地址:9100']

2、grafana安装

prometheus提供的web UI过于简单,可以使用grafana展示监控视图,grafana社区提供了很多模板,只要我们导入模板,就能使用。当然我们也可以根据自己的需求进行定制。

docker run -d --name=grafana -p 3001:3000 -v /var/lib/grafana:/var/lib/grafana -v /etc/grafana/grafana.ini:/etc/grafana/grafana.ini   -v /etc/localtime:/etc/localtime grafana/grafana 

因为我安装的机器3000端口已经被占用了,我只能通过使用3001端口映射到容器内的3000端口,grafana默认端口使用的是3000端口。如果你的端口没有被占用,直接使用3000端口进行映射即可,-v /var/lib/grafana:/var/lib/grafana 这个很重要,通过挂载,这样grafana产生的数据就会存储在宿主机上,即便容器被删除了,重新run数据不会丢失,如果不进行挂载数据会丢失。如果出现问题,同上一样处理,查看日志,定位问题,解决问题。

访问http://ip地址:指定的端口,如果结果如上图,说明grafana安装成功,第一次访问需要修改密码,初始密码是admin/admin,修改密码之后,需要按照新密码登录。

因为prometheus本身不具备监控功能,我们要通过prometheus收集数据,需要安装对应的export,如node export用于监控服务器状态,如cpu、内存、网络、磁盘等信息。redis export用于监控redis的相关信息,内存使用情况、连接数等。Mysql export用于监控mysql。社区已经提供了响应的export,只需要下载安装即可,然后在grafana社区中找到对应的模板,就能对相应的服务进行监控。

3、node export 安装

docker run -d  -p 9100:9100 quay.io/prometheus/node-exporter

安装完之后,需要修改prometheus配置文件,增加要监听的job,需要指定job的名称,以及暴露的metrics的访问路径

  - job_name: 'node'    # metrics_path defaults to '/metrics'    # scheme defaults to 'http'.
    static_configs:    - targets: ['prometheus的ip地址:9100']

因为我们prometheus使用的是静态配置,需要重启prometheus容器让其生效

docker restart prometheus容器ID

Prometheus 提供了服务发现功能,可以从 consul, dns, kubernetes, file 等等多种来源发现新的目标。

4、grafana配置

添加数据源:

点击下面的保存和测试按钮,数据源就添加好了,这个数据源后面需要用到

导入社区提供好的模板

访问grafana官网

点击dashboards,查找模板

第一个就是node export模板

复制模板ID,回到刚才导入模板的页面

如上图,我们的dashboard模板就已经导入成功。点击dashboard,可以看到如下图就说明我们已经安装成功。

本文分享自微信公众号 - java程序员思维(java_python_go),作者:曾建路

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • redis系列基础之简介和安装

    redis是一款开源免费的key-value内存数据库,提供多语言api支持,支持Java,C/C++,C#,PHP,JavaScript,Perl,Objec...

    用户4361942
  • java应用监控之CAT安装部署

    java应用监控之调用链跟踪选型之Zipkin、Pinpoint、SkyWalking、CAT

    用户4361942
  • redis系列基础篇之配置详解

    用户4361942
  • 最新版Prometheus+Grafana+node-exporter炫酷界面

    https://www.cnblogs.com/xiao987334176/p/9930517.html

    py3study
  • 基于k8s集群部署prometheus监控ingress nginx

    本文中涉及到的环境中、prometheus监控和grafana基本环境已部署好。 在nginx ingress controller的官方文档中对监控有相应描...

    山山仙人
  • 新手学分布式 - Envoy Proxy XDS Server动态配置的一点使用心得

    Envoy Proxy和其它L4/L7反向搭理工具最大的区别就是原生支持动态配置。 首先来看一下Envoy的大致架构

    随机来个数
  • CentOS7安装docker

    今天在VMware Player上装了64位CentOS,然后在上面安装了最新的docker,现在把步骤整理如下: 解决联网问题 VMware上安装CentOS...

    程序员欣宸
  • redis集合类型详解

    章鱼喵
  • 架构设计模式—6大设计原则

    软件开发之所以会有这些原则,就是因为复杂多变且不可预料的需求。并不是说在实际项目开发中对这六大原则中的每一条都遵循到极致,而是说在项目开发的过程中,根据项目的实...

    一个会写诗的程序员
  • Centos7安装protobuf

    1、更新Centos7下载源 更新之前记得备份!!! wget -O /etc/yum.repos.d/CentOS-Base.repo http://mi...

    苦咖啡

扫码关注云+社区

领取腾讯云代金券