总结:Linux输入流分析案例

一、netstat分析

1、完整命令

netstat -n | awk -F ':' '{print $2}'|awk -F ' ' '{print $1}'|grep -v '^\s*$'|sort|uniq -c|sort -r|more

最终返回每个端口未关闭的TCP连接的数量,可见,8099端口(hubble-sdk-api)最多,其次是8081端口(hubble-api)

2、命令简单说明

第一步:打印数据,查看格式

netstat -n:列出所有基于ip和端口的TCP连接列表

如下所示:

Local Address:表示本机打开的端口,可能是监听端口(即本地为服务进程,开启的端口)

Foreign Address:和外部哪个ip哪个端口建立的连接。

如果Local Address为本地启动服务监听端口,则Foreign Address为客户端

如果Foreign Addres为服务端监听的地址端口,则Local Address为本地打开的一个端口,为了和服务端建立TCP连接

第二步:分析数据

命令:awk -F ':' '{print $2}'|awk -F ' ' '{print $1}':是经过了两次分析

第一次通过“:”分隔,获取第二块包含端口的内容(因为主要是分析端口的数量)

第二次是再次对输入流进行分隔,这次需要按照空格分隔,取第一个得到端口

 第三步:过滤

命令:grep -v '^\s*$'

由于可能存在一些空格啥的乱七八糟的东西,因此需要过滤掉

第四步:计算

命令:sort|uniq -c|sort -r

首先通过sort进行排序,然后用uniq -c去重,并计算重复端口的数量,最后再根据重复端口的数量进行下排序

二、文件分析

sort -k11rg hubble_api_access_log.2019-09-05.txt |grep '/api/alarm/findAlarmByPage'

背景:今天想查下有哪些ip调用了updateZabbixAgent(此接口即禁用接口)接口。日志在info.log中,因此要操作这个文件。

updateZabbixAgent||updateZabbixAgent ip=

updateZabbixAgent||agentName=

以上两行为调用接口会打印的日志。

根据以上日志信息可知,要分析出具体的哪些ip调用了这个接口,调用了多少次,并按照调用次数作降序排列。怎么做到呢?

首先查出日志中包含上面日志的,如updateZabbixAgent||agentName=,如下所示:

cat info.log|grep 'updateZabbixAgent||updateZabbixAgent ip='

这样查出来的内容如下所示:

2016-03-10 14:31:48||ApiServiceImpl.java||updateZabbixAgent||agentName=beijing2-21vianet-10-77-33-5.idc.qiyi.domain
2016-03-10 14:31:49||ApiServiceImpl.java||updateZabbixAgent||agentName=beijing2-21vianet-10-77-33-5.idc.qiyi.domain
2016-03-10 14:31:58||ApiServiceImpl.java||updateZabbixAgent||agentName=hangzhou5-wasu-113-215-7-199.idc.qiyi.domain
2016-03-10 14:31:58||ApiServiceImpl.java||updateZabbixAgent||agentName=hangzhou5-wasu-113-215-7-199.idc.qiyi.domain
2016-03-10 14:31:58||ApiServiceImpl.java||updateZabbixAgent||agentName=qlbmonitor-internal-master-online001-bjlt.qiyi.virtual
2016-03-10 14:31:59||ApiServiceImpl.java||updateZabbixAgent||agentName=qlbmonitor-internal-master-online001-bjlt.qiyi.virtual

这样还是不够,因为我知道这里面肯定有很多重复的。我想知道每个agentname调用了多少次。

但是在这之前必须对上面的信息进行处理,把agentname抽取出来。我们以等号“=”分割就可以分开了。

等号分开后产生两个参数,

分别是:$1=2016-03-10 00:00:07||ApiServiceImpl.java||updateZabbixAgent||agentName=

           $2=guangzhou-gwbn-211-162-56-69.idc.qiyi.domain

然后我们取第二个参数即可。分割命令:awk -F '='

分割之后调用命令:打印第二个参数,即awk -F '=' '{print $2}',因此命令就变成了:

cat info.log|grep 'updateZabbixAgent||agentName=' | awk -F '=' '{print $2}'

打印结果就是所有主机名,如下:

shijiazhuang5-cnc-10-31-28-32.idc.qiyi.domain
nanchang-cmnet-223-82-244-5.idc.qiyi.domain
nanchang-cmnet-223-82-244-5.idc.qiyi.domain
hangzhou5-wasu-113-215-7-203.idc.qiyi.domain
hangzhou5-wasu-113-215-7-203.idc.qiyi.domain
beijing2-21vianet-10-77-33-7.idc.qiyi.domain
beijing2-21vianet-10-77-33-7.idc.qiyi.domain
vcache-g615bx1-dongguan3_ct.qiyi.domain
vcache-g615bx1-dongguan3_ct.qiyi.domain
qlbmonitor-internal-master-online001-bjdxt6.qiyi.virtual
qlbmonitor-internal-master-online001-bjdxt6.qiyi.virtual
jiyang-cnc-10-153-89-34.idc.qiyi.domain
jiyang-cnc-10-153-89-34.idc.qiyi.domain
beijing2-21vianet-10-77-33-1.idc.qiyi.domain
beijing2-21vianet-10-77-33-1.idc.qiyi.domain
shan3xi-scc-139-148-1-165.idc.qiyi.domain
vcache-6hwdc3x-jinan_cmnet.qiyi.domain
shan3xi-scc-139-148-1-165.idc.qiyi.domain
vcache-6hwdc3x-jinan_cmnet.qiyi.domain
beijing2-21vianet-10-77-33-7.idc.qiyi.domain
beijing2-21vianet-10-77-33-7.idc.qiyi.domain
beijing2-21vianet-10-77-33-8.idc.qiyi.domain
beijing2-21vianet-10-77-33-8.idc.qiyi.domain
beijing2-21vianet-10-77-33-1.idc.qiyi.domain
beijing2-21vianet-10-77-33-1.idc.qiyi.domain
beijing4-21vianet-10-77-48-39.idc.qiyi.domain
beijing4-21vianet-10-77-48-39.idc.qiyi.domain
beijing2-21vianet-10-77-33-8.idc.qiyi.domain
beijing2-21vianet-10-77-33-8.idc.qiyi.domain
beijing2-21vianet-10-77-33-15.idc.qiyi.domain
beijing2-21vianet-10-77-33-15.idc.qiyi.domain
guangzhou-scc-103-27-27-50.idc.qiyi.domain
guangzhou-scc-103-27-27-50.idc.qiyi.domain
hunan-citic-122-48-244-154.idc.qiyi.domain
hunan-citic-122-48-244-154.idc.qiyi.domain
shan3xi-scc-139-148-1-162.idc.qiyi.domain
shan3xi-scc-139-148-1-162.idc.qiyi.domain
vcache-h612bx1-dongguan3_ct.qiyi.domain
vcache-h612bx1-dongguan3_ct.qiyi.domain
beijing2-21vianet-10-77-33-15.idc.qiyi.domain
beijing2-21vianet-10-77-33-10.idc.qiyi.domain
beijing2-21vianet-10-77-33-15.idc.qiyi.domain
beijing2-21vianet-10-77-33-10.idc.qiyi.domain
dalian-fbwn-49-5-7-4.idc.qiyi.domain
dalian-fbwn-49-5-7-4.idc.qiyi.domain
beijing2-21vianet-10-77-33-10.idc.qiyi.domain
beijing2-21vianet-10-77-33-10.idc.qiyi.domain
jiyang-cnc-10-153-89-32.idc.qiyi.domain
jiyang-cnc-10-153-89-32.idc.qiyi.domain
guangzhou-scc-103-27-27-52.idc.qiyi.domain
guangzhou-scc-103-27-27-52.idc.qiyi.domain
beijing4-ct-10-10-130-59.idc.qiyi.domain
beijing4-ct-10-10-130-59.idc.qiyi.domain
nanning-gwbn-211-162-50-37.idc.qiyi.domain
nanning-gwbn-211-162-50-37.idc.qiyi.domain
vcache-baode01-zhujiang_catv.qiyi.domain
vcache-baode01-zhujiang_catv.qiyi.domain
zhejiang5-cmnet-10-57-170-103.idc.qiyi.domain
zhejiang5-cmnet-10-57-170-103.idc.qiyi.domain
jinan-cmnet-120-192-83-10.idc.qiyi.domain
jinan-cmnet-120-192-83-10.idc.qiyi.domain
vcache-6gwdc3x-jinan_cmnet.qiyi.domain
vcache-6gwdc3x-jinan_cmnet.qiyi.domain
guangzhou-scc-103-27-27-42.idc.qiyi.domain
guangzhou-scc-103-27-27-42.idc.qiyi.domain

然后就要进行统计分析了。每个主机名调用了多少次,则要用到sort和uniq -c命令。

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

uniq -c是比较相邻两行是否一样,一样就加一,既然比较相邻两行,那必须先排序,把一样的放在一起,然后统计次数。所以命令如下:

cat info.log|grep 'updateZabbixAgent||agentName=' | awk -F '=' '{print $2}'|sort|uniq -C

打印如下:

120 shanghai6-ct-10-121-33-43.idc.qiyi.domain
     78 shanghai6-ct-10-121-64-183.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-81.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-82.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-83.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-84.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-85.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-86.idc.qiyi.domain
    120 shijiazhuang5-cnc-10-31-28-10.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-11.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-12.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-13.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-1.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-32.idc.qiyi.domain
      2 shijiazhuang5-cnc-10-31-28-40.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-47.idc.qiyi.domain
      2 shijiazhuang5-cnc-10-31-28-57.idc.qiyi.domain
      6 shijiazhuang-cnc-10-31-50-97.idc.qiyi.domain
    118 suzhou-gwbn-101-247-66-198.idc.qiyi.domain
      2 vcache-1912bx1-chongqing3_cnc.qiyi.domain
      4 vcache-1sn373x-wuhan_aipu.qiyi.domain
      4 vcache-2bqbg02-wuhan_aipu.qiyi.domain
      4 vcache-4twbg02-wuhan_aipu.qiyi.domain
      4 vcache-5twbg02-wuhan_aipu.qiyi.domain
    118 vcache-6gwdc3x-jinan_cmnet.qiyi.domain
    118 vcache-6hwdc3x-jinan_cmnet.qiyi.domain
      4 vcache-7twbg02-wuhan_aipu.qiyi.domain
      4 vcache-8twbg02-wuhan_aipu.qiyi.domain
    118 vcache-9gwdc3x-jinan_cmnet.qiyi.domain
    118 vcache-baode01-zhujiang_catv.qiyi.domain
    118 vcache-bpxbg02-jinan2_cmnet.qiyi.domain
    116 vcache-ccpbg02-jinan2_cmnet.qiyi.domain
      6 vcache-cm6t13x-wuhan_aipu.qiyi.domain
    118 vcache-dpxbg02-jinan2_cmnet.qiyi.domain
      4 vcache-dsw333x-wuhan_aipu.qiyi.domain
      4 vcache-fsw333x-wuhan_aipu.qiyi.domain
    118 vcache-g615bx1-dongguan3_ct.qiyi.domain
      4 vcache-gz7vky1-gansu_cmnet.qiyi.domain
    120 vcache-h612bx1-dongguan3_ct.qiyi.domain
      6 vcache-hq1hf3x-jinan_cmnet.qiyi.domain
      6 vcache-j08vky1-gansu_cmnet.qiyi.domain
    118 vcache-j613bx1-dongguan3_ct.qiyi.domain
      2 vip-api-web-online004-jylt.qiyi.virtual
      2 vipapi-web-online004-shjj.qiyi.virtual
      2 vipapi-web-online005-bjlt.qiyi.virtual
      2 vipapi-web-online010-bjlt.qiyi.virtual
      2 vipapi-web-online013-jyyd.qiyi.virtual
      2 vipapi-web-online014-jyyd.qiyi.virtual
      2 vipapi-web-online015-jyyd.qiyi.virtual
      6 vip-web-online010-bjdx.qiyi.virtual
      2 vip-web-online011-bjdx.qiyi.virtual
      4 wuhan-aipu-183-95-132-175.idc.qiyi.domain
      2 xiaomi-vipapi-web-online002-bjdx.qiyi.virtual
      2 xiaomi-vipapi-web-online003-bjdx.qiyi.virtual
      2 zhanjiang6-ct-10-20-187-145.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-100.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-101.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-102.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-103.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-104.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-105.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-106.idc.qiyi.domain
    120 zhejiang5-cmnet-10-57-170-107.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-108.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-109.idc.qiyi.domain
    118 zhengzhou4-cnc-10-37-60-172.idc.qiyi.domain

前面就得到调用次数了。

最后再来一次按照次数排列就行了。加上sort -n 即按照数字进行排序。命令如下:

cat info.log|grep 'updateZabbixAgent||agentName=' | awk -F '=' '{print $2}'|sort|uniq -c|sort -n

查询结果:前面是调用次数。

118 guangzhou-scc-103-27-27-52.idc.qiyi.domain
    118 hangzhou5-wasu-113-215-7-199.idc.qiyi.domain
    118 hangzhou5-wasu-113-215-7-201.idc.qiyi.domain
    118 hangzhou5-wasu-113-215-7-203.idc.qiyi.domain
    118 hunan-citic-122-48-244-154.idc.qiyi.domain
    118 jinan2-cnc-10-53-20-80.idc.qiyi.domain
    118 jiyang-cnc-10-153-89-31.idc.qiyi.domain
    118 jiyang-cnc-10-153-89-32.idc.qiyi.domain
    118 jiyang-cnc-10-153-89-33.idc.qiyi.domain
    118 jiyang-cnc-10-153-89-35.idc.qiyi.domain
    118 jiyang-cnc-10-153-89-36.idc.qiyi.domain
    118 jiyang-cnc-10-153-89-38.idc.qiyi.domain
    118 live-show-server-web-online011-sjhl.qiyi.virtual
    118 nanchang-cmnet-223-82-244-13.idc.qiyi.domain
    118 nanchang-cmnet-223-82-244-5.idc.qiyi.domain
    118 nanning-cmnet-122-72-96-173.idc.qiyi.domain
    118 nanning-gwbn-211-162-50-40.idc.qiyi.domain
    118 nanning-gwbn-211-162-50-46.idc.qiyi.domain
    118 qlbmonitor-internal-master-online001-bjdx.qiyi.virtual
    118 qlbmonitor-internal-master-online001-bjdxt6.qiyi.virtual
    118 qlbmonitor-internal-master-online001-jylt.qiyi.virtual
    118 qlbmonitor-internal-master-online001-sjhl.qiyi.virtual
    118 scache-537h032-taibei_other.qiyi.domain
    118 shan3xi-scc-139-148-1-162.idc.qiyi.domain
    118 shan3xi-scc-139-148-1-164.idc.qiyi.domain
    118 shan3xi-scc-139-148-1-165.idc.qiyi.domain
    118 shanghai12-ct-10-221-32-16.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-11.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-12.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-13.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-1.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-32.idc.qiyi.domain
    118 shijiazhuang5-cnc-10-31-28-47.idc.qiyi.domain
    118 vcache-6gwdc3x-jinan_cmnet.qiyi.domain
    118 vcache-6hwdc3x-jinan_cmnet.qiyi.domain
    118 vcache-9gwdc3x-jinan_cmnet.qiyi.domain
    118 vcache-baode01-zhujiang_catv.qiyi.domain
    118 vcache-bpxbg02-jinan2_cmnet.qiyi.domain
    118 vcache-dpxbg02-jinan2_cmnet.qiyi.domain
    118 vcache-g615bx1-dongguan3_ct.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-100.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-101.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-102.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-103.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-104.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-105.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-108.idc.qiyi.domain
    118 zhejiang5-cmnet-10-57-170-109.idc.qiyi.domain
    118 zhengzhou4-cnc-10-37-60-172.idc.qiyi.domain
    119 beijing4-ct-10-10-130-59.idc.qiyi.domain
    120 beijing2-21vianet-10-77-32-72.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-10.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-11.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-12.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-13.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-14.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-15.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-1.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-3.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-4.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-5.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-6.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-7.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-8.idc.qiyi.domain
    120 beijing2-21vianet-10-77-33-9.idc.qiyi.domain
    120 beijing7-ct-10-10-16-17.idc.qiyi.domain
    120 chongqing-aipu-101-36-99-92.idc.qiyi.domain
    120 dalian-fbwn-49-5-7-4.idc.qiyi.domain
    120 fuzhou-wasu-113-215-18-89.idc.qiyi.domain
    120 guangzhou-gwbn-211-162-56-69.idc.qiyi.domain
    120 guangzhou-gwbn-211-162-56-81.idc.qiyi.domain
    120 guangzhou-gwbn-211-162-56-93.idc.qiyi.domain
    120 guangzhou-gwbn-211-162-57-227.idc.qiyi.domain
    120 guangzhou-gwbn-211-162-57-229.idc.qiyi.domain
    120 guangzhou-gwbn-211-162-57-231.idc.qiyi.domain
    120 guangzhou-gwbn-211-162-57-233.idc.qiyi.domain
    120 guangzhou-scc-103-27-27-34.idc.qiyi.domain
    120 guangzhou-scc-103-27-27-38.idc.qiyi.domain
    120 guangzhou-scc-103-27-27-48.idc.qiyi.domain
    120 guangzhou-scc-103-27-27-50.idc.qiyi.domain
    120 jiangxi-crtc-122-72-80-37.idc.qiyi.domain
    120 jinan-cmnet-120-192-83-10.idc.qiyi.domain
    120 jiyang-cnc-10-153-89-34.idc.qiyi.domain
    120 jiyang-cnc-10-153-89-37.idc.qiyi.domain
    120 lanzhou2-ct-10-93-80-65.idc.qiyi.domain
    120 nanning-gwbn-211-162-50-37.idc.qiyi.domain
    120 qingdao-gwbn-42-199-255-38.idc.qiyi.domain
    120 qingdao-scc-122-4-76-104.idc.qiyi.domain
    120 qlbmonitor-internal-master-online001-bjlt.qiyi.virtual
    120 qlbmonitor-internal-master-online001-shgq.qiyi.virtual
    120 shanghai6-ct-10-121-33-43.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-81.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-82.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-83.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-84.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-85.idc.qiyi.domain
    120 shanghai-gwbn-124-14-11-86.idc.qiyi.domain
    120 shijiazhuang5-cnc-10-31-28-10.idc.qiyi.domain
    120 suzhou-gwbn-101-247-66-198.idc.qiyi.domain
    120 vcache-h612bx1-dongguan3_ct.qiyi.domain
    120 vcache-j613bx1-dongguan3_ct.qiyi.domain
    120 zhejiang5-cmnet-10-57-170-106.idc.qiyi.domain
    120 zhejiang5-cmnet-10-57-170-107.idc.qiyi.domain
    142 hangzhou5-wasu-113-215-7-204.idc.qiyi.domain

也许你还想看看总数有多少行,需要命令wc 。

Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

如果要查看行数,加上 -l。命令如下:

cat info.log|grep 'updateZabbixAgent||agentName=' | awk -F '=' '{print $2}'|sort|uniq -c|sort -n|wc -l

输出结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值