Logstash - 安全和监控

  • 简述

    在本章中,我们将讨论 Logstash 的安全和监控方面。
  • 监控

    Logstash 是一个非常好的工具,可以监控生产环境中的服务器和服务。生产环境中的应用程序会产生不同类型的日志数据,如访问日志、错误日志等。Logstash 可以使用过滤器插件计算或分析错误、访问或其他事件的数量。这种分析和计数可用于监控不同的服务器及其服务。
    Logstash 提供插件,例如HTTP Poller监控网站状态监控。在这里,我们正在监控一个名为mysite托管在本地 Apache Tomcat 服务器上。

    logstash.conf

    在此配置文件中,http_poller 插件用于在间隔设置中指定的时间间隔后访问插件中指定的站点。最后,它将站点的状态写入标准输出。
    
    input {
       http_poller {
          urls => {
             site => "http://localhost:8080/mysite"
          }
          request_timeout => 20
          interval => 30
          metadata_target => "http_poller_metadata"
       }
    }
    output {
       if [http_poller_metadata][code] == 200 {
          stdout {
             codec => line{format => "%{http_poller_metadata[response_message]}"}
          }
       }
       if [http_poller_metadata][code] != 200 {
          stdout {
             codec => line{format => "down"}
          }
       }
    }
    

    运行logstash

    我们可以使用以下命令运行 Logstash。
    
    >logstash –f logstash.conf
    

    标准输出

    如果站点已启动,则输出将是 -
    
    Ok
    
    如果我们使用Manager AppTomcat,输出将变为 -
    
    down
    
  • 安全

    Logstash 为与外部系统的安全通信提供了大量功能,并支持身份验证机制。所有 Logstash 插件都支持通过 HTTP 连接进行身份验证和加密。

    HTTP 协议的安全性

    Logstash 提供的各种插件(如 Elasticsearch 插件)中提供了用于身份验证的用户和密码等设置。
    
    elasticsearch {
       user => <username>
       password => <password>
    }
    
    另一种身份验证是PKI (public key infrastructure)用于弹性搜索。开发人员需要在 Elasticsearch 输出插件中定义两个设置来启用 PKI 身份验证。
    
    elasticsearch {
       keystore => <string_value>
       keystore_password => <password>
    }
    
    在 HTTPS 协议中,开发人员可以将权威的证书用于 SSL/TLS。
    
    elasticsearch {
       ssl => true
       cacert => <path to .pem file>
    }
    

    传输协议的安全性

    要将传输协议与 Elasticsearch 一起使用,用户需要将协议设置设置为传输。这避免了 JSON 对象的解组,并提高了效率。
    基本身份验证与 Elasticsearch 输出协议中的 http 协议中执行的相同。
    
    elasticsearch {
       protocol => “transport”
       user => <username>
       password => <password>
    }
    
    PKI 身份验证还需要 SSL 设置与 Elasticsearch 输出协议中的其他设置一致 -
    
    elasticsearch {
       protocol => “transport”
       ssl => true
       keystore => <string_value>
       keystore_password => <password>
    }
    
    最后,SSL 安全性需要比其他安全方法多一点的设置。
    
    elasticsearch {
       ssl => true
       ssl => true
       keystore => <string_value>
       keystore_password => <password>
       truststore => 
       truststore_password => <password>
    }
    

    Logstash 的其他安全优势

    Logstash 可以帮助输入系统源以防止诸如拒绝服务攻击之类的攻击。监控日志并分析这些日志中的不同事件可以帮助系统管理员检查传入连接和错误的变化。这些分析可以帮助查看攻击是否正在发生或将要发生在服务器上。
    Elasticsearch 公司的其他产品,例如x-packfilebeat提供一些与 Logstash 安全通信的功能。