云服务器内容精选

  • LTS最佳实践总览 以下罗列了 云日志 服务(LTS)相关的最佳实践。 表1 最佳实践总览 分类 最佳实践 场景说明 日志接入 采集第三方云厂商、互联网数据中心、华为云其他Region云主机日志到LTS 本实践主要介绍将阿里云主机日志采集到华为云LTS的操作步骤,互联网数据中心和华为云上跨Region采集日志的操作方式与采集阿里云主机日志的方式类似。 日志接入 采集第三方云厂商、互联网数据中心、华为云其他Region的Kubernetes日志到LTS 本实践主要介绍将阿里云Kubernetes日志采集到华为云LTS的操作步骤,互联网数据中心和华为云上跨Region采集日志的操作方式与采集阿里云主机日志的方式类似。 日志接入 采集Syslog汇聚服务器日志到LTS 本实践主要介绍通过Syslog协议将日志上传到日志服务的操作步骤。您需要购买E CS 作为Syslog汇聚服务器,Linux服务器默认自带Syslog,目前华为云主机默认未配置接收远程Syslog写入,需要手动开启。 日志接入 将自建ELK日志导入 云日志服务LTS 本实践主要介绍使用自定义Python脚本和LTS采集器ICAgent,协助用户将日志从Elasticsearch(简称ES)迁移到LTS中。 日志接入 基于VPN打通网络实现API或SDK跨云上报日志到LTS 本实践主要介绍基于VPN快速打通网络,实现API或SDK跨云上报日志。 日志接入 使用Flume采集器上报日志到LTS 本实践主要介绍使用Flume系统采集日志,并且通过LTS侧提供的KAFKA协议方式上报日志。 日志接入 通过ECS接入LTS采集Zabbix数据 本实践介绍将Zabbix中的监控数据采集到云日志服务的日志流中。 日志接入 采集多渠道日志数据到LTS 本实践介绍采集多渠道日志数据到LTS。 日志搜索与分析 在LTS页面分析华为云ELB日志 本实践主要介绍将ELB日志接入LTS后,配置日志结构化后,即可进行日志搜索分析。 日志搜索与分析 通过LTS仪表盘可视化ELB 日志分析 结果 本实践主要介绍将ELB日志接入LTS后,配置日志结构化后,支持使用仪表盘将日志可视化,可以更直观的分析日志数据。 日志搜索与分析 在LTS页面分析华为云WAF日志 本实践主要介绍将WAF日志接入LTS后,配置日志结构化后,即可进行日志搜索分析。 日志搜索与分析 在LTS页面分析Log4j格式的应用运行日志 Log4j是Apache的一个开源项目,通过使用Log4j工具,我们可以将日志输出并保存到日志文件中,开发或运维人员会基于该日志统计日志级别的数量和占比,或者通过运行日志统计业务数据。 日志搜索与分析 将LTS日志查询页面嵌入用户自建系统 本实践主要介绍通过 统一身份认证 服务 IAM 的联邦代理机制实现用户自定义身份代理,再将LTS登录链接嵌入至客户自建系统实现无需在华为云官网登录就可在自建系统界面查询LTS日志。 日志搜索与分析 分页显示查询分析结果 本实践介绍查询结果和分析结果的分页方法。 日志搜索与分析 使用时间函数将日志时间字段转换为指定格式 本实践介绍时间字段的常用转换示例。 日志转储 批量修改LTS日志文件转储时区 本实践主要介绍通过Python脚本结合LTS API接口实现自定义的批量操作。 日志计费 通过日志流标签统计不同部门在LTS的费用开销 本实践主要介绍为了统计企业内部不同部门在LTS的费用开销情况,您可以在LTS的日志流上添加标签用于识别不同的业务部门,LTS在上传话单给费用中心时会带上这些标签信息。 日志加工 日志加工(邀测) 本实践主要介绍使用DSL加工函数实现日志数据清洗、事件判断、处理日期函数、处理日期时间、日志数据脱敏等功能。
  • 安装日志服务(LTS-Grafana)插件 执行以下命令将云日志服务grafana插件项目压缩包解压到Grafana插件目录。 使用YUM或RPM安装的Grafana: unzip LTS-Grafana-OBS-Static.2.0.1.zip -d /var/lib/grafana/plugins 使用.tar.gz文件安装的Grafana: {PATH_TO}为Grafana的安装路径,{VERSION}为Grafana版本号 unzip LTS-Grafana-OBS-Static.2.0.1.zip -d {PATH_TO}/grafana-{VERSION}/plugins-bundled/internal/input-datasource 修改Grafana配置文件 打开配置文件: 使用YUM或RPM安装的Grafana:/etc/grafana/grafana.ini 使用.tar.gz文件安装的Grafana:{PATH_TO}/grafana-{VERSION}/conf/defaults.ini 在配置文件的[plugins]节点中,设置allow_loading_unsigned_plugins参数 allow_loading_unsigned_plugins = hw-hws-lts-grafana-datasource-plugin 重启Grafana。 使用kill命令终止Grafana进程。 执行以下命令启动Grafana 使用YUM或RPM安装的Grafana: systemctl restart grafana-server 使用.tar.gz文件安装的Grafana: ./bin/grafana-server web
  • 安装日志服务(LTS-Grafana)插件 执行以下命令将云日志服务grafana插件项目压缩包解压到Grafana插件目录。 使用YUM或RPM安装的Grafana: unzip LTS-Grafana-OBS-Static.1.0.10.zip -d /var/lib/grafana/plugins 使用.tar.gz文件安装的Grafana: {PATH_TO}为Grafana的安装路径,{VERSION}为Grafana版本号 unzip LTS-Grafana-OBS-Static.1.0.10.zip -d {PATH_TO}/grafana-{VERSION}/plugins-bundled/internal/input-datasource 修改Grafana配置文件 打开配置文件: 使用YUM或RPM安装的Grafana:/etc/grafana/grafana.ini 使用.tar.gz文件安装的Grafana:{PATH_TO}/grafana-{VERSION}/conf/defaults.ini 在配置文件的[plugins]节点中,设置allow_loading_unsigned_plugins参数 allow_loading_unsigned_plugins = hw-hws-lts-grafana-datasource-plugin 重启Grafana。 使用kill命令终止Grafana进程。 执行以下命令启动Grafana 使用YUM或RPM安装的Grafana: systemctl restart grafana-server 使用.tar.gz文件安装的Grafana: ./bin/grafana-server web
  • 前提条件 已安装Grafana。具体操作,请参见Grafana官方文档。 Grafana版本要求使用9.0.0及以上版本。 下载LTS-Grafana插件压缩包。 需要在云日志服务控制台开通可视化功能才能使用LTS-Grafana插件。 目前此功能支持全部用户使用的局点有:华南-广州、华北-北京四、华北-乌兰察布二零一、华北-乌兰察布一、华东-上海一、华东-上海二、中国-香港、西南-贵阳一、亚太-新加坡、华北-北京一、亚太-曼谷;支持部分白名单用户使用的局点有:华南-深圳、中东-利雅得、亚太-雅加达、华北-乌兰察布二零二,其他局点暂不支持该功能。
  • 安装云日志服务(LTS-Grafana)插件 安装日志服务插件。 进入Grafana的安装目录。例如:GrafanaLabs\grafana\data\plugins。 下载的LTS-Grafana插件压缩包解压到当前位置,这样成功提取文件(文件名为lts-grafana-plugin)。 将提取到的文件(文件名为lts-grafana-plugin)拷贝到GrafanaLabs\grafana\plugins-bundled\internal\input-datasource目录中。 完成后,重启Grafana服务。 进入任务管理器选择服务页签,选中Grafana右击鼠标单击重新启动,可重启Grafana服务。 修改Grafana配置文件。 打开配置文件。 安装目录/GrafanaLabs\grafana\conf\defaults.ini 配置allow_loading_unsigned_plugins参数。 allow_loading_unsigned_plugins = hw-hws-lts-grafana-datasource-plugin 完成后,重启Grafana服务。
  • 前提条件 安装Grafana。 Grafana版本要求使用9.0.0及以上版本。 在Windows中,建议Grafana安装在非系统盘,否则可能会出现没有权限打开Grafana配置文件的情况。 本机上安装Grafana后,在浏览器中输入localhost:3000进行访问,初始账号密码是admin/admin。 下载LTS-Grafana插件压缩包。 需要在云日志服务控制台开通可视化功能才能使用LTS-Grafana插件。 目前此功能支持全部用户使用的局点有:华南-广州、华北-北京四、华北-乌兰察布二零一、华北-乌兰察布一、华东-上海一、华东-上海二、中国-香港、西南-贵阳一、亚太-新加坡、华北-北京一、亚太-曼谷;支持部分白名单用户使用的局点有:华南-深圳、中东-利雅得、亚太-雅加达、华北-乌兰察布二零二,其他局点暂不支持该功能。
  • 添加仪表盘 在左侧菜单栏中,单击 选择Dashboards,在New dashboard页面中,单击add an empty panel。 在New dashboards页面中,选择hws-lts-grafana-datasource-plugin插件和填写对应的sql语句。 在右上角选择对应时间,并单击 按钮,可刷新请求最新的数据并展示。 LTS-Grafana插件相关参数配置规则如下: 表格类型数据,需要将x-column参数的值给为"table"。 单值类型数据,例如数字图,需要将x-column参数值给成"single"。 包含维度列图表:x-column配置为时间列字段,y-column配置为col1:col2。其中col1为聚合列,col2为数据列。 柱状图类型图表:x-column配置为"bar",y-column配置为col1,col2。其中col1为类目列,col2为数据列。 饼图类型图表:x-column配置为"pie",y-column配置为col1,col2。其中col1为类目列,col2为数据列。
  • 云端结构化解析 登录云日志服务控制台,进入“日志管理”页面。 单击目标日志组和日志流名称。 在日志流详情页面,单击右上角,在弹出页面中,选择“云端结构化解析”,进行日志结构化配置。 开启“保留原始日志”后,原始日志将作为content字段的值存储到云日志服务。同时在资源统计和计费时content字段均会统计在内。 开启“上传解析失败日志”后,原始日志将作为_content_parse_fail_字段的值上传到云日志服务。 结构化不支持的系统字段包括:groupName、logStream、lineNum、content、logContent、logContentSize、collectTime、category、clusterId、clusterName、containerName、hostIP、hostId、hostName、nameSpace、pathFile、podName。 正则分析:使用正则表达式提取字段。 JSON:通过提取JSON字段将其拆分为键值对。 分隔符:使用分隔符(例如:冒号、空格或字符等)提取字段。 Nginx:通过log_format指令来自定义访问日志的格式。 结构化模板:通过自定义模板或系统内置模板提取字段。 云端结构化解析配置完成后,支持修改或删除结构化配置。 在云端结构化解析页面中,单击,修改结构化配置。 在云端结构化解析页面中,单击,删除结构化配置。 结构化配置删除后,将无法恢复,请谨慎操作。
  • Nginx Nginx是通过log_format指令来自定义访问日志的格式。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据。 在“步骤2 输入Nginx日志配置”中需要输入Nginx日志配置,根据输入或选择的日志进行配置。其中有默认配置可使用,单击“默认Nginx配置”即可。 标准Nginx配置文件中,日志配置的部分通常以log_format开头。 日志格式 默认配置如下所示。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 用户也可进行自定义配置,具体配置格式要求如下所示。 使用Nginx配置,不可为空 以log_format开头,并且包含(')和字段名称 长度最大限制为5000 需要与示例日志内容匹配 log_format字段之间的间隔,除大小字母、数字、下划线及中划线外,可使用其他任意字符 以(')或者(';)结尾 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤3 字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 39.149.31.187 - - [12/Mar/2020:12:24:02 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-" 并使用如下Nginx日志配置。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 当日志提取字段的类型为float时,精确度为7位有效数字。 如果超过7位有效数字的话,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。
  • 分隔符 分隔符是使用分隔符(例如:逗号、空格或字符)提取字段。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据。 在“步骤2 指定分隔符”需要根据原始日志内容选择分隔符,或自定义其他需要的特殊字符作为分隔符。 不可见字符需要输入0x开头的16进制字符,长度为0-4个字符,总共32个不可见字符。 自定义字符支持输入1-10个字符,每个字符都作为独立的分隔符。 自定义字符串支持输入1-30个字符,字符串整体作为一个分隔符。 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤3字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 1 5f67944957444bd6bb4fe3b367de8f3d 1d515d18-1b36-47dc-a983-bd6512aed4bd 192.168.0.154 192.168.3.25 38929 53 17 1 96 1548752136 1548752736 ACCEPT OK 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 当日志提取字段的类型为float时,精确度为7位有效数字。 如果超过7位有效数字的话,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。
  • JSON JSON是通过提取JSON字段将其拆分为键值对。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤2 字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 {"a1": "a1", "b1": "b1", "c1": "c1", "d1": "d1"} 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 当日志提取字段的类型为float时,精度为16位有效数字。如果超过16位有效数字,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 当日志提取字段的类型为long时,日志内容超过16位有效数字,只会精确显示前16位有效数字,后面的数字会变为0。 当日志提取字段的类型为long时,日志内容超过21位有效数字,则会识别为float类型,建议将字段类型修改为String。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。
  • 解析方式介绍 云日志服务支持两种日志结构化解析方式:云端结构化解析和ICAgent结构化解析,且一个日志流只能配置一种结构化方式,例如选择云端结构化解析后,不能再选择ICAgent结构化解析,需要删除后,才能重新选择。更多信息请参考图1。 若用户在日志接入的时候没有配置结构化解析,可以单独给目标日志流配置ICAgent结构化解析或云端结构化解析。 ICAgent结构化解析是在采集侧做结构化,支持插件组合解析,单个日志流的多个采集配置支持不同结构化解析规则,推荐使用ICAgent结构化解析的方式,更多内容请参考ICAgent结构化解析规则说明。 云端结构化解析是通过不同的日志提取方式将日志流中的日志进行结构化,云端结构化解析会消耗LTS服务端算力,未来会按照日志大小收取日志加工流量费用。 图1 不同解析方式
  • SPLIT函数语句 语句 说明 示例 参数 split split函数用于通过指定的分隔符拆分字符串,并返回拆分后的子串集合。 split(x, delimeter,[limit]) x:参数值为varchar类型。 delimeter:分隔符。 limit:限制字符串拆分的个数,大于0的整数。 split_part split_part函数通过指定的分隔符拆分字符串,并返回指定索引的内容。 split_part(x, delimeter, part) x:参数值为varchar类型。 delimeter:分隔符。 part:指定要返回字段的索引值。 split_to_map split_to_map函数用于使用指定的第一个分隔符拆分字符串,然后再使用指定的第二个分隔符进行第二次拆分。 split_to_map(x, delimiter01, delimiter02) x:参数值为varchar类型。 delimeter01:分隔符1。 delimeter02:分隔符2。
  • 示例及说明 split函数 将目标字符串按指定字符串分割,limit用于限制分割后的最大单词数,若不填写,则默认全部分割。 字段样例 Id:dc1dab7e-b045-4e77-bda4-914d083d1bf7 查询和分析语句 SELECT split(Id,'-'), split(Id,'-',2) 查询和分析结果 表1 split函数查询和分析结果 EXPR$0 EXPR$1 ["dc1dab7e","b045","4e77","bda4","914d083d1bf7"] ["dc1dab7e","b045-4e77-bda4-914d083d1bf7"] split_part函数 通过指定的分隔符拆分字符串,并返回指定索引的内容字段样例,索引下标从0开始。若索引下标超过分割数量或者为负数,则返回空字符串。 字段样例 Id: dc1dab7e-b045-4e77-bda4-914d083d1bf7 查询和分析语句 SELECT split_part(Id,'-',1) 查询和分析结果 表2 split_part函数查询和分析结果 EXPR$0 b045 split_to_map函数 用于使用指定的第一个分隔符拆分字符串,然后再使用指定的第二个分隔符进行第二次拆分,展示形式为{“KEY1”:”VALUE1”,”KEY2”:”VALUE2”}。无法被二次分割的value值为空。 字段样例 Request:request_id:"e3ac4b70c7d244f080d434e300d8065a”;request_time: "1674965051000” 查询和分析语句 SELECT split_to_map(Request,';',':') 查询和分析结果 表3 split_to_map函数查询和分析结果 EXPR$0 {"request_id ":"e3ac4b70c7d244f080d434e300d8065a ","request_time":"1674965051000"}
  • Nginx Nginx是通过log_format指令来自定义访问日志的格式。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据。 在“步骤2 输入Nginx日志配置”中需要输入Nginx日志配置,根据输入或选择的日志进行配置。其中有默认配置可使用,单击“默认Nginx配置”即可。 标准Nginx配置文件中,日志配置的部分通常以log_format开头。 日志格式 默认配置如下所示。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 用户也可进行自定义配置,具体配置格式要求如下所示。 使用Nginx配置,不可为空 以log_format开头,并且包含(')和字段名称 长度最大限制为5000 需要与示例日志内容匹配 log_format字段之间的间隔,除大小字母、数字、下划线及中划线外,可使用其他任意字符 以(')或者(';)结尾 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤3 字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 39.149.31.187 - - [12/Mar/2020:12:24:02 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-" 并使用如下Nginx日志配置。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 当日志提取字段的类型为float时,精确度为7位有效数字。 如果超过7位有效数字的话,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。