对于系统管理员和开发人员来说,一个优秀的流程最终工具可能会给他们的工作带来很大的帮助。当然,你可能还需要监控原来的网络通讯,最后打开的文件等。,但是一个开源工具可能更适合你的实际需求,因为它不仅是免费的,而且开源代码会让你更容易使用,比如Sysdig。
Sysdig不仅可以分析Linux系统的“实时”状态,还可以将其转储为离线文件,供离线查看。
简而言之,Sysdig是一个监控服务器系统级别的工具。本文将逐步向您展示如何在Ubuntu 15和CentOS 7中安装开源Sysdig。
1.在Ubuntu 15中安装Sysdig
众所周知,Sysdig会更新最新的Debian、RHEL和容器版本。因此,我们将使用apt命令安装Sysdig,当我们第一次需要使用以下curl命令通过Draios通过root用户设置apt时。(下图来自:Linoxide)
# curl-s https://S3 . Amazon AWS . com/download . DRAIOS . com/DRAIOS-GPG-key . public | apt-key add-
# curl-s-o/etc/apt/sources . list . d/draios . list http://download.draios.com/stable/deb/draios.list
现在,您需要通过执行以下命令来更新包列表
# apt-get更新
如上所示,系统更新完成后,您需要使用以下命令安装软件包头的内核。
# apt-get-y install Linux-headers- $(uname-r)
现在可以用下面的命令在Ubuntu上安装sisdig。
# apt-get -y安装sysdig
第二,在CentOS 7中安装sisdig
这个安装过程类似于之前在Ubuntu服务器上安装sisdig。您需要重复相同的步骤来设置yum库。
运行以下命令以使用rpm工具。
# rpm -导入https://S3 . Amazon AWS . com/download . DRAIOS . com/DRAIOS-GPG-key . public
然后下载Draios库,并在您的CentOS 7中应用yum
# curl-s-o/etc/yum . repo . d/draios . repo http://download.draios.com/stable/rpm/draios.repo
更新软件包并开始安装sisdig。
# yum更新
要下载DKMS(动态核心模块技术)安装包,需要EPEL库,因此需要运行以下命令。
# yum -y安装epel-发布
要安装sysdig检测模块,首先安装内核头,然后使用以下命令在服务器端安装sysdig包。
# yum install kernel-dev- $(uname-r)
# yum安装sysdig
第三,使用sysdig
成功安装sysdig后,我们将列出一些最流行的例子。使用sysdig最简单的方法就是直接调用sysdig,不需要其他任何东西。如下:
# sysdig
默认情况下,sysdig将捕获数量、时间、CPU数量、PID、类型和详细参数。
大量的输出可能会令人讨厌,而且不是所有的信息都会有用,所以可以通过-w保存所需的信息。
# sysdig -w result.dump
运行-r调出您保存的文件。也可以用CTRL+C停止sysdig命令..
# sysdig -r result.dump
Sisdig过滤器
对于您需要的特定信息,您需要使用sisdig过滤器,并使用以下命令来查找需要过滤掉的信息列表。
# sysdig -l
-
字段类别:fd
fd.num标识文件deor的唯一编号。
对于TCP/UDP FDs,客户端端口。
对于TCP/UDP FDs,远程协议。
-
字段类别:流程
proc.pid生成事件的进程的id。
proc.name生成
事件。
proc.args启动proc时命令行传递的参数
ess生成事件。
proc.env生成事件的进程的环境变量。
proc.cmdline全过程命令行,即proc.name + proc.args。
proc.exeline全过程命令行,以exe作为第一个参数,即pro
c.exe+进程参数
proc.cwd事件的当前工作目录。
proc.duration自进程启动以来的纳秒数。
proc.fdlimit进程可以打开的最大FDs数。
proc . FD usage pr的未结FDs和最大可用FDs之间的比率
奥西。
。
thread.pfminor自线程启动以来的次要页面错误数。
如果生成事件的线程是线程中的主线程,则为“真”
e进程。
因此,您可以使用sisdig过滤器来过滤大量的信息,并获得您需要的内容。下面是一个“MySQLD”的例子。
# sysdig-r result . dump proc . name = MySQL d
140630 02:20:30.848284977 2 mysqld(2899)io _ getevents
140632 02:20:30.848289674 2 MySQL(2899)>switch next = 2894(MySQL d)pgft _ maj = 0 pgft _ min = 1 VM _ size = 841372 VM _ RSS = 85900 VM _ swap = 0
140633 02:20:30.848292784 2 MySQL d(2894)io _ getevents
140635 02:20:30.848297142 2 MySQL(2894)>switch next = 2901(MySQL d)pgft _ maj = 0 pgft _ min = 4 VM _ size = 841372 VM _ RSS = 85900 VM _ swap = 0
140636 02:20:30.848300414 2 mysqld(2901)io _ getevents
140638 02:20:30.848307954 2 MySQL(2901)>switch next = 0 pgft _ maj = 0 pgft _ min = 1 VM _ size = 841372 VM _ RSS = 85900 VM _ swap = 0
140640 02:20:30.849340499 1 mysqld(2900)io _ getevents
140642 02:20:30.849348907 1 mysqld(2900)>switch next = 2895(MySQL d)pgft _ maj = 0 pgft _ min = 1 VM _ size = 841372 VM _ RSS = 85900 VM _ swap = 0
140643 02:20:30.849357633 1 MySQL d(2895)io _ getevents
140645 02:20:30.849362258 1 MySQL(2895)>switch next=26329(已调谐)pgft _ maj = 0 pgft _ min = 1 VM _ size = 841372 VM _ RSS = 85900 VM _ swap = 0
140702 02:20:30.995763869 1 MySQL d(2898)io _ getevents
140704 02:20:30.995777232 1 mysqld(2898)>switch next = 2893(MySQL d)pgft _ maj = 0 pgft _ min = 1 VM _ size = 841372 VM _ RSS = 85900 VM _ swap = 0
140705 02:20:30.995782563 1 MySQL d(2893)io _ getevents
140707 02:20:30.995795720 1 mysqld(2893)>switch next = 0 pgft _ maj = 0 pgft _ min = 3 VM _ size = 841372 VM _ RSS = 85900 VM _ swap = 0
140840 02:20:31.204456822 1 MySQL LD(2933)FUTEX addr = 7 f 1453334d 50 op = 129(FUTEX _ PRIVATE _ FLAG | FUTEX _ WAKE)val = 1
140842 02:20:31.204464336 1 MySQL LD(2933)FUTEX addr = 7 f 1453334 D8C op = 393(FUTEX _ CLOCK _ REALY | FUTEX _ PRIVATE _ FLAG | FUTEX _ WAIT _ BITSET)val = 12395
140844 02:20:31.204569972 1 mysqld(2933)>switch next = 3920 pgft _ maj = 0 pgft _ min = 1 VM _ size = 841372 VM _ RSS = 85900 VM _ swap = 0
140875 02:20:31.348405663 2 mysqld(2897)io _ getevents
同时,您可以使用proc.name筛选器来获取特定流程的所有事件。例如,以下内容过滤了许多包含ssh的进程。
sysdig凿的应用
Sysdig凿子有自己的脚本语言来扩展功能。凿子可以在LUA书写,这是一种通用语言,所以更容易使用。
首先,您可以使用-cl命令列出所有可用的凿子。
# sysdig -cl
如果要运行凿子,可以使用-c命令来标记和指定凿子名称。当然你跑凿的时候还是可以用滤镜的。
# sysdig -c topfiles_bytes
结论:总的来说,sysdig在故障排除和系统监控领域占有一席之地。这里只是一个简单的安装例子,sysdig中的巨大功能需要自己去探索。赶紧用。
PS: sysdig的GitHub网站在这里:https://github.com/draios/sysdig
1.《pgft 系统监察:在Ubuntu上安装开源Sysdig》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《pgft 系统监察:在Ubuntu上安装开源Sysdig》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1130610.html