日志服务十大经典问题

日志服务十大经典问题

一. 非阿里云的机器能用logtail吗?

能用,装好logtail之后要额外做一个配置
先找到自己的阿里云账号ID,例如:123456

  • Linux
    touch /etc/ilogtail/users/123456
  • Windows
    原理同Linux,创建、删除用户标识同名文件到目录 C:\LogtailData\users
    C:\LogtailData\users\123456
    注意:非阿里云的机器,或者是阿里云的ECS但是跟日志服务不是一个账号买的,都必须做这一步

二. 安装好logtail之后无心跳

  1. 先看logtail状态是否在running
    sudo /etc/init.d/ilogtaild status
    如果状态running的话,打开文件/usr/local/ilogtail/ilogtail.LOG
  2. 主账号没有access key,会报错 Unauthorized ErrorMessage:no authority, denied by ACL,现在主账号必须有access key才能正常运行logtail
  3. 找到配置(示例是杭州的project,走内网)
    config server:http://logtail.cn-hangzhou-intranet.log.aliyuncs.com
    检查project的域跟这个能否对上,测试一下网络连通性,装错网络请卸载后(命令 sh logtail.sh uninstall)后重装logtail。

    经典网络ECS
    curl http://logtail.cn-regionName-intranet.log.aliyuncs.com
    curl https://logtail.cn-regionName-intranet.log.aliyuncs.com
    VPC网络ECS
    curl http://logtail.cn-regionName-vpc.log.aliyuncs.com
    curl https://logtail.cn-regionName-vpc.log.aliyuncs.com
    公网
    curl http://logtail.cn-regionName.log.aliyuncs.com
    curl https://logtail.cn-regionName.log.aliyuncs.com

  4. 如果域没有问题,网络也是通的,找到UUID开头的这一段

    Logtail started, appInfo:{
    "UUID" : "CE0DA1D4-BE7E-41D3-B153-6F33B5471269",
    "hostname" : "hostname",
    "instance_id" : "8898CC48-566C-11E7-BFFA-00163E13138D",
    "ip" : "XXX.XXX.XXX.XXX",
    "logtail_version" : "0.12.5",
    "os" : "Linux; 3.10.0-514.6.2.el7.x86_64; #1 SMP Thu Feb 23 03:04:39 UTC 2017; x86_64",
    "update_time" : "2017-06-21 18:29:40"
    }

  • 找到这一行 "ip" : "XXX.XXX.XXX.XXX",控制台必须配置这个IP,否则无心跳。
  • 如果发现文件中这个IP为空,说明您的机器没有第一块网卡(ifconfig eth0),遇到这种情况,请手工绑定一下hosts
    vi /etc/hosts
    第一行添加,保存
    XXX.XXX.XXX.XXX machinename
    XXX.XXX.XXX.XXX可以填其他网卡IP,machinename用hostname命令取一下。
  • 控制台配置的IP必须跟这个文件里面的对上,这个IP是个标签,不影响走哪个网络,取这个IP的方法:先取/etc/hosts 里面绑定的IP,如果没有绑定,取第一块网卡的IP(ifconfig eth0),最后会生成在/usr/local/ilogtail/ilogtail.LOG 这个文件里面,所以直接看这个文件最简单。

三. 怎么配置正则

可以使用自动配置正则,参考这个动画


常见格式的采集配置可以参考下 采集方式

四. 机器有心跳,采集配置都做好,但是点击预览无数据

  1. Logtail配置监控的文件,有没有实时写入?logtail收集数据,要被监控的文件有实时写入,才会触发收集动作。
  2. 如果logtail配置里面有time字段,看看您的数据,时间区间要在 -12小时 ~ +15分钟 这个区间的数据才能被收集。
  3. 打开文件/usr/local/ilogtail/ilogtail.LOG,看看里面有没有报错,常见错误参考 logtail 收集错误查询
  4. 如果配置的不是监控文件,使用的是syslog发现没有数据,请先确认下rsyslog配置是否正确正确,参考syslog配置文档
    然后确认下rsyslog版本,要装7以上版本,否则ilogtail.LOG里面会有报错无法上传数据 message:invalid time format, support unix-timestamp

五. 点击预览有数据,点击查询没有数据

  1. 要使用查询功能,必须开启索引。注意索引功能是收费的,所以需要您手动打开,如图:
  2. 索引打开了,还是查不到数据
    对索引的任何更改,打开索引/配置索引,都只对这个时间点后收集上来的数据有效,旧数据都无效。
  3. 点击查询页面的统计图表,为何没有数据?
    统计图表只支持统计语法,查询框里面要输入统计语法才能查到数据,参考:统计语法
  4. 为什么查有些关键词查不到
    索引有分词配置,分为全文索引和键值索引,如截图
  • 只有被分词分出来的term才能被搜索出来,只有配置了键值索引才能用key:value这样的语法查询。
  • 注意,为了节约索引费用,我们做了索引优化,配置了键值索引的key,不进全文索引。举例: 日志里面有个key叫做 message,并且配置了键值索引,加了空格做分词(加空格做分词,请把空格加到分词字符串的中间)。例如:message: this is a test message。
    可以用 key:value 的格式 message:this 查到,但是直接查this查不到,因为配置了键值索引的key,不进全文索引了。
  • 举例:日志里面是这个内容 abc%def 您必须把%加到分词里面,才能查到 abc 或者 def,支持前缀模糊查询,abc*可以搜索到abc开头的短语,具体查询语法,请参考:查询语法

六. 投递MaxCompute 配置

配置时候,注意以下事项:
1. 只支持主账号做投递配置,不支持子账号
2. 如果MaxCompute的项目里面已经建好表,可以选一张表,如果没有就选新建表,会自动帮您创建一张表,配置界面的左边,填日志服务的key名称,右边填MaxCompute表的列名。
3. 注意不要使用MaxCompute 保留字,表名称,列名称,都检查一遍。MaxCompute 保留字
4. 分区列建议用日志服务的系统保留字段__partition_time__,用日志采集时间来做分区,分区时间格式使用Java SimpleDateFormat,例如: 以天为分区yyyyMMdd,以小时为分区yyyyMMddHH,以分钟为分区yyyyMMddHHmm,注意不要使用精确到秒的日期格式,很容易导致单表的分区数目超过限制(6万),该格式不得包含斜线字符/ ,因为斜线字符也是MaxCompute 保留字。
5. MaxCompute分区列不允许空,如果您不用系统保留字段__partition_time__,要用自己的key,一定要确保这个key存在且有值,如果这个key没有值,投递的时候会忽略这条数据,而且这个key的值枚举不超过6万。
6. 投递时候对于非分区列会做下cast,如果cast没有成功,在MaxCompute那边看数据会发现里面是 \N,这种情况是您的日志服务上的数据格式不符合MaxCompute表的要求。
7. 如果同时配置了oss和MaxCompute投递,oss和MaxCompute的投递名称不能重名。
8. 投递任务报错
ODPS-0420095: Access Denied - Authorization Failed [4019], You have NO privilege 'odps:Describe' on {acs:odps:*:projects//tables/}.
是因为默认添加的权限丢失,在MaxCompute上运行下面三个命令重新添加一下权限,ODPS_PROJECT_NAME ODPS_TABLE_NAME替换成您自己的项目名和表名

ADD USER aliyun$shennong_open@aliyun.com;
GRANT Read, List ON PROJECT ODPS_PROJECT_NAME TO USER aliyun$shennong_open@aliyun.com;
GRANT Describe, Alter, Update ON TABLE ODPS_TABLE_NAME TO USER aliyun$shennong_open@aliyun.com;

七. 分区不够用怎么办

用户在调用SDK或者是在 ilogtail.LOG中发现这样的错误, write quota exceed,就是分区处理能力不够了,需要分裂下分区。

每个分区可提供一定的服务能力:
写入:5MB/s,2000次/s
读取:10MB/s,100次/s

分裂分区如截图:

八. logtail收集日志topic以及数据过滤怎么配置

logtail的配置默认是不生成topic的,但是logtail的配置路径往下递归,用户很多时候需要区分数据来自哪个文件夹,这个时候就可以通过文件路径正则来配置生成topic,举个例子如截图,监控 /var 这个目录下的所有子目录,info.log文件
如果有个子目录是这样的 /var/abcd/info.log
把文件路径正则填成 /var/([^/])/..log
abcd就会被抽取出来作为topic,这样就可以通过topic来区分数据来自哪个目录了。

数据过滤,指定字段Key存在且Value符合正则表达式的日志会被保留,多个条件是AND的关系,下面的截图配置,当request字段与(POST\s.)|(GET\s.) 匹配成功,Logtail将该日志上传至日志服务。

九. 如何使用子账号

授权策略采用通用的RAM权限配置格式,下面这个配置可以登录控制台ListProject,查看project下的logstore

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["log:ListProject"],
       "Resource": ["acs:log:::project/*"],
       "Effect": "Allow"
     },
     {
       "Action": [
         "log:Get*",
         "log:List*"
       ],
       "Resource": "acs:log:::project/<指定的Proejct名称>/*",
       "Effect": "Allow"
     }
   ]
 }

资源列表
动作列表

十. 使用sdk的常见问题

  1. 上传数据时候如果有time字段,这个时间必须在当前基点[-7 天~15 分钟]范围内,否则会返回400错误。
  2. 日志消费接口是直接读loghub的,可以直接用速度快,日志查询读的是索引,要开通索引才能用速度慢。
  3. 索引查询做全量查询速度不是非常快,建议先用 GetHistograms 取得日志分布区间,再用 GetLogs一个区间一个区间去取数据,取数据的时候要检查IsCompleted()是不是true,否则查询结果不准确需要重试,GetLogs最大每次只能返回100条数据。
时间: 2024-08-24 10:32:06

日志服务十大经典问题的相关文章

【阿里在线技术峰会】罗龙九:云数据库十大经典案例分析

本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的<云数据库十大经典案例分析>的分享整理而成.罗龙九以MySQL数据库为例,分析了自RDS成立至今,用户在使用RDS过程中最常见的问题,包括:索引.SQL优化.锁.延迟.参数优化.连接数.CPU.Iops.磁盘.内存等.罗龙九通过对十大经典案例的总结,还原问题原貌,给出分析问题的思路,旨在帮助用户在使用RDS的路上少一些弯路,多一些从容. 直播视频 (点击图片查看视频) 幻灯片下载:点此进入 以下为整理内容. 案例一:索引 今天之所以将索

周鸿祎的十大经典论调

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 360董事长周鸿祎喜欢总结,精于反思.这是即将出版的第一本周鸿祎官方授权传记<拒绝平庸>所传达的核心观点之一. 渗透在周鸿祎人生经历之中的,是他曾经总结或分享过的各类经典论调.在这本由财经作者李正曦所编写的书中,这些代表着周鸿祎个人风格的总结再次浮现. 以下就是腾讯科技从本书中所挖掘到的周鸿祎的十大经典论调: 1.<硅谷热&

周鸿祎十大经典论调:颠覆式创新都是马后炮

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 腾讯科技 Lois 8月13日报道 360董事长周鸿祎喜欢总结,精于反思.这是即将出版的第一本周鸿祎官方授权传记<拒绝平庸>所传达的核心观点之一. 渗透在周鸿祎人生经历之中的,是他曾经总结或分享过的各类经典论调.在这本由财经作者李正曦所编写的书中,这些代表着周鸿祎个人风格的总结再次浮现. 以下就是腾讯科技从本书中所挖掘到的周鸿祎的

数据挖掘十大经典算法(详解)

数据挖掘十大经典算法  一. C4.5  C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:  1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足:  2) 在树构造过程中进行剪枝:  3) 能够完成对连续属性的离散化处理:  4) 能够对不完整数据进行处理.  C4.5算法有如下优点:产生的分类规则易于理解,准确率较高.其缺点是:在构造树的过程中,需要对数据

数据挖掘领域十大经典算法

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 早前评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响. 1.C4.5 C4.5算法是机

数据挖掘十大经典算法

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.  不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响. 1.C4.5 

广东联通率先发布4G服务十大承诺

广东联通率先发布4G服务十大承诺 类型:厂商稿 作者:联通 时间:2014-09-26 09:54:52 小明是广东联通的忠实老用户,这天小明一家人去餐厅吃饭,老婆孩子都在用IPad上网,老婆看着孩子一直在玩游戏,花流量,有点心痛.小明很傲骄地说:"我都是联通十几年老用户了,每个月联通都给我送流量,担心什么啊". 没错,不用再担心了!9月25日,广东联通在http://www.aliyun.com/zixun/aggregation/33744.html">4G时代率先

游戏中十大经典远程杀敌招数波动拳PK香蕉皮

多玩网讯(编译/落轩飞雨)游戏中,有一种以远程著称的武器,可谓杀人不见血.武器的好坏在于谁在使用它.一个好的玩家甚至拈花飞叶即可杀人,总而言之,任何东西在他手里都可能会成为致命的杀人武器.随着游戏的发展,越来越多的远程武器已经不局限于单纯的魔术棒了,其中的很多看起来古怪好玩,充分展示了开发人员的创造能力.下面这是外国媒体罗列出的游戏中十大经典远程杀敌招数. 弓箭-<啪嗒砰> 在<啪嗒砰>系列游戏中,弓箭手扮演着至关重要的角色.尽管弓箭手的伤害能力不及长矛高,但因为位列阵型后方,所以

数据挖掘十大经典算法——PageRank

数据挖掘十大经典算法(6) PageRank PageRank,网页排名,又称网页级别.Google左侧排名或佩奇排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里•佩奇(Larry Page)之姓来命名.Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一.Google的创始人拉里•佩奇和谢尔盖•布林于1998年在斯坦福大学发明了这项技术. PageRank通过网络浩瀚的超链接关系来