• Azure容器监控部署(下)


    上文已经基本完成了环境的搭建,prometheus可以以https的方式从node_exporter和cAdvisor上pull到数据,访问grafana时也可以以https的方式访问,安全性得到了一定的保障,但还存在一些问题,本节将继续完善


    一、分析与改进

    目前架构为

    VM1和VM2分别开启两端口向外暴露,在LB上开四个端口分别去对应VM1/VM2上的端口,

    由prometheus去连接LB上的四个端口,从而获取监控数据。

    但是,LB上做的是NAT端口转发,任何IP都可以去连接这个四个端口,并且无身份验证,因此增加了安全风险

    所以需要在LB上设定,仅可以运行prometheus的IP访问这四个端口

    可以访问 https://LBIP:18008  https://LBIP:19101检查是否可以访问

    【问题】在LB上无法限定某个特定IP访问,因此需要借助NSG来实现

    新方案

    先介绍一下AZURE上的NSG:

    NSG是网络安全组,VM和网络的连接、不同子网间的通信均可以通过NSG进行限制,介于VM 和 LB/NAT之间

    我们可以利用NSG来对从LB来的流量做限定

    应用到本方案中:为VM1/VM2添加NSG,NSG会对LB上任何端口转发来的流量做限定

    在NSG上开启只允许某个特定IP访问VM1/VM2上的指定端口即可实现。

    二、实现步骤

    1、在VM1/VM2所在的资源组中创建一个NSG

    2、在NSG中添加 允许80和443端口的入站规则,保证原来的网站可以正常访问

    3、将VM1/VM2的网卡关联到新创建的NSG中

    4、检查LB上的NAT入站规则的端口,18008/19101/28008/29101

    5、在新创建的NSG上创建入站规则,只允许特定IP访问VM1/VM2的特定端口

    6、检查prometheus是否可以连接node_exporter和cAdvisor

    登陆grafana查询各个节点状态

    显示1证明连接正常

    再去用其他任何IP访问:

    https://LBIP:19101

    https://LBIP:18008

    https://LBIP:29101

    https://LBIP:28008

    访问失败表示成功!

    7、收尾

    检查prometheus server的NSG对外开放了哪些端口,最终只允许开放443端口,其余端口一律禁止!

    【总结】

    以上与prometheus相关的所有组件均是以http协议传输的,大大降低了它的安全性,为解决这个问题使用了如下方法:

    1、prometheus与node_exporter和cAdvisor之间的数据传输使用了stunnel,先将收集到的数据转成https,然后再传输。
    2、grafana默认是http,使用nginx生成https的站点,当用户访问443端口时自动跳转到grafana上
          由于LB不支持对特定IP的限定,因此增加了NSG对特定IP做限定,这样一来,有且仅有prometheus server 可以访问使得安全性有进一步增强

    最后,我理解的正确的部署场景应当是:
    业务机VM1/VM2和prometheus server三台虚机在一个NSG中,这三个虚机组成了一个局域网,外界是无法直接访问其中任何一台的,只能通过Load Balance跳转,然后在Load Balance上开一个端口用于以https的方式访问grafana,由于prometheus node_exporter cAdvisor在局域网中,因此数据传输不存在安全性问题,这样就可以不对http做转换了。

  • 相关阅读:
    H264解码的一个測试程序
    padding与margin的差别
    CreateProcess的使用方法
    eclipse设置快捷键sysout+Alt+/后出System.out.println!亲測可用!
    crm操作权限
    LeetCode Decode Ways
    epoll使用具体解释(精髓)
    一位Erlang程序猿的自白
    用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
    liveness 生存性/活性
  • 原文地址:https://www.cnblogs.com/zqj-blog/p/10984841.html
Copyright © 2020-2023  润新知