真实业务需求 |
最近在与合作伙伴(客户)交流中讨论了Oracle管理云(OracleManaged Cloud Service,简称OMC)的用户体验。发现很多客户在使用OMC 添加entity操作让使用者比较头疼(修改entityjson文件对很多非技术人员来讲有一定的难度),通过omcli添加entity对很多用户来说也同样很痛苦。尤其是有些客户想要通过OMC分析一些没有预定义的产品(rabbitMQ、redis)的日志,这样的问题尤为突出。
有客户提问能不能不添加entity依然能够上传日志并且分析!答案是肯定的。
解决方案 |
上传日志到OMC有两种方法,一种是通过cloud agent自动上传,另外一种是通过On-Demandupload 的形式手动上传。如果使用cloudagent方式上传需要关联log source,我们可以通过一个已经存在的entity来“欺骗”OMC。
OMC分析日志的过程如下:
1. 添加entity
2. 关联entity和log source
3. 通过log source定义的日志所在路径获取并上传日志
4. 通过log source包含的parser解析日志。
OMC最灵活的部分在于几乎上边提到的所有步骤都可以客户自定义。
例如:某用户想要上传redis的日志并且分析,但又不知道如何添加entity(对某些用户来说的确很难),这种情况我们可以采用“欺骗”OMC的方式来解决这个问题,换句话说就把redis的日志当成操作系统日志上传。
假设Cloud agent已经成功安装在一台Linux服务器中,那这台linux的entity已经加入到了OMC中,我们创建一个redislog source,entity type选择linux,把对应的parser和日志所在路径添加到该logsource中即可。
操作如下 |
1. Cloud agent已经成功安装,如下图:
查看已经加入到OMC中的entity
当cloud agent成功安装后,cloudagent所在的host和cloudagent本身都会注册到OMC中。
2. 查看cloud agent的状态
通过OMC平台检查发现cloudagent状态正常。
3. 创建log source,如下图:
注意,此处的”Entity Type”我们选在”Host(Linux)”, “File Parser”是我们已经开发完成的parser。”FileName Pattern”配置的是日志所在的路径。
4. 关联log source
通过”Log Admin”中的”Entites”创建Association
“Entity Type”选择”Host(Linux)”
“Add Entites”
“Select” 并且“Continue”
“Continue”
等几分钟之后cloud agent会把redis日志上传到OMC中。
5. 检查结果
进入”Log Analytics”, 通过”LogSource”查询日志。
选择”redis_log_source”
日志成功上传,并且解析。
方案评估 |
本方法可以解决不添加entity能够上传和分析日志的问题,但是这个方案有一定的缺陷。以上文例子来说如果通过”Entity Type”来过滤会发现没有”redis”的entity类型(因为我们选择的entity type是Linux)。所以如果监控的日志种类比较多还是建议创建相应的entity type。