首页 > 其他分享 > 通过 Rancher 实现 NeuVector 安全事件监控和告警

通过 Rancher 实现 NeuVector 安全事件监控和告警

时间:2023-02-14 16:03:06浏览次数:52  
标签:exporter 安全事件 配置 NeuVector Rancher 告警

作者简介
涂家英,SUSE 资深架构师,专注 Cloud-Native 相关产品和解决方案设计,在企业级云原生平台建设领域拥有丰富的经验。

NeuVector 是 SUSE 开源的​​端到端的全生命周期容器安全管理平台​​,目前 NeuVector 默认只在平台内对安全事件进行提示,并没有直观的对外输出口。站在告警角度来说缺少主动性,本文将介绍如何通过 Rancher 的监控功能实现 NeuVector 安全事件的监控和告警。

监控及展示

整体流程是通过 exporter 采集指标数据,然后通过 ServiceMonitor 实现数据的关联,最后通过 Grafana 和 AlertManager 实现数据的展示和告警:

Rancher 平台中开启监控并安装 NeuVector 服务,Rancher 从 2.6.5 版本开始将 NeuVector 集成在平台中,用户可以在集群工具中直接部署使用:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_K8s

NeuVector 原生提供了相应的 exporter 服务来采集相应的指标,镜像为:​​neuvector/prometheus-exporter​​,端口为:​​8068​​,我们可以直接通过 Rancher 的 UI 部署到集群​​system​​项目下的​​cattle-neuvector-system​​命名空间中:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_K8s_02

部署完成后,我们需要在自动生成的 service 中添加一个 Label,便于 ServiceMonitor 进行关联:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_K8s_03

在监控中配置相关的 ServiceMonitor:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Kubernetes_04

具体 Yaml 内容如下:

<pre data-tool="mdnice编辑器" style="margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">`apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
app: rancher-monitoring-prometheus # 配置一个prometheus服务的label,可以通过Rancher UI查询
nv: exporter # 建议和svc的label一致
name: nv-exporter # 名称建议和svc一致
namespace: cattle-neuvector-system #命名空间和svc的一致
spec:
endpoints:
- interval: 10s # 数据同步周期
path: / # nv exporte的指标路径
port: 8068tcp # endpoints中的port名称一致
namespaceSelector: # 匹配svc的namespace
matchNames:
- cattle-neuvector-system
selector: # 匹配svc的label
matchLabels:
nv: exporter` </pre>

配置完成后,可以通过 Rancher 进入 prometheus 的页面中查看 target 是否生成:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Rancher_05

确定 exporter 数据采集和传输正常后,可以在 prometheus 的页面查看到 NeuVector 的相关数据:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Kubernetes_06

下载 Grafana Dashboard 文件,地址为:​​https://gitee.com/leotuss/neuvector/blob/master/monitor/NV-dashboard.json​

将 Dooashboard json 文件内容添加到 Grafana 中:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Kubernetes_07

Rancher 提供的监控中 Grafana 默认账号密码为:​​admin/prom-operator​

添加完成后即可查看相关的集群安全信息:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Security_08

告警

通常来说,我们需要的告警信息为集群中的安全事件,所以可以基于​​nv_log_events​​这个指标实现,在 Rancher 的监控中创建一个​​Prometheus Rule​​:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Rancher_09

主要关注的配置:

  • PromQL:配置为​​nv_log_event​​即可,这样当产生安全事件后,就会触发告警
  • 键/值:需要定义,方便 AlertmanagerConfig 进行关联
  • 消息:定义告警消息,可以按照需求定义,如图中​​toname​​代表触发安全事件的 pod 名称、​​name​​代表安全事件的名称

配置完 PrometheusRule 后,我们可以配置 AlertmanagerConfig,实现对外告警,在 Rancher 中 AlertmanagerConfig 由两部分组成:

  • 接收器(Receivers):接受告警信息的平台
  • 路由(Route):连接 Receivers 和告警规则的配置

接收器按照实际情况配置即可,路由配置需要选择​​Receiver​​、配置匹配告警规则的 Label 以及相应的告警时间配置:

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Kubernetes_10

配置完成后,当集群出现安全事件后,会在 Rancher 的监控服务页面中展示触发的告警信息,并发送信息到后端配置的接收服务中

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Rancher_11

本示例中没有配置相应的 Receivers,大家可以按照自己的实际环境进行配置,Rancher 提供的告警支持多种接收器,如 Slack、Email、PagerDuty、Opsgenie、Webhook、Teams、SMS、自定义。

总结

NeuVector 作为一款企业级端到端的云原生容器防护平台,提供了基于零信任的、全面的安全防护能力,如:CICD 嵌入式扫描、准入控制、运行时网络安全防护、运行时进程防护、运行时敏感文件防护等。在开放性上 NeuVector 也实现了良好的兼容性,如本文中提到的使用 Prometheus 实现安全事件的监控和告警,还有对接 Syslog、Webhook 或 Splunk 实现平台日志接收,对接 LDAP、AD、SAML 或 OpenID 实现单点登录等。

 通过 Rancher 实现 NeuVector 安全事件监控和告警_Rancher_12

标签:exporter,安全事件,配置,NeuVector,Rancher,告警
From: https://blog.51cto.com/u_12462495/6056449

相关文章

  • Rancher Prime 2.7:向企业级容器管理平台深度进化
    一直以来,在众多Kubernetes开源管理平台选项中,Rancher深受社区用户的青睐。SUSE在确保开源产品持续灵活演进的同时,也致力于满足企业用户的使用场景,为此SUSE正式推出Ra......
  • 我们从 CircleCI 安全事件获得的3个经验教训
    CircleCI作为业内最受欢迎的CI/CD平台提供商之一,有超过20万个DevOps团队使用其平台。该公司在今年1月在其官网报告了一起安全事件引起客户恐慌。在此事件中,有身份不明......
  • Converting Boolean-Logic Decision Trees to Finite State Machines 如何将布尔表达
    ConvertingBoolean-LogicDecisionTreestoFiniteStateMachinesforsimpler,high-performancedetectionofcybersecurityevents将布尔逻辑决策树转换......
  • Kubernetes:开源 K8s 管理工具 Rancher 认知
    写在前面博文内容涉及​​Rancher​​的介绍,集群内安装查看​​Rancher​​的基本功能理解不足小伙伴帮忙指正我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如......
  • Rancher 反向代理
    Rancher反向代理 准备服务,把Deployments中的项目发布成服务,修改服务类型为 节点端口, 服务地址测试:http://192.168.91.130:8051/test  创建 Ingresses ......
  • Rancher 集群添加节点
    Rancher集群添加节点 1. 打开集群管理  2. 进入要添加节点的集群  3. 点击注册,并点选所需的集群角色,再左键单击注册命令,以复制注册命令。  4. 复......
  • 【Rancher】- 代理K8s部署记录
    1、在任意节点中,安装Rancherdockerrun-d--restart=unless-stopped-p8080:80-p8443:443--privilegedrancher/rancher:v2.5.9其中"v2.5.9”可以替换为“lates......
  • Rancher 工作负载
    Rancher工作负载工作负载分类:CronJobs: DaemonSets:每一个节点上部署一个Pod特点:每一台上有且只有一个Pod Deployments:部署无状态的服务......
  • Rancher 存储卷
    Rancher存储卷一.持久卷创建持久卷,预先在主机上创建好目录。涉及权限问题,自动创建可能失败。                      ......
  • Docker 安装 Rancher
    Docker安装Rancher环境:RedHatv8.6, Dockerv20.10.22, Rancher v2.6.9   如报K3S 错误:[FATAL]k3sexitedwith:exitstatus1查看日志:进入容器,查看k3s......