<Google Cloud Logging>调研

(2015年3月做的调研,转给感兴趣的同学)

背景:

在Google之前Amazon在2014年已推出Kinesis,LogTail,CloudWatch for Logs等一系列围绕日志产品,用以对云平台产生的日志进行收集、分发、报警与监控,在更早之前S3访问日志已早被作为一个特性集成到S3中,供用户进行下载分析。日志作为云平台从计算到数据一环的载体,逐渐为云平台的增值服务开始创造新一轮价值。

Cloud Logging体系:

功能:收集并转储Google Platform产生日志

  • 提供Log Viewer查询日志
  • 将日志同步Cloud Storage(S3)或BigQuery
  • 提供google-fluentd Agent收集第三方日志

支持平台:一种为Container,后者为常规的虚拟机

  • App Engine
  • Compute Engine

收费:日志收集、查看(搜索)是免费的,但到其他系统过程中需要计算导入费用

  • LogViewer中查看免费(30天)
  • 导入Cloud Storage,BigQuery额外收费

限额Quota:

  • 日志流数目:100个/Project
  • 单实例最大流量:10GB/月
  • LogViewer保存时间:30天

权限控制:比较简单

  • “Can view” access can list logs and read log entries.
  • “Can edit” access can both view and write log entries.
  • “Owner” access can additionally configure log export.

数据模型: 单条日志叫Log Entry,Log Entry属于特定Log Type(例如access log,appengine log等),每一条日志有如下类型:

  1. LogType:文本类型
  2. MetaData
  3. Time: 必填字段,代表日志产生时间
  4. 其他字段:非必填字段
    1. PayLoad (两者选其一)
    2. TextPayLoad:全文本、非结构化
    3. ProtoPayload:结构化,通过Json方式编码,Json对应格式描述在“@type”这个Field中

如下是两个例子:

  1. ProtoPayload 例子:requestLog

    {
    "log": "appengine.googleapis.com/request_log",
    "insertId": "54b56b5700ff0c26090e5f49ae0001737e6d792d6763702d70726f6a6563742d69640001737e6d792d6763702d70726f6a6563742d69642f31000100",
    "metadata": {
    "timestamp": "2015-01-13T19:00:39.796169Z",
    "labels": {
    "appengine.googleapis.com/clone_id": "00c61b117c5cc80afb2d2c7c3a2a0259eddd",
    "appengine.googleapis.com/version_id": "1",
    "appengine.googleapis.com/module_id": "default"
    },
    "zone": "us2",
    "serviceName": "appengine.googleapis.com"
    },
    "protoPayload": {
    "@type": "type.googleapis.com/google.appengine.logging.v1.RequestLog"
    "versionId": "1",
    "userAgent": "Stackdriver_terminus_bot(http://www.stackdriver.com)",
    "urlMapEntry": "myproject.wsgi.application",
    "status": 200,
    "startTime": "2015-01-13T19:00:39.796169Z",
    # ...
    "appId": "s~my-gcp-project-id",
    "appEngineRelease": "1.9.17",
    }
    }

    2. TextPayload 例子:syslog
    {
    "log": "syslog",
    "insertId": "2015-01-13|11:17:03.030166-08|10.106.208.12|301990226",
    "metadata": {
    "timestamp": "2015-01-13T19:17:01Z",
    "labels": {
    "compute.googleapis.com/resource_id": "15543007601548826368",
    "compute.googleapis.com/resource_type": "instance"
    },
    "zone": "us-central1-a",
    "serviceName": "compute.googleapis.com",
    "projectId": "my-gcp-project-id"
    },
    "textPayload": "Jan 13 19:17:01 my-gce-instance /USR/SBIN/CRON[29980]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)"
    }

关于LogViewer

搜索是Google绝活,所以LogViewer这个功能应该不在话下,LogViewer向用户提供两种模式:

  • TAIL:就像tail -f一样,可以通过流的方式刷新当前最新的日志,这个功能对于在AppEngine中调试程序的开发着而言,非常方便
  • 搜索:通过选择LogType,Time(结束时间,开始时间默认为30天前),以及Query

其中Query支持三个维度的逻辑:

  • 指定Label:对于类型为protopayload(既带自描述日志),可以增加限定词。例如status:404,则会限定404这个term出现在status这field的日志才会被返回
  • 数值类比较:可以输入一个数值范围,例如返回[404 499]范围内的错误,则可以输入status:404…499(数字之间的三个dot代表区间)
  • 布尔逻辑:在Query中不需要显示指定AND OR等逻辑运算符,而是用一种简化的逻辑。当Query中出现两个相同的label时,语义为or,例如”status:404 status:500″,则表达语义为OR。当不同label出现时,语义为AND。例如“status:200 latency:100…10000 operation:get”,三者都满足时才会被返回。

一些观察:

  1. Google可以支持case sensitive,估计建了两遍索引。
  2. 不支持分词,不支持前缀与后缀搜索,可能是因为成本问题,没有在index中放term pos
  3. 非严格有序,官方文档提到搜索结果返回时间可能会有分钟级的乱序。猜想的原因是对于AppEngine这样的环境,无法保证一个严格的日志序,而是以日志到达的时间作为索引的顺序,减少全局排序的代价
  4. LogViewer未提供API,只是作为Tool来提供。估计有两种原因,第一怕被机器调用,减少运行代价。日志查询与搜索引擎返回不同,在API层面难以确保严格的确定性,例如3提到的问题,或有丢日志、延迟搜索等隐患。

日志分发功能(Export)

Google目前提供两种目标:

  • Google Storage:

    • 路径:my-gcs-bucket/syslog/YYYY/MM/DD/
    • 格式:08:00:00_08:59:59_S0.json 08:00:00_08:59:59_S1.json
    • 周期:小时
  • Google BigQuery:
    • 路径:以不同虚拟表作为目标节点
    • my_bq_dataset.apache_access_YYYYMMDD
    • my_bq_dataset.compute_googleapis_com_activity_log_YYYYMMDD
  • 周期:实时
    • Schema:基于LogEntry Schema
      *日志收集(针对第三方应用)
      *对于大量的第三方日志,Google没有使用通用的方法(例如正则表达式,Gork等)而是使用了开源Agent(google-fluentd ),并且为每种日志提供了个性化的配置,方便用户更快接入。

支持操作系统列表:

  • Debian 7 “Wheezy” and Debian-7-backports
  • Ubuntu 12.04 “Precise”, 14.04.1 LTS “Trusty Tahr”, and 14.10 “Utopic”
  • Red Hat Enterprise Linux 6 and 7
  • CentOS 6 and 7

参考链接

https://cloud.google.com/logging/docs/

时间: 2024-11-01 12:37:37

<Google Cloud Logging>调研的相关文章

在Word中使用Google Cloud Connect插件

使用办公软件的过程中是不是总会担心硬盘挂掉,所有办公项目前功尽弃?项目进行中,无法与他人一起协作处理重要文档?其实这一切都可以在"云办公"中解决. 微软有云版本Office产品Office 365,Office2010也有全新的"云办公" 功能,但低版本的Office是否就无法体验"云办公"呢?通过Google推出的"Google Cloud Connect"插件,直接把云端功能装进微软Office当中,让老版本Office用

如何在Word中使用Google Cloud Connect插件

  使用办公软件的过程中是不是总会担心硬盘挂掉,所有办公项目前功尽弃?项目进行中,无法与他人一起协作处理重要文档?其实这一切都可以在"云办公"中解决. 微软有云版本Office产品Office 365,Office2010也有全新的"云办公" 功能,但低版本的Office是否就无法体验"云办公"呢?通过Google推出的"Google Cloud Connect"插件,直接把云端功能装进微软Office当中,让老版本Offic

VMware、Pivotal和Google Cloud协力推出全新基于Kubernetes的容器服务——Pivotal Container Service(PKS)

本文讲的是VMware.Pivotal和Google Cloud协力推出全新基于Kubernetes的容器服务--Pivotal Container Service(PKS)[编者的话]定制化应用不再是难题--虚拟巨头协力Pivotal与谷歌,将自家产品线与Kubernetes容器编排系统进行全面对接. [烧脑式Kubernetes实战训练营]本次培训理论结合实践,主要包括:Kubernetes架构和资源调度原理.Kubernetes DNS与服务发现.基于Kubernetes和Jenkins的

Google Cloud Next 云技术大会开幕;英伟达发布全新 Jetson TX2 嵌入式开发组件 | AI 开发者头条

▲内容预览: ● Google Cloud Next 云技术大会开幕 ● 英伟达发布全新 Jetson TX2 嵌入式开发组件,强化 AI 智能运算 ● IBM研发大数据模型,为控制埃博拉病毒传播大显身手 ● 谷歌开放大规模音频数据集 AudioSet,助力 AI 音频算法研究    每日推荐 ● 盘点近年来引用最多的深度学习论文 █ Google Cloud Next 云技术大会开幕 Google Cloud Next 云技术大会将于当地时间3月8日上午8:30在美国加州旧金山开幕(北京时间约

建立Google Cloud SQL数据库

建立Google Cloud SQL数据库 对于很多熟悉关系型数据库,又想尝试Google App Engine的开发者来说,Datastore成了他们的梦魇,而且要把现有应用移植到 Google App Engine 的最大问题也是 Datastore.我尝试了建立Google Cloud SQL数据库,并往其中导入数据,操作不难,感觉还不错! 前言:还不了解Google Cloud SQL的,可以先读一下这篇文章http://cnbeta.com/articles/159369.htm .

无服务器计算或将给Google Cloud Platform带来毁灭?

长久以来生存在AWS与微软Azure阴影之下的谷歌,赫然发现自己又迎来了新一波生存威胁--源头正是无服务器计算的崛起.尽管Google Cloud Platform(简称GCP)的营收水平远无法与AWS或者Azure相匹敌,但凭借着在AI与容器基础设施(Kubernetes)领域的优势,谷歌依然在云市场上占据着可靠的地位. 然而,这一切很可能随着无服务器技术的发展而土崩瓦解. 事实上,谷歌公司在无服务器计算领域远远落后于竞争对手.尽管在不断推出新功能,但GCP的创新速度根本不能同AWS或Azur

Next 2017:Google Cloud是公有云领域的强有力竞争者

近几年来,Google一直致力于在企业云领域的发展.在Next 2017大会上,有超过11000名客户.合作伙伴.开发者和分析师在现场了解了更多关于Google Cloud的最新进展.下面就是我们从CIO和CTO角度的快速评估: Google Cloud作为公有云厂商的企业定位是有潜力的.Google在云平台细分市场的主要竞争对手包括AWS.Azure和IBM.在我们的印象中,Google在企业级领域提供比其他厂商更为卓越的技术--但这并不是全部.Google在IaaS(基础设施即服务)方面讲了

Red Hat发布基于Google Cloud的OpenShift

Red Hat正在将自己的OpenShift平台即服务(PaaS)云扩展到Google Cloud Platform上.在此之前的几天,Red Hat刚刚完成了将自己的JBoss软件堆栈带入OpenStack中. 有了这个新的企业云产品,企业用户将可以构建.发布和管理在作为底层云基础设施OpenShift Dedicated with Google Cloud Platform之上的应用.目前AWS已经提供了对OpenShift的支持. Red Hat将作为OpenShift Dedicated

Google Cloud Music Beta 谷歌云音乐下载地址及安装截图

在Google 2011年开发者大会的第一天,如大家所预料的一样,Google Cloud http://www.aliyun.com/zixun/aggregation/6141.html">Music Beta 如约而至.在测试期间服务暂时免费,可以上传20000首歌曲,容量85G,所有的音乐都是存在云上.提供Windows Mac 和 Android版本,可透过云端来聆听网络.本地或其他装置的音乐. 每位与会者将得到一枚邀请码,注意的是谷歌云音乐测试版目前只在美国可用. PC版请登录