kubernetes 容器监控 Sysdig Falco

news2024/11/24 11:53:26

 开头语

写在前面:如有问题,以你为准,

目前24年应届生,各位大佬轻喷,部分资料与图片来自网络

内容较长,页面右上角目录方便跳转

Sysdig 监控容器系统调用

介绍 资料

Sysdig:一个非常强大的系统监控、分析和故障排查工具。

汇聚 strace+tcpdump+htop+iftop+lsof 工具功能于一身!

sysdig 除了能获取系统资源利用率、进程、网络连接、系统调用等信息,

还具备了很强的分析能力,例如:

  1. 按照CPU使用率对进程排序
  2. 按照数据包对进程排序
  3. 打开最多的文件描述符进程
  4. 查看进程打开了哪些文件
  5. 查看进程的HTTP请求报文

查看机器上容器列表及资源使用情况

项目地址:https:/github.com/draios/sysdig

文档:https:/github.com/draios/sysdig/wiki

使用内核模块实现

安装

以容器方式启动

sudo docker run --rm -i -t --privileged --net=host \

    -v /var/run/docker.sock:/host/var/run/docker.sock \

    -v /dev:/host/dev \

    -v /proc:/host/proc:ro \

    -v /boot:/host/boot:ro \

    -v /src:/src \

    -v /lib/modules:/host/lib/modules:ro \

    -v /usr:/host/usr:ro \

    -v /etc:/host/etc:ro \

    docker.io/sysdig/sysdig

一键式安装

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash

二进制安装 (成功)

https://github.com/draios/sysdig/releases/

[root@master bin]# pwd

/root/k8s/cks/sysdig-falco/sysdig-0.34.1-x86_64/usr/bin

[root@master bin]# ./scap-driver-loader

[root@master bin]# cp ./syscdig /usr/bin/

[root@master bin]# cp ./csyscdig /usr/bin/

命令与内容解析

命令介绍

./syscdig

# 执行后所返回的就是工作在宿主机上所有进程系统调用信息

./csyscdig

# 显示以top方式显示

sysdig 常用参数:

-l,--list:列出可用于过滤和输出的字段

-M <num seconds>:多少秒后停止收集

-p <output format>,-print:=<output format>:指定打印事件时使用的格式

    使用-pc或-pcontainer容器友好的格式

使用-pk或-pkubernetes k8s友好的格式

-c <chiselname><chiselargs>:指定内置工具,可直接完成具体的数据聚合、分析工作

-w <filename>:保存到文件中

-r <filename>:从文件中读取

输出格式

53774 02:04:16.549209075 0 sshd (29696.29696) > switch next=0 pgft_maj=8 pgft_min=529 vm_size=165912 vm_rss=3420 vm_swap=0

evt.num: 53774

evt.time: 02:04:16.549209075

evt.cpu: 0

proc.name: sshd

thread.tid: (29696.29696)

指定格式输出

 sysdig -p "user:%user.name time:%evt.time proc name:%proc.name"

 # 10秒之后暂停

  sysdig  -M 10 -p "user:%user.name time:%evt.time proc name:%proc.name"

示例

# 指定输出kubelet相关进程

sysdig proc.name=kubelet

# 查看指定容器中的系统调用,执行后可以在另一个端口使用curl访问一下

docker run -d  --name web nginx:1.17.1

chisels

使用的工具箱,一组预定义的功能集合,用于分析特定的场景

sysdig -cl 列出所有Chisels,以下是一些常用的:

  1. topprocs_cpu: 输出按照CPU使用率排序的进程列表,例如sysdig-c
  2. topprocs_net: 输出进程使用网络TOP
  3. topprocs file: 进程读写磁盘文件TOP
  4. topfiles bytes: 读写磁盘文件TOP
  5. netstat: 列出网络的连接情况
sysdig -c topprocs_cpu

CPU%                Process             PID

--------------------------------------------------------------------------------

5.00%               kube-apiserver      2118426

3.00%               sysdig              2879420

3.00%               calico-node         1611591

2.00%               etcd                1584058

2.00%               gvfs-udisks2-vo     3494

2.00%               dockerd             1581154

1.00%               containerd-shim     2117777

1.00%               systemd             1

1.00%               vmtoolsd            1074

1.00%               kubelet             2118147

可以看出哪个进程占cpu比较高

Falco 监控容器运行时 (未成功)

介绍 资料

Falco 是一个Linux安全工具,它使用系统调用来保护和监控系统。

Falco 最初是由Sysdig开发的,后来加入CNCF孵化器,成为首个加入CNCF的运行时安全项目。

Falco 提供了一组默认规侧,可以监控内核态的异常行为,例如:

  1. 对于系统目录/etc,/usr/bin,/usr/sbin的读写行为
  2. 文件所有权、访问权限的变更
  3. 从容器打开shell会话
  4. 容器生成新进程
  5. 特权容器启动

项目地址

https://github.com/falcosecurity/falco

架构

也是使用内核模块实现

安装

# 源码

https://github.com/falcosecurity/falco/releases/tag/0.36.2

# 源安装

https://falco.org/zh-cn/docs/installation/


rpm --import https://falco.org/repo/falcosecurity-packages.asc

curl -s -o /etc/yum.repos.d/falcosecurity.repo https://falco.org/repo/falcosecurity-rpm.repo

# yum list dkms 查看有没有这个包依赖没有则安装

# yum install epel-release && yum -y install  dkms

 yum -y install falco
 # 加载模块

 falco-driver-loader

systemctl start falco-bpf.service && systemctl enable falco-bpf.service

[root@master sysdig-falco]# systemctl list-units | grep falco

  falco-bpf.service                                                                                                                             loaded activating auto-restart Falco: Container Native Runtime Security with ebpf  

  falcoctl-artifact-follow.service                                                                                                              loaded active     running      Falcoctl Artifact Follow: automatic artifacts update service

配置文件

falco 配置文件目录 :/etc/falco

falco.yaml falco 配置与输出告警通知方式

falco rules.yaml 规侧文件,默认已经定义很多威胁场景(已经内置一些规则)

falco_rules.local.yaml 自定义扩展规则文件(专门给用户自定义的)

k8 s audit rules..yaml  Ka8s审计日志规则

[root@master ~]# tree /etc/falco/

/etc/falco/

├── aws_cloudtrail_rules.yaml

├── falco_rules.local.yaml

├── falco_rules.yaml

├── falco.yaml

├── k8s_audit_rules.yaml

└── rules.d

字段解析 falco_rules.local.yaml

编写示例

nginx容器里面执行不属于nginx的进程,就进行警告输出到 /var/log/messages

 

更改输出位置

falco.yaml

以json格式输出

指定输出文件

默认是 /var/log/messages

 

 命令

[root@master ~]# falco

Sun Nov 19 21:20:29 2023: Falco version: 0.36.2 (x86_64)

Sun Nov 19 21:20:29 2023: Falco initialized with configuration file: /etc/falco/falco.yaml

Sun Nov 19 21:20:29 2023: Loading rules from file /etc/falco/falco_rules.yaml

Sun Nov 19 21:20:29 2023: Loading rules from file /etc/falco/falco_rules.local.yaml

Sun Nov 19 21:20:29 2023: The chosen syscall buffer dimension is: 8388608 bytes (8 MBs)

Sun Nov 19 21:20:29 2023: Starting health webserver with threadiness 2, listening on port 8765

Sun Nov 19 21:20:29 2023: Loaded event sources: syscall

Sun Nov 19 21:20:29 2023: Enabled event sources: syscall

Sun Nov 19 21:20:29 2023: Opening 'syscall' source with Kernel module

^CSun Nov 19 21:21:28 2023: SIGINT received, exiting...

Syscall event drop monitoring:

   - event drop detected: 0 occurrences

   - num times actions taken: 0

Events detected: 0

Rule counts by severity:

Triggered rules by rule name:

查看监控信息

tail -f /var/log/messages

实操

touch /root/test

会出现 /var/log/messages

docker run -d --name web nginx:1.17.1

可视化监控(FalcoSideKick)

架构 资料

# FalcoSideKick: 一个集中收集并指定输出,支持大量方式输出,例如Influxdb、Elasticsearch等

https://github.com/falcosecurity/falcosidekick

# FalcoSideKick-ui: 告警通知集中图形展示系统

https://github.com/falcosecurity/falcosidekick-ui

安装

docker run -d -p 2801:2801 --name falcosidekick -e WEBUI_URL=http://192.168.100.53:2802 falcosecurity/falcosidekick



docker run -d -p 2802:2802 --name falcosidekick-ui falcosecurity/falcosidekick-ui

修改输出方式

修改了输出方式才能将数据接入ui

示例

特权容器启动

在bin下创建文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1369860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PostgreSQL的常见错误和解决方法

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 在学习新的东西时&#xff0c;会犯很多的错误&#xff0c;会遇到很多坑。我们在填坑与犯错中不断进步成长。 以下是在学习pgsql中…

【驱动序列】C#获取电脑硬件之CPU信息,以及它都有那些品牌

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是是《驱动序列》文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识…

【深度学习】SDXL tensorRT 推理,Stable Diffusion 转onnx,转TensorRT

文章目录 sdxl 转 diffusers转onnx转TensorRT sdxl 转 diffusers def convert_sdxl_to_diffusers(pretrained_ckpt_path, output_diffusers_path):import osos.environ["HF_ENDPOINT"] "https://hf-mirror.com" # 设置 HF 镜像源&#xff08;国内用户使…

k8s的集群调度:

k8s的集群调度&#xff1a; Scheduler:负责调度资源&#xff0c;把pod调度到node节点 预算策略 优先策略 list-watch k8s集群当中&#xff0c;通过list-watch的机制进行每个组件的协作&#xff0c;保持数据同步&#xff0c;每个组件之间的解耦 Kubectl配置文件&#xff0c…

1.9 day7 IO进程线程

使用消息队列完成两个进程间的通信 进程1 #include <myhead.h> struct migbuf {long a;//消息类型char b[1024];//消息正文 }; #define SIZE (sizeof(struct migbuf)-sizeof(long)) int main(int argc, const char *argv[]) {//创建key值key_t key0;if((keyftok(".…

从文本(.txt)文件中读取数据时出现中文乱码

前言 当需要从记事本中读取数据时&#xff0c;发现读取的数据会出现中文乱码&#xff0c;我尝试了C和C读取文件&#xff0c;发现都是这样。 乱码原因 文本文件的保存默认使用UTF-8编码方式&#xff0c;而VS编译器的编码方式是GBK&#xff0c;所以不同的编码方式导致了乱码。…

6.1.2捕捉图像(内含5D博客长截图,你们都去哪儿了?)

6.1.2捕捉图像 利用HyperSnap6可以很方便地捕捉全屏、虚拟桌面、窗口、控件、整页、按钮、活动窗口和区域。除此之外&#xff0c;它还可以进行自由捕捉和特殊捕捉。 1&#xff0e;捕捉窗口或控件 利用传统的“PrintScreen”或“AltPrintScreen”键只能捕捉整个屏幕或当前活动…

numpy100练习题,包含相应使用函数解释

取自github开源项目&#xff1a;numpy100题 文章目录 1. 导入numpy库并简写为 np (★☆☆)2. 打印numpy的版本和配置说明 (★☆☆)3. 创建一个长度为10的空向量 (★☆☆)4. 如何找到任何一个数组的内存大小&#xff1f; (★☆☆)5. 如何从命令行得到numpy中add函数的说明文档?…

【Python学习】Python学习10-列表

目录 【Python学习】Python学习10-列表 前言创建语法访问列表中的值更新和删除列表元素操作列表列表截取Python列表函数&方法参考 文章所属专区 Python学习 前言 本章节主要说明Python的列表List。 创建语法 创建一个列表 通过方括号和逗号分割创建&#xff0c;列表数据…

springboot学生成绩管理系统源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

书生大模型全链路开源体系

书生浦语大模型全链路开源体系开源了哪些东西 数据书生万卷&#xff1a;一个2TB的涵盖多种模态与任务的数据集预训练InternLM-Train&#xff1a;微调XTuner&#xff1a;可供你低成本微调模型的工具箱部署LMDeploy&#xff1a;一个服务端场景下、transformer 结构 LLM 部署工具…

使用开源通义千问模型(Qwen)搭建自己的大模型服务

目标 1、使用开源的大模型服务搭建属于自己的模型服务&#xff1b; 2、调优自己的大模型&#xff1b; 选型 采用通义千问模型&#xff0c;https://github.com/QwenLM/Qwen 步骤 1、下载模型文件 开源模型库&#xff1a;https://www.modelscope.cn/models mkdir -p /data/…

Camunda ServiceTask

一&#xff1a;Java class Java class实现JavaDelegate接口&#xff0c;只需要配置类的全限定名即可&#xff0c;不需要被Spring容器管理。 public class JavaClassServiceTask implements JavaDelegate {Overridepublic void execute(DelegateExecution execution) throws …

k8s的集群调度---下

前情回顾 预算策略&#xff1a;过滤出合适的节点 优选策略&#xff1a;选择部署的节点 nodeName&#xff1a;硬匹配&#xff0c;不走调度策略。node01. nodeSelector&#xff1a;根据节点的标签选择&#xff0c;会走调度算法。 只要是走调度算法&#xff0c;在不满足预算策…

荣誉 | 数说故事荣登2023粤港澳大湾区科创百强;上榜甲子光年2023中国数字经济榜

硬科技向前&#xff0c;加「数」战新年 2024新年伊始&#xff0c;数说故事就迎来了两大喜讯 上榜2023粤港澳大湾区科创榜 荣登【光年20】2023中国数字经济产品创新榜 ...... 以技术为笔&#xff0c;创新为墨 「数」写着数说故事在科技领域的强大实力与潜力 为新年注入更…

Selenium 学习(0.18)——软件测试之基本路径测试

1、基本路径法测试的概念 是一种白盒测试方法&#xff0c;它在程序控制流图的基础上&#xff0c;通过分析控制构造的环行复杂性&#xff0c;导出基本可执行路径集合&#xff0c;从而设计测试用例的方法。 要保证在测试中程序的每一个可执行语句至少执行一次 【这和语句…

基于pytorch的房价预测

简介 本文主要介绍的基于pytorch和房价预测深度学习网络构建。 该系统使用的是网络上的开源数据&#xff1a; 实现了对房价数据的处理&#xff0c;包括词频统计、情感分析等&#xff0c;并将分析结果以图表形式进行展示。通过这个系统&#xff0c;用户可以便捷地进行分析和可…

scVI与MultiVI

scVI&#xff1a;https://docs.scvi-tools.org/en/stable/user_guide/models/scvi.html MultiVI&#xff1a;https://docs.scvi-tools.org/en/stable/user_guide/models/multivi.html 目录 scVI生成推理任务 MultiVI生成推理 scVI single cell variational inference提出了一个…

JAVA实现文件上传至阿里云

注册阿里云账号后,开通好对象存储服务&#xff08;OSS&#xff09;&#xff0c;三个月试用 阿里云登录页 (aliyun.com) 目录 一.创建Bucket 二.获取AccessKey&#xff08;密钥&#xff09; 三.参考官方SDK文件&#xff0c;编写入门程序 1.复制阿里云OSS依赖&#xff0c;粘贴…

山东名岳轩印刷包装携专业包装袋盛装亮相2024济南生物发酵展

山东名岳轩印刷包装有限公司盛装亮相2024第12届国际生物发酵展&#xff0c;3月5-7日山东国际会展中心与您相约&#xff01; 展位号&#xff1a;1号馆F17 山东名岳轩印刷包装有限公司是一家拥有南北两个生产厂区&#xff0c;设计、制版、印刷&#xff0c;营销策划为一体的专业…