基于Prometheus和Grafana监控redis,Oracle,mysql,pg以及sqlserver的方法总结

基于Prometheus和Grafana监控redis,Oracle,mysql,pg以及sqlserver的方法总结


  • 简单记录一下方法

1.获取相应的exporter


1. redis
docker pull  oliver006/redis_exporter
2. Oracle
docker pull iamseth/oracledb_exporter 
3. mysql
docker pull prom/mysqld_exporter
4. pg
docker pull quay.io/prometheuscommunity/postgres-exporter
5.sqlserver
docker pull awaragi/prometheus-mssql-exporter 
  • 注意可以选用其他的类型, 我这里为了简单起见 使用如此镜像.

2. 容器化运行镜像的命令


1. redis
docker run -d --name redis_exporter6378 -p 9121:9121 oliver006/redis_exporter --redis.addr redis://yourip:yourredisport --redis.password 'YourRedisPassword'
# 注意默认使用 9121 端口.
2. Oracle
docker run -d --name oracledb_exporter  --restart=always -p 9161:9161 -e DATA_SOURCE_NAME=sys/Mypassword@10.24.20.247/orcl iamseth/oracledb_exporter 
# 注意必须要有斜线
3. Mysql
docker run -d --name mysql_exporter --restart always -p 9104:9104 -e DATA_SOURCE_NAME="root:password@(someip:3306)/"   prom/mysqld-exporter
4. pg
docker run -p 9187:9187 -d  -e DATA_SOURCE_NAME="postgresql://postgres:yourpassword@yourip:5432/postgres?sslmode=disable"  quay.io/prometheuscommunity/postgres-exporter
# 注意如果使用非管理员用户 需要创建相关的表和视图.
5. Sqlserver
docker run -d -e SERVER=yourip -e USERNAME=SA -e PASSWORD=yourpassword -e DEBUG=app -p 4000:4000 --name prometheus-mssql-exporter172 awaragi/prometheus-mssql-exporter
# 注意需要输入密码可以支持特殊字符

3.启动prometheus


  • 注意prometheus 是 pull 的方式 , 所有的exporter都是准备好了相关的数据让prometheus进行拉取的, 所以这里不需要进行特别的设置只需要记住端口号就可以了
  • 定义配置文件为: 注意需要符合yaml的文件格式
# Prometheus全局配置项
global:
  scrape_interval:     15s # 设定抓取数据的周期,默认为1min
  evaluation_interval: 15s # 设定更新rules文件的周期,默认为1min
  scrape_timeout: 15s # 设定抓取数据的超时时间,默认为10s
  external_labels: # 额外的属性,会添加到拉取得数据并存到数据库中
   monitor: 'codelab_monitor'


# Alertmanager配置
alerting:
 alertmanagers:
 - static_configs:
   - targets: ["localhost:9093"] # 设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口
     
# rule配置,首次读取默认加载,之后根据evaluation_interval设定的周期加载
rule_files:
 - "alertmanager_rules.yml"
 - "prometheus_rules.yml"

# scape配置
scrape_configs:
- job_name: '202SQLSERVER' # job_name默认写入timeseries的labels中,可以用于查询使用
  scrape_interval: 15s # 抓取周期,默认采用global配置
  static_configs: # 静态配置
  - targets: ['10.110.80.19:4000']
- job_name: '172SQLSERVER' # job_name默认写入timeseries的labels中,可以用于查询使用
  scrape_interval: 15s # 抓取周期,默认采用global配置
  static_configs: # 静态配置
  - targets: ['10.110.80.19:4001']
  • 启动promethues
docker run -d -p 9093:9090 --name prometheusdb -v /prometheusdb/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --restart always
# 注意可以启动多个prometheus 使用多个端口
# 可以设置多个grafana的监控设置即可 

4. grafana load json 展示界面.


  • 进入官网过滤查询, 然后load相关json 选择prometheus对应的datasource就可以了.
  • redis的监控界面
    image
  • oracle的监控界面
    image
  • mysql的监控界面
    image
  • oracle的监控界面
    image
  • sqlserver的监控界面
    image
原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/15154049.html