混合云环境中,对各种基础设施的统一监控,是运维人员必须面对的挑战。对此,Oracle公司适时的推出了基础架构监视云服务(IMCS),它通过统一、全景式的可视化方式,对整个IT基础架构(无论运行在本地还是云端)的状态和健康状况进行监控。本公众号将推出一系列文章,向大家介绍如何使用基础架构监视云服务(IMCS),监控各种基础设施。
本文将演示如何使用基础架构监视云服务(IMCS),来监控位于云上的Oracle数据和MySQL数据库。
先概略的介绍一下IMCS的部署架构,IMCS中有一个“实体”的概念,每一个需要监控的对象都是一个实体,比如:主机、数据库、应用服务器、容器、网络设备等,一台主机、一个数据库就是一个实体。第二个概念是“Cloud Agent”,也叫“云代理”,在部署IMCS监控时,需要在被监控实体所在的主机上,先部署一个Cloud Agent,通过Cloud Agent来实时采集所在主机上被监控实体的运行数据。

本文将监控的Oracle数据库和MySQL数据库均运行在Linux主机上,在监控这两个实体前,需要先在Linux主机上部署Cloud Agent,并将主机纳入IMCS的监控中。关于使用IMCS监控云上的Linux主机的步骤,在本公众号的其他文章中已有详细介绍,详情参见公众号其他文章《使用基础架构监视云(IMCS)监控云上的Linux主机》。
注意事项:
本系列中,所有的监控目标都运行在Oracle Cloud上,在做这些实验之前,需要一个Oracle Cloud账号,用户可以申请一个1个月的测试账号,用于学习和测试的目的。申请链接: https://cloud.oracle.com/en_US/tryit
本系列实验需要一个IMCS账号,需要找Oracle的销售人员帮忙申请。
本文中IMCS监控模式是通过REST api直接监控目标,没有经过网关。
第一部分:使用IMCS监控Oracle数据库
监控目标环境
数据库服务器:Oracle云上创建的Linux实例
操作系统版本:Oracle Linux Server release 7.3
数据库版本:Oracle Database 11.2.0.1.0
监控用户: Oracle
如图所示,数据库所在主机上已经部署了Cloud Agent,该主机已经被纳入IMCS监控。


监控Oracle数据库主要步骤
下载JSON脚本模板
配置数据库监控账号
编写用于登录凭证的json脚本
编写用于添加实体的json脚本
利用omcli添加目标
1. 下载JSON脚本模板
通过下载链接,下载最新的JSON脚本模板。
http://www.oracle.com/webfolder/technetwork/tutorials/sample_JSONs/omc_monsrv_entity_json_samples.zip
解压zip文件,选择登录凭证的json脚本模板和Oracle数据库实体的json脚本模板。

2.配置数据库监控账号
OMC可以通过数据库用户dbsnmp来监控数据库,使用sys用户解锁用户dbsnmp,并修改用户密码。
alter user dbsnmp account unlock;
alter user dbsnmp identified by welcome1;
注:在登录凭证文件中,需要填写该登录用户和口令
3.编写用于登录凭证的json脚本
编辑登录凭证的json脚本:omc_oracle_db_sample_creds.json
{
"credentials" : [
{
"id" : "SQLCreds",
"name" : "SQLCreds",
"credType" : "DBCreds",
"properties" : [
{
"name" : "DBUserName",
"value" : "CLEAR[dbsnmp]"
},
{
"name" : "DBPassword",
"value" : "CLEAR[welcome1]"
},
{
"name" : "DBRole",
"value" : "CLEAR[Normal]"
}
]
}
]
}
注:在登录凭证json文件中,输入数据库监控用户名和口令。
4.编写用于添加实体的json脚本
编辑监控实体的json脚本:omc_oracle_db_sample.json
{
"entities": [{
"name": "cheneydb11g",
"type": "omc_oracle_db",
"displayName": "Oracle ora11 Cheney Yu",
"timezoneRegion": "SGT",
"credentialRefs": ["SQLCreds"],
"properties": {
"host_name": {
"displayName": "host_name",
"value": "f807e9"
},
"port": {
"displayName": "port",
"value": "1521"
},
"sid": {
"displayName": "sid",
"value": "ora11"
},
"capability": {
"displayName": "capability",
"value": "monitoring"
}
}
}]
}
注:在实体json文件中,填入该实体的相关信息:
"name": "cheneydb11g",##实体名称,(自定义)
"type": "omc_oracle_db",##实体类型,(表明该实体为Oracle数据库)
"displayName": "Oracle ora11 Cheney Yu",##实体的描述信息(自定义)
"host_name" ##主机名称
"port"##数据库端口号
"sid"##数据库实例名
5.利用omcli添加目标
用oracle用户,进入目标主机的Cloud Agent的bin目录,同时将两个json文件拷贝到该目录中
$ cd /home/oracle/omcagent/cloudagent/agent_inst/bin
$ ./omcli add_entity agent omc_oracle_db_sample.json -credential_file omc_oracle_db_sample_creds.json
Oracle Management Cloud Agent
Copyright (c) 1996, 2016 Oracle Corporation. All rights reserved.
Operation Succeeded: Accepted 1 of 1 entities for processing.
[oracle@f807e9 bin]$ ./omcli status_entity agent omc_oracle_db_sample.json
Oracle Management Cloud Agent
Copyright (c) 1996, 2016 Oracle Corporation. All rights reserved.
omc_oracle_db.cheneydb11g : AGENT:entity fully monitored
登录基础架构监视云主界面,进入“实体”,在“实体类型”中选中“Oracle Database”,就能看到刚刚加入监控的Oracle数据库的实体,

点击实体“Oracle ora11 Cheney Yu”,进入数据库实体的监控界面,就能看到这个数据库的相关运行数据:



至此,云上的Oracle数据库已经纳入到IMCS的监视列表中,运维人员就能通过IMCS随时监控Oracle数据库的运行状态。
第二部分:使用IMCS监控MySQL数据库
监控目标环境
数据库服务器:Oracle云上创建的Linux实例
操作系统版本:Oracle Linux Server release 7.3
数据库版本:MySQL Database 5.7.18
监控用户: Oracle
前置条件:数据库所在主机上已经部署了Cloud Agent,该主机已经被纳入IMCS监控。
监控MySQL主要步骤
下载JSON脚本模板
编写用于登录凭证的json脚本
编写用于添加实体的json脚本
利用omcli添加目标
1.下载JSON脚本模板
通过下载链接,下载最新的JSON脚本模板。
http://www.oracle.com/webfolder/technetwork/tutorials/sample_JSONs/omc_monsrv_entity_json_samples.zip
解压zip文件,选择登录凭证的json脚本模板和MySQL数据库实体的json脚本模板。

2.编写用于登录凭证的json脚本
编辑登录凭证的json脚本:omc_mysql_creds.json
{
"credentials" : [
{
"id" : "SQLCreds",
"name" : "SQLCreds",
"credType" : "DBCreds",
"properties" : [
{
"name" : "DBUserName",
"value" : "CLEAR[root]"
},
{
"name" : "DBPassword",
"value" : "CLEAR[Welcome1!]"
}
]
}
]
}
注:在登录凭证json文件中,输入数据库监控用户名和口令。
3.编写用于添加实体的json脚本
编辑监控实体的json脚本:omc_mysql_db_sample.json
{
"entities" : [
{
"name" : "ycmysql57",
"type" : "omc_mysql_db",
"displayName" : "cheney mysql 5.7.18",
"timezoneRegion" : "America/New_York",
"credentialRefs" : ["SQLCreds"],
"properties" : {
"url" : {
"displayName" : "url",
"value" : "jdbc:mysql://localhost:3306/mysql"
},
"jdbcdriver" : {
"displayName" : "jdbcdriver",
"value" : "com.mysql.jdbc.Driver"
},
"host_name" : {
"displayName" : "MachineName",
"value" : "localhost"
},
"capability" : {
"displayName" : "capability",
"value" : "monitoring"
}
}
}
]
}
注:在实体json文件中,填入该实体的相关信息:
"name" : "ycmysql57",##实体名称,(自定义)
"type" : "omc_mysql_db",##实体类型,(表明该实体为MySQL数据库)
"displayName" : "cheney mysql 5.7.18",##实体的描述信息(自定义)
"host_name" ##主机名称
"URL"##主机名和端口号
4.利用omcli添加目标
用oracle用户,进入目标主机的Cloud Agent的bin目录,同时将两个json文件拷贝到该目录中
$ cd /home/oracle/omcagent/cloudagent/agent_inst/bin
$ ./omcli add_entity agent omc_mysql_db_sample.json -credential_file omc_mysql_creds.json
Oracle Management Cloud Agent
Copyright (c) 1996, 2016 Oracle Corporation. All rights reserved.
Operation Succeeded: Accepted 1 of 1 entities for processing.
[oracle@f807e9 bin]$ ./omcli status_entity agent omc_mysql_db_sample.json
Oracle Management Cloud Agent
Copyright (c) 1996, 2016 Oracle Corporation. All rights reserved.
omc_mysql_db.ycmysql57 : AGENT:entity fully monitored
登录基础架构监视云主界面,进入“实体”,在“实体类型”中选中“MySQL Database”,就能看到刚刚加入监控的MySQL数据库的实体,

点击实体“cheney mysql 5.7.18”,进入数据库实体的监控界面,就能看到这个数据库的相关运行数据:


至此,云上的MySQL数据库已经纳入到IMCS的监视列表中,运维人员就能通过IMCS随时监控MySQL数据库的运行状态。
后续,本公众号还将陆续推出系列文章,介绍如何使用IMCS服务来监控运行在云上的各种对象,敬请期待:
主机系列:Windows、Solaris
数据库系列:Oracle Database, MySQL, Microsoft SQL Server, MongoDB
应用服务器系列:Oracle WebLogic Server, Tomcat, Apache HTTP Server
容器系列:Docker Engine, Docker Container。
网络设备系列:Oracle Traffic Director。
云服务系列:Oracle Cloud Compute, Oracle Database Cloud Service, Oracle Java Cloud Sevrice, Amazon EC2。




