sls日志学习
学习背景
由于容器日志未挂载在服务器上,而是在镜像容器中,当容器重启时导致日志清空。为方便查询出现的问题,故使用sls日志来储存容器产生的日志。
SLS查询分析
SLS的日志查询分为两部分:查询语句和分析语句。查询语句和分析语句以竖线(|)分割,查询语句的语法为日志服务专有语法,分析语句采用标准的SQL92语法。
// 仅查询
status > 200
// 仅统计
* | SELECT status, count(*) AS PV GROUP BY status
// 查询 + 统计
status > 200 | SELECT status, count(*) AS PV GROUP BY status
简洁查询
高级查询
- 全文查询和字段查询
| 查询方式 | 说明 | 示例 |
|---|---|---|
| 全文查询 | 配置全文索引后,日志服务根据用户设置的分词符将整条日志拆分成多个词。用户可以指定关键字(字段名、字段值)和查询规则进行查询。 | |
| 字段查询 | 配置字段索引后,用户可以指定字段名称和字段值(Key:Value)进行查询。根据字段索引中设置的数据类型,用户可以进行多种类型的基础查询和组合查询。 |
- 精确查询和模糊查询
| 查询方式 | 说明 | 示例 |
|---|---|---|
| 精确查询 | 使用完整的词进行查询。 | |
| 模糊查询 | 使用通配符*或者?来进行模糊查询,参考模糊查询 |
logtail
shell
sed
这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询
按照行号
sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
复制
按照时间段
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
cat
cat 是由第一行到最后一行连续显示在屏幕上
一次显示整个文件 :
$ cat filename
复制
从键盘创建一个文件 :
$cat > filename
复制
将几个文件合并为一个文件:
$cat file1 file2 > file 只能创建新文件,不能编辑已有文件.
复制
将一个日志文件的内容追加到另外一个 :
$cat -n textfile1 > textfile2
复制
清空一个日志文件:
$cat : >textfile2
tail(尾巴)
这个是我最常用的一种查看方式
命令格式: tail[必要参数][选择参数][文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
复制
用法如下:
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
tail -fn 10 test.log 循环实时查看最后1000行记录(最常用的)
复制
一般还会配合着grep用,例如 :
tail -fn 1000 test.log | grep '关键字'
复制
如果一次性查询的数据量太大,可以进行翻页查看,例如:
tail -n 4700 aa.log |more -1000 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
less(少)
less(少)命令在查询日志时,一般流程是这样的
less log.log
shift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213
按 n 向上查找关键字
shift+n 反向查找关键字
复制
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。
less log2013.log 查看文件
ps -ef | less ps查看进程信息并通过less分页显示
history | less 查看命令历史使用记录并通过less分页显示
less log2013.log log2014.log 浏览多个文件
复制
常用命令参数:
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。
less log2013.log 查看文件
ps -ef | less ps查看进程信息并通过less分页显示
history | less 查看命令历史使用记录并通过less分页显示
less log2013.log log2014.log 浏览多个文件
常用命令参数:
-b <缓冲区大小> 设置缓冲区的大小
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
h 显示帮助界面
q 退出less 命令
复制
一般本人查日志配合应用的其他命令
history // 所有的历史记录
history | grep XXX // 历史记录中包含某些指令的记录
history | more // 分页查看记录
history -c // 清空所有的历史记录
!! 重复执行上一个命令
查询出来记录后选中 : !323
复制
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件