首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
PowerPC
» 用 Sysdig 监控服务器和 Docker 容器-2
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
用 Sysdig 监控服务器和 Docker 容器-2
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2017-12-19 20:26
|
只看该作者
用 Sysdig 监控服务器和 Docker 容器-2
Sysdig 的输出文件的基本操作Sysdig 语法和 tcpdump 类似,特别是保存和读取输出文件的时候。Sysdig 所有的输出都可以保存成一个文件。
写入输出文件:
# sysdig -w <output file>
例如:
# sysdig -w cyq.scap
读取记录文件
你一旦写了一个输出文件,就需要用 Sysdig 读取这个文件,这可以通过 -r 参数:
# sysdig -r output file
清单 1 是操作过程和输出界面。
清单 1. Sysdig 监控 Docker 容器的示意图
1
2
3
4
5
6
7
8
9
10
11
12
13
#sysdig -r cyq.scap
1 23:44:57.964150879 0 <NA> (7) > switch next=6200(sysdig)
2 23:44:57.966700100 0 rsyslogd (358) < read res=414 data=<6>
[ 3785.473354] sysdig_probe: starting capture.<6>[ 3785.473523] sysdig_probe:
3 23:44:57.966707800 0 rsyslogd (358) > gettimeofday
4 23:44:57.966708216 0 rsyslogd (358) < gettimeofday
5 23:44:57.966717424 0 rsyslogd (358) > futex addr=13892708
op=133(FUTEX_PRIVATE_FLAG|FUTEX_WAKE_OP) val=1
6 23:44:57.966721656 0 rsyslogd (358) < futex res=1
7 23:44:57.966724081 0 rsyslogd (358) > gettimeofday
8 23:44:57.966724305 0 rsyslogd (358) < gettimeofday
9 23:44:57.966726254 0 rsyslogd (358) > gettimeofday
10 23:44:57.966726456 0 rsyslogd (358) < gettimeofday
按 ASCII 格式输出
sysdig 默认按照二进制保存文件,但你可以通过使用 -A 标记得到 ASCII 格式的输出。
1
# sysdig -A
例如
1
2
3
# sysdig -A > /tmp/cjhout.txt
# cat /tmp/cjhout.txt
1 22:26:15.076829633 0 <NA> (7) > switch next=11920(sysdig)
上面的例子把输出重定位到一个文本文件。如果你想保存文件并在一个没有安装 Sysdig 的系统上检查数据,就可以这样做。
Sysdig 的过滤器Sysdig 过滤器和 tcpdump 很像,Sysdig 命令也有过滤器,可以用来过滤输出,得到特定的信息 。通过过滤器(可同时应用于实时数据和记录文件)组合,以获取更多有用的输出。
过滤器遵从“类 . 字段”结构。例如:
fd.cip:客户端 IP 地址。
evt.dir:事件方向,可以是‘ > ’用于进入事件,或‘ < ’用于退出事件。
完整的过滤器列表可以通过以下命令显示:
1
# sysdig -l
使用过滤器例子
抓取特定的进程
你可以使用“proc.name” 过滤器去抓取特定进程的所有 Sysdig 事件。下面的例子中过滤了所有名字中包含 Docker 的进程。
1
# sysdig -r cyq.scap proc.name=docker
Sysdig 中的 chisel(凿子)chisel 是用 Lua 语言编写的脚本,用来分析和处理 Sysdig 产生的事件。 Sysidg 会在下列目录中查找 chisel:., ./chisels, ~/chisels 和 /usr/share/sysdig/chisels。
首先列出 Sysdig 所有可以使用的 chisel 如图 4 。
# sysdig -cl
图 4.Sysdig 的 chisel(凿子)
默认有以下类目可用,各个类目中分布有多个内建的 chisel。
CPU Usage:CPU 使用量
Errors:错误
I/O
Logs:日志
Misc:混杂
Net:网络
Performance:性能
Security:安全
System State:系统状态
如果想查看关于某个 chisel 的详细信息,可以使用 -i 选项:
要显示指定 chisel 的信息(包括详细的命令行用法),运行以下命令:
1
# sysdig – i [chisel 名称 ]
例如,我们可以检查“CPU”类目下关于 topprocs_cpu 凿子的信息:
1
# sysdig – i topprocs_cpu
你可以通过 -c 标记和指定 chisel,让 Sysdig 来运行这个 chisel。
例如:
1
# sysdig -c topprocs_net
带过滤器运行 chisel
运行 chisel 时候,可以使用对特定的事件使用过滤器。例如抓取一个特定进程的所有网络流量
下面这个例子显示对 sshd 进程使用 echo_fds 凿子。
1
# sysdig -A -c echo_fds proc.name=sshd
抓取一个特定 IP 的网络流量交换
这里使用 echo_fds chisel 和 fd.cip 过滤器 ,显示单独一个 IP 所有的网络流量。
1
# sysdig -A -c echo_fds fd.cip=192.168.1.11
使用 csysdigcsysdig 就是运 ncurses 库的用户界面的 sysdig 软件包,Ncurses 是一个能提供功能键定义 ( 快捷键 ), 屏幕绘制以及基于文本终端的图形互动功能的动态库。在 sysdig 软件包里还提供了一个工具 csysdig,该工具执行后,运行界面和 top 命令类似。csysdig 工作界面如图 5。
图 5.csysdig 工作界面
csysdig 使用如下快捷键:
P:暂停屏幕输出信息
Enter:进入当前突出显示的条目。
Ctrl+F:列表搜索。
F1- 帮助信息
F2- 显示视图选择器。这将让你切换到另一个视图。
F4- 使用过滤器
F5- 查看 IO 输出信息
F7 显示帮助页面当前显示的视图。
F8 打开视图的操作面板。
F9,打开列排序面板。
Q 放弃退出。
Arrows, PgUP, PgDn, Home, End:图标上下左右的移动控制。
下面看看两个例子
查看计算机上运行的容器列表及其资源使用情况 如图 6。
#csysdig -vcontainers
图 6.查看计算机上运行的容器列表及其资源使用情况
查看容器上下文的进程列表如图 7 。
#csysdig -pc
图 7. 查看容器上下文的进程列表
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
测试测量
综合技术交流
电源与功率管理
MCU 单片机技术
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议