Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

日志服务—阿里云日志服务使用记录 #46

Open
johnnian opened this issue Feb 9, 2018 · 0 comments

Comments

1 participant
@johnnian
Copy link
Owner

commented Feb 9, 2018

前言

之前写过关于搭建日志统一收集系统的方法,针对中小型系统,可以简单适用,参考这里:日志服务—使用Flume-NG/Kafaka搭建日志搜集服务

传统自建日志服务,有一些弊端:

  • 维护成本高
  • 经济成本高

试用了阿里云的日志服务,发现有几个亮点:

  • 支持ECS/非ECS服务的日志搜集:意味着如果想要汇总公司局域网的后台日志,也是可以滴;
  • 日志采集客户端可以云端配置:这个就非常方便了;
  • 强大的日志分析与处理;
  • 经济实惠;

过程记录

下面就只是记录下安装Logtail过程中的一点问题,具体使用以及原理,官网文档足够详细。

操作系统: CentOS 7.4

一、安装Logtail

在阿里云上创建日志服务的「项目」,需要注意的是,「项目」选择哪个区域,在官网的Logtail下载地址也需要选择对应链接,否则,Logtail客户端将无法和日志服务通信。

例如,创建 「华东2」区域的日志项目:

1、ECS下安装Logtail

对于ECS(VPC网络),选择「华东2」区域的下载:

[root@localhost ~]# wget http://logtail-release-sh.vpc100-oss-cn-shanghai.aliyuncs.com/linux64/logtail.sh; chmod 755 logtail.sh; sh logtail.sh install cn_shanghai_vpc

2、非ECS安装Logtail

步骤1: 下载Logtail

对于非ECS服务器,选择「华东2」区域的下载:

[root@localhost ~]# wget http://logtail-release.oss-cn-hangzhou.aliyuncs.com/linux64/logtail.sh; chmod 755 logtail.sh; sh logtail.sh install cn_shanghai_internet

步骤2: 配置用户标志

参考链接:非ECS(或线下机器)创建用户标志

步骤3: 重新启动Logtail

[root@izuf6dm5xm1ukjp6vlgmqzz ~]# /etc/init.d/ilogtaild stop
[root@izuf6dm5xm1ukjp6vlgmqzz ~]# /etc/init.d/ilogtaild start
[root@izuf6dm5xm1ukjp6vlgmqzz ~]# /etc/init.d/ilogtaild status

二、日志分段解析配置

目前服务器的日志,类似如下:

127.0.0.1|2018-02-10 14:22:24.542| INFO|http-nio-2003-exec-1|com.johnnian.Interceptor.InterceptorHandler:49|/query| - [HTTP请求]开始处理---------------
127.0.0.1|2018-02-10 14:22:24.543| INFO|http-nio-2003-exec-1|com.johnnian.Interceptor.InterceptorHandler:94|/query| - [请求信息]类型:JSON RAW 流

可以通过简单的配置规则,将log中的各个字段拆分出来,步骤如下:

qq20180210-143121 2x

qq20180210-143219 2x

qq20180210-143314 2x

应用到机器组中之后,新的日志上来,阿里的日志服务会自动将其分段,示例如下:

qq20180210-143526 2x

参考: 分隔符日志

附:遇到问题

可以通过Logtail日志来排查问题:

[root@localhost ~]# tail -100f /usr/local/ilogtail/ilogtail.LOG

1、Logtail心跳失败——无法读取本地IP地址,因为网卡名字的原因

在线下机器上安装Logtail,登录阿里云管理平台,发现Logtail客户端心跳异常,查看了下,原因是Logtail客户端无法读取本机IP地址导致。

默认情况下,Logtail 客户端会读取系统第一个网卡(eth0)的IP地址,而操作的CentOS默认的网卡名字不是 「eth0」,因此就一直读取不到IP地址。

可以从Logtail的应用配置文件看出问题:

[root@localhost ~]# cat /usr/local/ilogtail/app_info.json
{
   "UUID" : "01122243-****-4CBF-****-278ED0536481",
   "hostname" : "****",
   "instance_id" : "*",
   "ip" : "",
   "logtail_version" : "0.16.3",
   "os" : "Linux; 3.10.0-693.2.2.el7.x86_64; #1 SMP Tue Sep 12 22:26:13 UTC 2017; x86_64",
   "update_time" : "2018-02-09 15:56:53"
}
[root@izuf6dm5xm1ukjp6vlgmqzz ~]#

解决方案: 修改CentOS默认网卡名字为「eth0」,然后重启Logtail,即可,参考 CentOS 7 更改网卡名

2、心跳成功,但是日志上传失败, 查看Logtail日志,报错如下:

[2018-02-09 14:31:28.540046]    [ERROR] [2838]  [build/release64/sls/ilogtail/Sender.cpp:191]   send data to SLS fail:discard data      StatusCode:401  RequestId:5A7D40401BABB893FC91730A      ErrorCode:Unauthorized  ErrorMessage:no authority, denied by ACL        projectName:ticketcom   logstore:ticketcom_dev  RetryTimes:1    LogLines:389    bytes:15334     endpoint:http://cn-shanghai.log.aliyuncs.com
[2018-02-09 14:31:32.364462]    [WARNING]       [2838]  [build/release64/sls/ilogtail/ConfigManager.cpp:1860]   GetAccessKey:Fail       no GetAccessKey in response:{"Error":{"Code":"OLSParameterInvalid","Message":"The parameter is invalid : uuid=none AccessKeyId pair","RequestId":"5A7D40444F64FDCD6B8FD55E"}}

Deny By ACL, 原因是因为当前的登录账号没有配置 AccessKey,配置一下就可以了(配置主账号AccessKey,而不是子账号),参考:错误诊断:SEND_DATA_FAIL_ALARM

官方参考文档

@johnnian johnnian changed the title 阿里云日志服务使用 日志服务—阿里云日志服务使用记录 Feb 9, 2018

@johnnian johnnian added the Tools label Feb 9, 2018

@johnnian johnnian added this to 开发工具 in 开发工具 Feb 26, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.