暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

Prometheus Grafana之Oracle监控

MeetDB 2020-07-21
5941


  上节我分享Mysql监控的部署,小群里好奇宝宝们要求尽快分享Oracle的监控。故本节提前分享出Oracle的监控。


本文目录:

1. Exporter部署

2. Prometheus配置

3. Grafana配置

4. 效果展示

5. 增加监控项



1. Exporter部署

    在需要被监控的Oracle服务器上,下载并上传oracle exporter。

下载地址:

https://github.com/iamseth/oracledb_exporter/releases

    [root@exn1 ~]# su - oracle
    Last login: Mon Jul 20 13:46:26 CST 2020
    exn1:/home/oracle(kevin1)$cd app/soft/
    exn1:/app/soft(kevin1)$ rz oracledb_exporter.0.2.9-ora18.5.linux-amd64.tar.gz
    exn1:/app/soft(kevin1)$ tar -xvf oracledb_exporter.0.2.9-ora18.5.linux-amd64.tar.gz
    exn1:/app/soft(kevin1)$ mv oracledb_exporter.0.2.9-ora18.5.linux-amd64 ../exporter/oracle
    exn1:/app/soft(kevin1)$ cd ../exporter/oracle
    exn1:/app/exporter/oracle(kevin1)$ cp default-metrics.toml custom.metrics

    配置oracle exporter,创建监控用户并修改环境变量。

      SQL> alter user DBSNMP identified by dbsnmp;
      SQL> alter user DBSNMP account unlock;
        echo >> home/oracle/.bash_profile <<EOF
        LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
        export DATA_SOURCE_NAME='dbsnmp/dbsnmp@kevin'
        EOF

        启动Oracle exporter

          exn1:/app/exporter/oracle(kevin1)$nohup app/exporter/oracle/oracledb_exporter -default.metrics app/exporter/oracle/custom.metrics 1>/dev/null 2>&1 &

          注:如上内容可以写入rc.local文件开机自启,可以配置服务开机自启。


          测试已经集成的监控指标:

            [prometheus@Prometheus ~]$ curl http://192.168.19.11:9161/metrics

            项目Readme文件中作者有说他不是专业的go开发和数据库管理员,所以这里给广大dba提供了一个配置文件的接口。通过dba自己添加select语句,简单配置custom.metrics文件,即可自由的添加监控项。文章结尾会简单叙述如何增加监控项。



            2. Prometheus配置

            Prometheus服务器端配置文件中增加如下内容,增加完成后热重启。

              [prometheus@Prometheus ~]$ cat app/prometheus/prometheus.yml 
              #oralce
              - job_name: oracle
              scrape_interval: 30s
              static_configs:
                  - targets: ['192.168.19.11:9161']
              [prometheus@Prometheus ~]$ curl -XPOST http://localhost:9090/-/reload


              3. Grafana配置

                  同上篇文章mysql监控中,我们从官网下载展示模版,地址如下:

              https://grafana.com/grafana/dashboards

                  在网页左侧输入关键字”oracle“即可,下载自己喜欢的模版的json文件。导入grafana.


              4. 效果展示

                导入完成后,我们可以看到导入的oracle展示界面,点击即可查看各种监控图标。如下图


              5. 增加监控项

                  如上文中提到,由于该开源项目的开发人员,不是从事数据库管理工作,未集成很多dba关注的指标。这就需要dba自己编写sql采集。 开发人员提供了非常简单的方式,只需要按照简单固定的格式,将select语句写入custom.metrics配置文件,重启exporter即可。下文,简单演示增加新指标过程。

                  假设我们想要增加asm磁盘组使用情况的监控。首先编写SQL。

                SQL> select name,total_mb, free_mb  from v$asm_diskgroup;

                    查看custom.metrics文件的默认格式:

                  exn1:/app/exporter/oracle(kevin1)$head default-metrics.toml 
                  [[metric]]
                  context = "sessions"
                  labels = [ "status", "type" ]
                  metricsdesc = { value= "Gauge metric with count of sessions by status and type." }
                  request = "SELECT status, type, COUNT(*) as value FROM v$session GROUP BY status, type"

                  模仿编写我们自己的监控项:

                    [[metric]]
                    context = "asm_diskgroup"
                    labels = [ "name", "total_mb" ]
                    metricsdesc = { free_mb = "Asm diskgroup free space." }
                    request = "select name,total_mb, free_mb  from v$asm_diskgroup"

                    将如上内容追加到custom.metrics配置文件中,然后重启oracle exporter.

                      exn1:/app/exporter/oracle(kevin1)$ps -ef | grep export
                      prometh+ 8899 1 5 13:46 ? 00:05:32 app/exporter/node_exporter/node_exporter
                      oracle 9996 1 0 13:46 ? 00:00:29 app/exporter/oracle/oracledb_exporter -default.metrics app/exporter/oracle/custom.metrics
                      oracle 49282 39463 0 15:34 pts/0 00:00:00 grep --color=auto export
                      exn1:/app/exporter/oracle(kevin1)$kill -9 9996
                      exn1:/app/exporter/oracle(kevin1)$
                      exn1:/app/exporter/oracle(kevin1)$
                      exn1:/app/exporter/oracle(kevin1)$nohup /app/exporter/oracle/oracledb_exporter -default.metrics /app/exporter/oracle/custom.metrics 1>/dev/null 2>&1 &

                      获取指标:

                        [prometheus@Prometheus ~]$ curl http://192.168.19.11:9161/metrics | grep free_mb
                         # TYPE oracledb_asm_diskgroup_free_mb gauge
                        oracledb_asm_diskgroup_free_mb{name="CRS",total_mb="6144"} 5708
                        oracledb_asm_diskgroup_free_mb{name="DATA",total_mb="50208"44236
                        [prometheus@Prometheus ~]$

                        指标获取到后,在grafana oracle面板中增加该图。

                        此时会发现列表中多了些没用的列,如下增加详细信息控制配置。

                        编辑完成后,点击右上角”Apply“,完成配置。

                        效果展示:

                        如上,我们完成了自定义监控项,及Grafana展示配置。感谢开源项目的开发人员,为dba提供了如此简便的配置。



                        前文链接:

                        Prometheus Grafana 初体验

                        Prometheus Grafana之Mysql监控



                        更多技术细节,欢迎关注公众号联系作者交流。


                        关注更多精彩


                        文章转载自MeetDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论