查看: 142|回覆: 1

[运维] ELK topbeat 部署指南(14th)

[複製鏈接]

3

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-3
發表於 2023-9-27 00:00:00 | 顯示全部樓層 |閲讀模式

topbeat定期收集系统信息如每个进程信息、负载、内存、磁盘等等,然后将数据发送到elasticsearch进行索引。

topbeat收集的指标有:

系统统计信息

  • 系统负载: 最后1分钟、最后5分钟、最后15分钟
  • CPU使用情况: user (和百分比), system, idle, IOWait等等
  •  内存使用情况: 总共, 已用 (和百分比), 剩余等等
  • swap使用情况:总共, 已用 (和百分比), 剩余等等

每个进程的统计信息

  • 进程名
  • 进程PID
  • 进程状态
  • 进程ID
  • 进程使用CPU情况: 用户 (和百分比), 系统, 总数 和 启动时间
  • 进程使用内存情况: 虚拟内存,常驻内存(和百分比) 和 共享内存

文件系统统计信息

  • 可用磁盘列表
  • 每个磁盘、名称、类型和挂载目录
  • 每个磁盘总大小、已用(和百分比)、剩余和可用空间

Topbeat 可以将这些收集到的指标直接插入到elasticsearch或者是使用logstash。

要使用这个你要安装elasticsearch,kibana,参见前文。我这里直接存储到elasticsearch。

安装

参见上一篇文章,添加yum源。

# yum install topbeat

配置

# vi /etc/topbeat/topbeat.yml
input:
  period: 10
  procs: [".*"]
  stats:
    system: true
    proc: true
    filesystem: true
output:
  elasticsearch:
    hosts: ["10.1.19.18:9200"]
shipper:
logging:
  files:

period 选项定义收集信息的频率,默认是10秒。

procs 选项定义正则表达式,以匹配你所要监控的进程。默认是所有正在运行的进程都进行监控。

如果不监控进程,可以这么做:

input:
  period: 10
  procs: ["^$"]

导入elasticsearch索引模板

将topbeat提供的索引模板导入到elasticsearch,以便elasticsearch知道哪些字段以哪种方式进行分析。

# curl -XPUT 'http://10.1.19.18:9200/_template/topbeat' -d@/etc/topbeat/topbeat.template.json

运行topbeat

# /etc/init.d/topbeat start

加载kibana Dashboards

官方提供了一些仪表盘样本方便我们查看监视,项目地址:https://github.com/elastic/beats-dashboards

加载方法如下:

# wget http://download.elastic.co/beats/dashboards/beats-dashboards-1.0.0.tar.gz
# tar xzvf beats-dashboards-1.0.0.tar.gz
# cd beats-dashboards-1.0.0/
./load.sh http://10.1.18.19:9200

创建了三个beat索引

  • [packetbeat-]YYYY.MM.DD
  • [topbeat-]YYYY.MM.DD
  • [filebeat-]YYYY.MM.DD

以及仪表盘

 

topbeat配置项

beats公共配置选参见前文。这里主要说说topbeat的input部分的配置选。如下配置:

input:
  # In seconds, defines how often to read server statistics
  period: 10

  # Regular expression to match the processes that are monitored
  # By default, all the processes are monitored
  procs: [".*"]

  # Statistics to collect (all enabled by default)
  stats:
    system: true
    proc: true
    filesystem: true

前面说了period和procs。这里说下stats。

stats指定要收集的统计数据,可以是下面的设置:

  • system: true 捕捉系统的统计信息,如系统负载、CPU使用情况、内存使用情况、swap使用情况。
  • proc: true 捕捉每个进程的统计信息,如进程名、进程PID、状态、进程ID、CPU使用率和内存使用率。
  • filesystem: true 捕捉文件系统统计信息,如磁盘空间总大小、磁盘设备名、挂载目录。
回覆

使用道具 舉報

0

主題

1257

回帖

7663

積分

琼殿精英

金币
6406
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 4 天前 | 顯示全部樓層
顶一个!楼主分享的Topbeat部署指南非常详细,正好是我需要的!

之前一直在找怎么监控服务器的系统资源,看到这篇文章果断收藏了。我之前用zabbix,但是感觉配置起来太复杂,Topbeat配合ELK看起来简洁很多。

有个问题想请教一下:我在配置procs参数的时候,如果只想监控特定的几个进程,比如nginx、mysql这些,是不是直接写进程名就可以了?比如写成 `procs: ["nginx", "mysql"]` 这样的格式?

另外关于性能方面,10秒采集一次对生产环境来说会不会有压力?如果改成30秒或者1分钟采集一次,对监控效果影响大吗?

还有那个kibana的dashboard,加载之后是不是就能直接看到那些图表了?还需要再手动配置吗?

再次感谢楼主的分享,期待更多ELK相关的教程!👍

已评分支持!
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部