prometheus&各监控组件的配置

引言:以下各软件的链接,都是基于本文发布时,所使用的最新版本。因为该文主要是当笔记用,所以步骤比较粗糙。
主要监控对象:
java
mongodb
zookeeper
kafka
主机
1. 安装prometheus

下载路径:

https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz

将压缩包解压即可,无需安装。

tar -xvf prometheus-2.44.0.linux-amd64.tar.gz

启动命令:

 /prometheus-2.43.0.linux-386/prometheus --config.file=/prometheus-2.43.0.linux-386/prometheus.yml

prometheus的默认web端口是9090,下面的url可以查看当前已监控的组件,以及其运行状态。

http://ip:9090/targets
2. 安装grafana

grafana有三个版本,Open source,Cloud,Enterprise。我们只需要下载Open source版本,下载路径:

https://grafana.com/grafana/download?edition=oss&pg=graf&plcmt=deploy-box-1&platform=linux

下载的文件是rpm包,可直接使用rpm安装:

rpm -i grafana-9.5.2-1.x86_64.rpm

启动grafana:

sudo systemctl daemon-reload
sudo systemctl start grafana-server
# 查看启动状态
sudo systemctl status grafana-server

grafana的默认web端口是3000,使用下面的url可打开管理界面:

http://ip:3000/metrics

管理界面需要登录,默认账号:admin/admin,进入管理界面,然后:

  • 增加数据源,点击左上角的列表图标->Administration->Data sources->Add new data source->选择Prometheus->填写url->Save&test。
  • 增加Dashboard,这里仅介绍导入模板的方法,自定义表格本文不涉及。点击左上角的列表图标->Administration->Dashboards->New->import->Upload dashboard JSON file->Import。

dashboard library,里面包含大量的模板,可根据关键字搜索想要的模板,以下是地址:

https://grafana.com/grafana/dashboards/

后面涉及到的组件,都可以在dashboard library里面找到。找到想要的模板之后,点击下载json文件到本地的方式保存。也可以直接输入id,但需要安装grafana的机器能访问grafana library。

3. 安装node_exporter

node_exporter是用来监控机器的硬件和操作系统性能指标的,比如,CPU,内存,磁盘等信息。下载路径:

https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz

将压缩包解压即可,无需安装。
启动命令:

 /node_exporter-1.5.0.linux-amd64/node_exporter

node_exporter的默认web端口是9100,下面的url可以查看当前已监控的主机的各项指标。

http://ip:9100/metrics

与prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:

  scrape_configs:
    ......
    - job_name: node
      static_configs:
      - targets: ['ip:9100']

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

4. 安装mongodb_exporter

mongodb_exporter是用来监控mongodb的性能指标的,下载路径:

https://github.com/percona/mongodb_exporter/releases/download/v2.37.0/mongodb_exporter-2.37.0.linux-64-bit.rpm

启动命令:

 ./mongodb_exporter --mongodb.uri='mongodb://[user]:[password]@[ip]:27017/admin' --compatible-mode --collect-all

–compatible-mode:兼容模式,当使用的dashboard是从grafana library上下载的模板,该模板很有可能仅支持老版本的mongodb_exporter,所以需要兼容模式才能正常显示图表等信息。
–collect-all:采集mongodb的所有信息,如果不需要所有信息,可以修改该参数为指定的采集对象,比如表,集合等。

node_exporter的默认web端口是9216,下面的url可以查看当前已监控的mongodb的各项指标。

http://ip:9216/metrics

与prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:

  scrape_configs:
    ......
    - job_name: "mongo_exporter"
      static_configs:
        - targets: ["ip:9216"]

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

5. 安装jmx_exporter

jmx_exporter是用来监控java应用程序的性能指标的,下载路径:

https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar

创建config.yaml文件,最简单的内容如下:

rules:
  - pattern: ".*"

启动命令:

 java -javaagent:./jmx_prometheus_javaagent-0.18.0.jar=12345:config.yaml -jar yourJar.jar

注意上述命令中各文件的路径。yourJar.jar表示想要监控的java程序。如果项目中使用的是脚本的方式启动,则在启动脚本中,将-javaagent:./jmx_prometheus_javaagent-0.18.0.jar=12345:config.yaml 加入到启动命令里面。

上述脚本配置的jmx_exporter的web端口是12345,通过下面的url可以查看当前已监控的java的各项指标。

http://ip:12345/metrics

与prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:

  scrape_configs:
    ......
    - job_name: "java_exporter"
      static_configs:
        - targets: ["ip:12345"]

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

6. 监控zookeeper

从3.6.x的版本开始,zookeeper支持prometheus监控。步骤如下:

  • 在zookeeper的配置文件中,增加配置:
metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
# 默认7000,避免重启,改为7123
metricsProvider.httpPort=7123
  • 与prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:
  scrape_configs:
    ......
    - job_name: "zookeeper_exporter"
      static_configs:
        - targets: ["ip:7123"]

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

7. 监控kafka

本文未使用第三方的kafka_exporter,而是直接使用jmx_exporter来监控kafka,因此,配置方式和监控java程序类似。
首先,从jmx_exporter的样例中,下载kafka-2_0_0.yml文件,路径如下:

https://github.com/prometheus/jmx_exporter/blob/main/example_configs/kafka-2_0_0.yml

修改kafka的启动脚本kafka-server-start.sh,在最后一行代码之前增加如下内容:

if [ "x$KAFKA_AGENT_OPTS" = "x" ]; then
    export KAFKA_AGENT_OPTS="-javaagent:/jmx_prometheus_javaagent-0.18.0.jar=12345:/kafka-2_0_0.yml"
fi

修改kafka的另一个脚本kafka-run-class.sh,在最后一段代码中,将KAFKA_AGENT_OPTS参数加入其中,代码如下:

if [ "x$DAEMON_MODE" = "xtrue" ]; then
  nohup "$JAVA" $KAFKA_AGENT_OPTS ....
else
  exec "$JAVA" $KAFKA_AGENT_OPTS ....
fi

修改完成之后,重启kafka。 上述脚本配置的jmx_exporter的web端口是12345,通过下面的url可以查看当前已监控的java的各项指标。

http://ip:12345/metrics

与prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:

  scrape_configs:
    ......
    - job_name: "kafka_exporter"
      static_configs:
        - targets: ["ip:12345"]

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

在grafana中导入dashboard模板的时候 ,需要注意模板是否匹配,有的模板使用的是kafka_exporter,导入这种模板将不会展示数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、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、付费专栏及课程。

余额充值