Prometheus Agent 安装手册

Prometheus 提供了一个主动采集指标的标准,相应的软件只需要自己暴露/metrics接口即可,一些主流的软件Prometheus官方提供了相应的agent实现,可从Prometheus官方下载相应agent的最近release二进制文件运行即可。

Host

Prometheus官方 node_exporter

  • 下载对应操作系统的最新release版本
  • 运行node_exporter
    1. nohup ./node_exporter > app.log 2>&1 &
  • 查看默认提供的9100端口,能看到所暴露的指标数据

Mysql

Prometheus官方 mysqld_exporter

  • 下载对应操作系统的最新release版本
  • 需要在被监控数据库中新建监控用户并授权
    1. CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'your_password';
    2. GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
  • 新建my.cnf配置文件
    1. [client]
    2. user=exporter
    3. password=your_password
    4. host=127.0.0.1
  • 运行exporter
    1. nohub ./mysqld_exporter --config.my-cnf="my.cnf" > app.log 2>&1 &
  • 查看提供的9104端口,能看到所暴露的指标数据

Redis

官方并没有提供Redis的exporter,可使用较流行的redis_exporter

  • 下载对应操作系统的最新release版本
  • 运行redis_exporter
    1. nohup ./redis_exporter --redis.addr="redis://localhost:6379" --redis.password="prom_pwd" > app.log 2>&1 &
  • 查看提供的9121端口,能看到所暴露的指标数据

Tomcat & Jmx

Prometheus官方 jmx_exporter 下载最新的source并编译jar包,这里提供一个编译好的0.12.0版本的包 jmx_prometheus_javaagent-0.12.0.jar

tomcat war 部署方式监控,这种方式直接在tomcat里面加上exporter的jar包修改catalina.sh,启动并暴露指标
1、新建config.yaml文件

  1. lowercaseOutputLabelNames: true
  2. lowercaseOutputName: true
  3. rules:
  4. - pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'
  5. name: tomcat_$3_total
  6. labels:
  7. port: "$2"
  8. protocol: "$1"
  9. help: Tomcat global $3
  10. type: COUNTER
  11. - pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):'
  12. name: tomcat_servlet_$3_total
  13. labels:
  14. module: "$1"
  15. servlet: "$2"
  16. help: Tomcat servlet $3 total
  17. type: COUNTER
  18. - pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):'
  19. name: tomcat_threadpool_$3
  20. labels:
  21. port: "$2"
  22. protocol: "$1"
  23. help: Tomcat threadpool $3
  24. type: GAUGE
  25. - pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'
  26. name: tomcat_session_$3_total
  27. labels:
  28. context: "$2"
  29. host: "$1"
  30. help: Tomcat session $3 total
  31. type: COUNTER

2、把config.yaml和jmx_prometheus_javaagent-0.12.0.jar放到 $TOMCAT_PATH/bin下面
3、修改$TOMCAT_PATH/bin下的catalina.sh文件,在 JAVA_OPTS=”$JAVA_OPTS $JSSE_OPTS” 后面加上一句

  1. JAVA_OPTS="$JAVA_OPTS -javaagent:$PWD/jmx_prometheus_javaagent-0.12.0.jar=9151:$PWD/config.yaml"

4、最后startup.sh启动tomcat,可在提供的9151端口上查到tomcat和jmx的相关指标