前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【日志服务CLS】Nginx 访问日志接入腾讯云日志服务

【日志服务CLS】Nginx 访问日志接入腾讯云日志服务

原创
作者头像
远哥制造
修改2021-05-24 10:25:07
5.9K1
修改2021-05-24 10:25:07
举报
文章被收录于专栏:日志服务CLS

0x01.产品简介

日志服务CLS

稳定、可靠、便捷、易用的一站式日志服务平台,轻松管理海量日志数据,助力企业数字化升级

日志服务(Cloud Log ServiceCLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。 

特性
特性

一个常见的应用场景就是采集Nginx访问日志。正常运维自然是SSH登录到云主机上去查看访问日志,而接入CLS之后就在腾讯云控制台就可以看到日志了,可以使用Lucene的语法进行搜索,其实也就相当于ES的采集LOG那套东西,只不过腾讯云都给封装好了,对于部分云产品已经接入了可以直接在对应的云产品出打开开关,其他云产品比如内网的云主机可以使用LogListener采集端,至于最后保本也提供有API的采集方式

0x02.日志接入

首先在控制台开通日志服务,然后快速接入

Nginx日志
Nginx日志

1,填写日志主题名称和日志集名称

创建日志主题
创建日志主题

2.1,安装LogListener,参照https://cloud.tencent.com/document/product/614/17414

机器组
机器组

LogListener暂仅支持Linux,于是这里拿一台CentOS进行演示

下载安装LogListener

代码语言:javascript
复制
[root@CentOS ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@CentOS ~]# wget https://loglistener-1254077820.cos.ap-shanghai.myqcloud.com/loglistener-linux-x64-2.5.6.tar.gz && tar -zxvf loglistener-linux-x64-2.5.6.tar.gz -C /usr/local && cd /usr/local/loglistener-2.5.6/tools && ./loglistener.sh install
--2021-05-06 21:37:59--  https://loglistener-1254077820.cos.ap-shanghai.myqcloud.com/loglistener-linux-x64-2.5.6.tar.gz
Resolving loglistener-1254077820.cos.ap-shanghai.myqcloud.com (loglistener-1254077820.cos.ap-shanghai.myqcloud.com)... 119.28.38.63, 119.28.39.146, 119.28.206.40, ...
Connecting to loglistener-1254077820.cos.ap-shanghai.myqcloud.com (loglistener-1254077820.cos.ap-shanghai.myqcloud.com)|119.28.38.63|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3808347 (3.6M) [application/x-gzip]
Saving to: 'loglistener-linux-x64-2.5.6.tar.gz'

100%[================================================>] 3,808,347    525KB/s   in 8.2s   

2021-05-06 21:38:09 (452 KB/s) - 'loglistener-linux-x64-2.5.6.tar.gz' saved [3808347/3808347]

loglistener-2.5.6/
loglistener-2.5.6/version.txt
loglistener-2.5.6/bin/
loglistener-2.5.6/bin/loglistener
loglistener-2.5.6/bin/gethostip
loglistener-2.5.6/bin/loglisteneru
loglistener-2.5.6/bin/getmd5
loglistener-2.5.6/bin/getmac
loglistener-2.5.6/bin/check
loglistener-2.5.6/bin/loglistenerm
loglistener-2.5.6/bin/check_net
loglistener-2.5.6/bin/check_key
loglistener-2.5.6/bin/loglistener.2.5.6
loglistener-2.5.6/bin/getip
loglistener-2.5.6/update/
loglistener-2.5.6/update/update.data.temple
loglistener-2.5.6/etc/
loglistener-2.5.6/etc/loglistener.conf.temple
loglistener-2.5.6/tools/
loglistener-2.5.6/tools/loglistenerd.service
loglistener-2.5.6/tools/loglistenerd.temple
loglistener-2.5.6/tools/loglistener.sh
loglistener-2.5.6/tools/update.py
[OK] check dependencies ok
[RESULT] install loglistener success,use './loglistener.sh init' to init loglistener's config
[root@CentOS tools]# cd /usr/local/
[root@CentOS local]# cd loglistener/tools
-bash: cd: loglistener/tools: No such file or directory
[root@CentOS local]# ll
total 76
drwxr-xr-x  2 root root 4096 Nov 28 20:11 bin
drwxr-xr-x  6 root root 4096 Jan 11  2020 curl
drwxr-xr-x  4 root root 4096 Nov 28 20:11 etc
drwxr-xr-x  2 root root 4096 Apr 11  2018 games
drwxr-xr-x  6 root root 4096 Sep 24  2020 include
drwxr-xr-x  7 root root 4096 Nov 28 19:40 lib
drwxr-xr-x  2 root root 4096 Sep 24  2020 lib64
drwxr-xr-x  3 root root 4096 Nov 28  2019 libexec
drwxr-xr-x  6 root root 4096 Jan 11  2020 libiconv
drwxr-xr-x  8 root root 4096 May  6 21:38 loglistener-2.5.6
drwxr-xr-x  3 root root 4096 Jan 11  2020 man
drwxr-xr-x  3 root root 4096 Feb 17  2020 n
drwxr-xr-x 11 root root 4096 Oct 12  2019 nginx
drwxr-xr-x  9 root root 4096 Jan 11  2020 openssl
drwxr-xr-x  6 root root 4096 Mar  7  2020 python3
drwxr-xr-x  2 root root 4096 Nov 28  2019 sbin
drwxr-xr-x 11 root root 4096 Sep 24  2020 share
drwxr-xr-x  2 root root 4096 Apr 11  2018 src
drwxr-xr-x 16 root root 4096 May  6 19:59 v2-ui
[root@CentOS local]# cd loglistener-2.5.6/tools/
[root@CentOS tools]# ll
total 88
-rwxr-xr-x 1 root root 20550 Apr 23 22:08 loglistener.sh
-rw-r--r-- 1 root root   224 Apr 23 22:08 loglistenerd.service
-rwxr-xr-x 1 root root  9346 Apr 23 22:08 loglistenerd.temple
-rw-r--r-- 1 root root 47020 Apr 23 22:08 update.py

初始化LogListener

init
init

其中的参数说明如下,这里指定了机器标识并使用了外网访问,如果是云主机则推荐使用默认的内网访问

参数说明
参数说明

启动LogListener

start
start

2.2,配置机器组

新建机器组
新建机器组

点击查看可以看到具体的机器状态为正常

机器组
机器组

2021-05-22 19:57:15 更新:

LogListener有新版本时可在控制台进行手动更新,推荐在业务低峰期时进行升级

手动更新
手动更新

3,采集配置

这里使用的是BT面板:

  1. 访问日志没有切割所以指定到单文件nginx_access.log
访问日志
访问日志
  1. Nginx配置直接把配置文件里写的粘贴过来
采集配置
采集配置

会自动生成正则表达式,可以拿一条日志才测试切割是否正确

正则表达式
正则表达式

4,索引配置

其实对于ES就是index的类型配置

索引配置
索引配置

通过以上步骤就完整的创建完一个日志主题了,来总览看一下(可以跳过这部分图

基本信息
基本信息
采集配置
采集配置
索引配置
索引配置

索引生效一般有60s延迟

没错,可能是ESrefresh_interval被设置成了60s

0x03.日志检索

先不输入任何搜索词,可以看到历史日志全当成集中在一个时间段范围索引进来了

历史数据
历史数据

然后后续的新日志基本上和Nginx记录的时间相差没有太多,这里应该是访问日志从云主机上传到CLS网络请求的耗时

新数据
新数据

使用精确搜索举例

代码语言:javascript
复制
http_user_agent: "DNSPod-Monitor/2.0" 
检索
检索

其他的搜索方法还有很多,可以用Lucene的语法,参照:https://cloud.tencent.com/document/product/614/47044

0x04.日志分析

然后,来使用ES强大的聚合查询能力,比如绘制状态码饼图

分析语法示例:

代码语言:javascript
复制
* | select status, count(*) as count group by status

事先触发一次404的访问,可以看到很快就能检索到了

分析
分析

0x05.后记

自己手里只有几台云主机,平常拿SSH或者运维面板去查看日志。但是如果再增加一个数量级的话,显然这不是一件现实的事情,势必需要一套日志采集的系统,常用的ELK套件自然是一种选择,对比腾讯云的CLS可参考下图

成本优势
成本优势

并且CLS也提供了日志投递,并且也支持当做grafana的数据源……

最后就是文中所说的时间戳的问题了,对于Nginx这种日志中带时间戳的文本日志,存入CLS之后自己更关注的是日志的生成时间,而不是采集Agent存入CLS的时间,这样历史数据就也能使用常规思维进行数据处理和分析了

参照【日志服务CLS】配置使用 Nginx 访问日志中的原始时间戳,可解决上述问题

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01.产品简介
  • 0x02.日志接入
    • 1,填写日志主题名称和日志集名称
      • 2.1,安装LogListener,参照https://cloud.tencent.com/document/product/614/17414
        • 下载安装LogListener
          • 初始化LogListener
            • 启动LogListener
              • 2.2,配置机器组
                • 3,采集配置
                  • 4,索引配置
                  • 0x03.日志检索
                  • 0x04.日志分析
                  • 0x05.后记
                  相关产品与服务
                  云服务器
                  云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档