通过Metricbeat实现外部对Elastic Stack的监控

摘要:
建议对ElasticStack监控的所有用户进行外部数据采集。在过去,需要通过生产集群路由监控数据。通过引入Metricbeat作为收集和传输监控数据的代理,不再需要通过生产集群路线监控数据。使用以下命令启动metricbeat:/metricbeat-e监控集群打开监控集群的Kibana接口http://localhost:5602打开StackMonitoring应用程序。

对于Elastic Stack监视的所有用户,建议使用外部数据收集。

概括一下:
关闭Elastic Stack自带的监控功能,然后使用metricbeat收集Elastic Stack数据传输到另外的Elastic Stack监控集群

背景

以前,Elastic Stack中的服务收集并传送了自己的监视数据,该进程称为内部收集进程(internal collection)。

通过引入外部收集,用户可以与各种受监视的服务(例如Elasticsearch)一起运行Metricbeat,以收集有关其运行状况和性能的监视数据并将其直接传送到监视集群。

过去,Stack Monitoring要求先将所有监视数据发送到生产集群,然后再将其转发到监视集群。 这种的设计不是我们所期望的,比如当我们的生产机器收到胁迫时,监视功能也有可能不能正常工作。
过去的设置要求通过生产集群路由监视数据
通过Metricbeat实现外部对Elastic Stack的监控第1张

通过引入Metricbeat作为收集和运输监视数据的代理,不再需要通过生产集群路由监视数据。 现在可以由独立的轻量级监视代理程序收集监视数据,并将其直接发送到监视集群。
使用Metricbeat进行监视,可将所有数据直接路由到监视群集,而完全无需接触生产群集
通过Metricbeat实现外部对Elastic Stack的监控第2张

实践操作

环境配置

使用两个不同的集群来完成
生产集群和监控集群
通过Metricbeat实现外部对Elastic Stack的监控第3张

把两个集群都部署在同一个机器上,但是它们都分别位于不同的目录中。

注意:通过解压安装包的办法来进行安装,并分别在两个不同的目录中进行安装。需要按照上面的配置要求分别配置在Elasticsearch中的config/elasticsearch.yml及Kibana中的config/kibana.yml文件。另外为了能够满足监控的要求,必须对这两个集群分别配置安全账号。

分别访问端口号是5601和5602的kibana,如果能看到两个Kibana的界面,则表明我们的配置已经成功。

生产集群设置

端口为9200的集群是生产集群。为了能对它的数据进行监控,必须对它进行配置。打开端口为5601的Kibana,启用监视数据收集:

PUT _cluster/settings
{
  "persistent": {
    "xpack.monitoring.collection.enabled": true
  }
}

可以通过如下的指令来检查修改后的结果:

GET _cluster/settings

同时禁用生产集群默认的Elasticsearch指标监控:

PUT _cluster/settings
{
  "persistent": {
    "xpack.monitoring.elasticsearch.collection.enabled": false
  }
}

在生产集群上安装Metricbeat
关闭默认启动的system模块,开启elasticsearch-xpack模块

./metricbeat modules disable system
./metricbeat modules enable elasticsearch-xpack

为了能够监控生产集群(127.0.0.1:9200),必须把数据数据采集并发送到监控集群(127.0.0.1:9201),必须配置位于modules.d目录下的elasticsearch-xpack.yml文件

- module: elasticsearch
  metricsets:
    - ccr
    - cluster_stats
    - enrich
    - index
    - index_recovery
    - index_summary
    - ml_job
    - node_stats
    - shard
  period: 10s
  hosts: ["http://localhost:9200"]
  username: "elastic"
  password: "123456"
  xpack.enabled: true

在上面的配置中,它每隔10秒收集位于http://localhost:9200的集群的数据。在上面,采用了elastic这个超级用户,同时你也需要根据自己的密码进行修改。

为了能把数据传入到http://localhost:9201,也需要对metricbeat.yml进行配置:

output.elasticsearch:
  hosts: ["localhost:9201"] # 注意使用的是监控集群的端口号
  username: "elastic"
  password: "123456"

在上面我们把hosts配置为localhost:9201,也就是收集的数据需要传入到这个集群里去。我们也需要根据我们自己的配置,修改上面的用户名及密码。

通过如下的命令来启动metricbeat:

./metricbeat -e

监控集群

打开监控集群的Kibana界面http://localhost:5602
打开Stack Monitoring应用。在上面可以看到被监控的生产环境的端口地址为9200的集群。

总结

可以使用同样的方法来对其它的Elastic Stack进行监控:

  • Metricbeat logstash-xpack 模块监控logstash
  • Metricbeat beat-xpack 模块监控beats
  • Metricbeat kibana-xpack 模块监控Kibana

免责声明:文章转载自《通过Metricbeat实现外部对Elastic Stack的监控》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇html css项目积累汇总MATLAB的一些使用的快捷键整理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

es 账号密码

1、修改elasticsearch.ymlelasticsearch.yml http.cors.enabled: truehttp.cors.allow-origin: "*"http.cors.allow-headers: Authorizationxpack.security.enabled: truexpack.security.transport...

logstash5安装并实现mariadb数据写入到elasticsearch

java环境这里默认安装了 ,一般源码安装,这里就不说了 一、安装logstash 安装logstash可以用yum安装,也可以用源码安装: yum安装: 1.导入GPG: rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 2.创建repo文件,vim /etc/yum.repo...

Elastic Stack之Logstash进阶

Elastic Stack之Logstash进阶 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.使用GeoLite2和logstash 过滤插件的geoip案例 1>.GeoLite2概述 GeoLite2数据库是免费的IP地理定位数据库,与MaxMind的GeoIP2数据库相当,但不太准确。GeoLite2国家和城市数据库在...

ElasticStack分布式引擎技术栈(ELK)介绍

   刚入职不久,就在公司跟前辈导师了解到Elastic技术栈,让我着手准备负责部门ELK-Stack(云计算)的相关工作,于是开始整理学习与总结。 由于本人所在的是某大型央企银行的信息科技部门,与各大数据库交往比较密切,故本人对Elastic十分感兴趣。 一、简介 Elastic-Stack早期也称为ELK,现统一叫ELK stack。这一套技术栈解决...

使用 Elastic 技术栈构建 Kubernetes全栈监控

以下我们描述如何使用 Elastic 技术栈来为 Kubernetes 构建监控环境。可观测性的目标是为生产环境提供运维工具来检测服务不可用的情况(比如服务宕机、错误或者响应变慢等),并且保留一些可以排查的信息,以帮助我们定位问题。总的来说主要包括3个方面: 监控指标提供系统各个组件的时间序列数据,比如 CPU、内存、磁盘、网络等信息,通常可以用来显示系...

kubectl 常用命令

kubectl get cs [root@master ~]# kubectl get cs Warning: v1 ComponentStatus is deprecated in v1.19+ NAME STATUS MESSAGE ERROR scheduler He...