基于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']
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的监控界面
- oracle的监控界面
- mysql的监控界面
- oracle的监控界面
- sqlserver的监控界面