阿里云日志服务日志过滤器配置

日志收集流程

对于日志收集的客户端,其work pipeline通常包括三个过程:Input,Process,Output。

  • Input: 适配各类日志接入源,目前Logtail支持文本文件、Syslog(TCP流式)两种形式数据写入。
  • Process:自定义日志处理逻辑,常见的有:日志切分、日志编码转换、日志结构化解析、日志过滤等等。
  • Output:定义日志输出,例如Logtail以HTTP协议写数据到日志服务。

今天要介绍Logtail在日志处理阶段的两个新功能:转码、过滤

日志转码

日志服务限制数据的字符编码为UTF-8,这也是Logtail在发送数据阶段对于字符编码的要求。

但可能一些较老的应用组件在处理中文的时候,会打印GBK编码的数据到日志文件。

这种情况下,你可以在Logtail配置的高级选项中,选择日志文件编码为”GBK“。那么,Logtail在采集日志时,会对日志内容先做GBK到UTF-8的编码转换,再进行后续处理。

Logtail目前支可以支持UTF-8和GBK两种文件编码格式。对于GBK格式,Logtail使用Linux系统的iconv API,编码转换过程中会额外消耗机器计算资源。

问:如何判断我的GBK日志文件是否可以通过Logtail收集?
答:在Linux Shell下使用iconv命令进行转码测试,假设日志文件名为gbk.log,执行命令:

iconv -f GBK -t UTF-8 gbk.log -o gbk_to_utf8.log

如果执行成功则说明文件编码是GBK;如执行失败(类似iconv: illegal input sequence at position 2743错误),则说明文件不是合法的GBK编码,无法通过Logtail做编码转换,请尝试调整应用输出的日志文件编码格式为UTF-8。

日志过滤

举一个web服务器的例子,Nginx每时每刻接收大量请求,并在access.log记录这些请求:

10.200.98.220 - - [25/May/2016:14:55:42 +0800] "HEAD sls-pub.alibaba-inc.com/projects/ali-cn-hangzhou-sls-admin/logstores HTTP/1.1" 0.024 18204 200 37 "-" "aliyun-sdk-java" 13605
10.200.98.220 - - [25/May/2016:14:55:42 +0800] "POST sls-pub.alibaba-inc.com/projects/ali-cn-hangzhou-sls-admin/logstores HTTP/1.1" 0.024 18204 404 37 "-" "ali-log-logtail" 13608
10.200.98.220 - - [25/May/2016:14:55:42 +0800] "PUT sls-pub.alibaba-inc.com/projects/ali-cn-hangzhou-sls-admin/logstores HTTP/1.1" 0.024 18204 401 37 "-" "aliyun-sdk-java" 13609
10.200.98.220 - - [25/May/2016:14:55:42 +0800] "PUT sls-pub.alibaba-inc.com/projects/ali-cn-hangzhou-sls-admin/logstores HTTP/1.1" 0.024 18204 502 37 "-" "aliyun-sdk-java" 13610
10.200.98.220 - - [25/May/2016:14:55:42 +0800] "GET sls-pub.alibaba-inc.com/projects/ali-cn-hangzhou-sls-admin/logstores HTTP/1.1" 0.024 18204 401 37 "-" "cpp-sdk-0.6" 13612
10.200.98.220 - - [25/May/2016:14:55:42 +0800] "PUT sls-pub.alibaba-inc.com/projects/ali-cn-hangzhou-sls-admin/logstores HTTP/1.1" 0.024 18204 400 37 "-" "cpp-sdk-0.6" 13614
10.200.98.220 - - [25/May/2016:14:55:42 +0800] "POST sls-pub.alibaba-inc.com/projects/ali-cn-hangzhou-sls-admin/logstores HTTP/1.1" 0.024 18204 400 37 "-" "ali-log-logtail" 13615
10.200.98.220 - - [25/May/2016:14:55:42 +0800] "HEAD sls-pub.alibaba-inc.com/projects/ali-cn-hangzhou-sls-admin/logstores HTTP/1.1" 0.024 18204 200 37 "-" "cpp-sdk-0.6" 13616

对于问题调查的场景,HTTP 200请求的日志量通常是巨大的,如果我们希望降低日志存储的成本,只上传发生异常的请求日志,应该怎么来做呢?

在今天,你可以打开Logtail配置的高级选项,设置过滤器来解决数据过滤的问题。

如上图所示,分别对url字段和status字段设置了两个过滤器。指定字段Key存在且Value符合正则表达式的日志会被保留。

定义多个过滤器的时候,判断条件是“与”的关系,满足所有过滤器设置的日志是合法的,否则被丢弃。

对于一条日志,当url字段与"(POSTs.)|(GETs.)"匹配成功且status字段与"[345]d+"匹配成功的时候(只采集POST、GET请求且状态码非200的日志),Logtail将该日志上传至日志服务,如下图所示:

如果设置过滤器的字段名在日志里找不到,那么这条日志也是不合法的,需要被丢弃。默认情况下,用户没有任何过滤器设置的情况下,所有被Logtail读取并解析成功的日志数据都会写入日志服务。

实例配置:

只收集匹配到 topic  为  action 或者 plugin 的日志

更多关于阿里云日志服务日志过滤器配置技术文章请查看下面的相关链接

(0)

相关推荐

  • 阿里云linux服务器下安装Apache的简单方法

    随着阿里云主机的火热推出,很多的站长朋友,也开始使用阿里云服务器了.php程序,大多还是要跑在linux系统的主机上的. 今天,介绍下在阿里云的linux主机上安装apache的方法. 云服务器操作系统:CentOS 6.2 64位 客户端操作环境:Mac OSX Teminal 操作步骤: 1. 运行 Terminal,输入命令: 复制代码 代码如下: ssh username@ip,然后输入密码. 2. 安装 Apache 软件: 复制代码 代码如下: yum install httpd 3

  • 阿里云云服务器Windows 2008下IIS添加网站绑定域名图文教程

    云服务器默认使用Windws 2008 中自带的IIS服务器. 1. 打开Internet 服务(IIS)管理器. 1) 启动左下角任务栏中的"服务器管理器",选择"角色"->"Web服务器IIS"->"Internet 服务(IIS)管理器"来打开IIS管理界面: 2) 选择"网站",点击右侧"添加网站": 2. 填写网站信息.在添加网站窗口中,输入您的"网站名称

  • 阿里云centos 7下搭建shadowsocks的教程

    本文介绍了阿里云centos 7下搭建shadowsocks的教程,分享给大家,具体如下: 1.安装pip 由于安装的是python 版本的 shadowsocks,所以首先安装pip $ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" $ python get-pip.py 2.安装shadowsocks $ pip install --upgrade pip $ pip install sh

  • 阿里云LNMP 云服务器重启后网站打不开解决方法

    今天升级了一下系统架构,把MySQL升级到5.5.30,Nginx升级到1.4.1,php升级到5.5.25,但是升级之后服务器挂掉了,于是我就用了回滚快照,让系统恢复到原来的状态(阿里云的回滚快照功能需要重启服务器),服务器回滚之后,数据都在,但是就是无法提供web服务,尝试了 iptables -F清除防火墙规则,但是网站仍旧打不开.通过ps -aux命令发现nginx没有启动,于是执行了 复制代码 代码如下: /usr/local/nginx/sbin/nginx 之后,服务器web服务果

  • Linux使用scp远程传输命令进行服务器文件互传(阿里云服务器)

    前几天 WordPress大学 所在的服务器环境不太稳定,CPU 占用总是 100%,折腾了好几次都没有找到原因,只好考虑重新配置环境,考虑到配置和优化好环境需要几个小时,总不能将网站停掉吧,所以要将 WordPress大学 网站临时迁移到另外的服务器运行,配置好再迁回来. 看来下阿里云的两个云服务器,都是同一个区的,所以决定通过内网进行文件传输,速度快不说(正常传输文件的速度能达到35m~50m/s),还不占用公网带宽. 阿里云云服务器有一个安全组策略,可能需要设置下 内网入.出方向的IP白名

  • 阿里云云服务器Windows 2008中的FTP配置图文教程

    云服务器默认使用Windws 2008 IIS 中自带的FTP服务器.  1.添加FTP帐号  A. 选择"服务管理器"->"配置"->"本地用户和组"->"用户":在空白处右键选择"新用户": B. 输入用户名,全名和描述可以不填写:输入两遍密码:可以设置"用户不能修改密码"和"密码永不过期":选择"创建": 2. 打开Inte

  • 阿里云PHP SMS短信服务验证码发送方法

    开通SMS服务 首先去这个网站开通阿里云的SMS短信服务:https://www.aliyun.com/product/sms?spm=5176.8142029.388261.295.vU5T5g 创建签名.模板 要使用短信服务器需要先创建签名和模板,并提交给阿里云审核通过才可以正常使用短信服务. 创建签名 创建签名的时候注意一下签名名称,其他的话就不累赘了. 记住签名名称 现在请记住你创建的签名名称,一会在代码中需要使用. 创建模板 创建模板也很简单,阿里云已经把要如何填写写的很清楚了. 查看

  • Windows2003下VPN服务器架设图文教程

    有不少朋友因为工作关系常常移动办公,因此资料的传递.与公司信息的及时交流或是累了想在异地打开公司或家里的电脑看看电影等等应用显得很头疼.这方面的应用也就是说要通过INTERNET进行安全网络通信,共享资源.而想要实现这样的需求,其实已经有最好的办法了--VPN.   一. VPN概述.       在架设此VPN服务器之前,我们有必要先了解一些相关知识,因为要使用VPN服务是需要一定的网络基础的.VPN(Virtual Private Network)即虚拟专用网络,就是两个具有VPN发起连接能

  • .net core 使用阿里云分布式日志的配置方法

    前言 好久没有出来夸白了,今天教大家简单的使用阿里云分布式日志,来存储日志,没有阿里云账号的,可以免费注册一个 开通阿里云分布式日志(有一定的免费额度,个人测试学习完全没问题的,香) 阿里云日志地址:https://sls.console.aliyun.com/lognext/profile 先开通阿里云日志,这个比较简单授权就可以了 选择接入数据,我们这里选 .NET 选择项目名称,没有项目的可以去创建一个,项目名称后面会用到,如果你有购买阿里云ECS,项目区域最好选择跟ECS同一个区域(每个

  • 阿里云服务器实现域名解析步骤(小白教程)

    对于刚开始接触网站搭建的新手来说,好多东西都需要去了解学习,搭建网站首先需要购买服务器,然后购买域名,然后是域名解析,最后是域名备案等这些大的流程步骤.本节就来将将域名解析的步骤,服务器是以阿里云服务器来讲,其他平台的服务器暂时不介绍.具体步骤如下所示. 一.打开进入阿里云官网,然后登陆阿里云账号,进入控制台. 二.在控制台主界面,找到左侧菜单栏里面的下拉菜单,并找到"域名"选项,地球图标的那个选项,单击进入域名控制台. 三.进入域名控制台之后,可以看到该阿里云账号下面的域名,然后点击

  • 阿里云主机Windows 2008服务器硬盘分区和格式化图文教程

    1. 启动左下角任务栏中的"服务器管理器",选择"存储"->"磁盘管理":  2. 在空白分区上,右键选择"新建简单卷":    3. 启动新建简单卷向导:选择"下一步":  4. 设置简单卷的大小,即分区的大小:默认会选择所有剩余空间.您也可以根据需要,指定分区大小:选择"下一步":  5. 指派驱动器号,默认顺序使用:选择"下一步":  6. 格式化分区,默

  • 阿里云服务器CentOS服务器初始化设置步骤

    CentOS服务器初始化设置其实不分阿里云或其它服务器了,操作配置过程与步骤也差不多,下面和小编一起来看看. 一.挂载硬盘 1.磁盘分区 fdisk -l #查看设备,一般可以看到设备名为/dev/xvdb fdisk /dev/xvdb #对磁盘进行分区 输入n #创建新分区 输入p #创建主分区 输入1 #创建第一个主分区 输入w #保存并执行以上命令,创建分区 待上面的命令执行完成之后,使用fdisk -l查看,会看到类似 /dev/xvdb1的分区 说明分区成功. 2.磁盘格式化 mkf

  • 搭建阿里云ecs服务器之安装图形化界面的方法

    完成远程连接以后就可以安装图形化界面,不过也要看你的服务器配置,配置低了会比较卡 在我们购买阿里云ECS服务器之后,默认的系统环境是很干净的,我购买的是ubuntu16.04,远程登录进入之后,发现系统是这样的: 安装步骤: 先使用阿里云或者putty远程连接上服务器以后再执行以下操作 输入以下代码 更新软件库 apt-get update 升级软件 apt-get upgrade 安装ubuntu桌面系统 apt-get install ubuntu-desktop 重启服务器 reboot

随机推荐