系统模块
编辑系统模块
编辑系统模块允许您监控您的服务器。由于系统模块始终应用于本地服务器,因此不需要 hosts
配置选项。
默认的 metricset 包括 cpu
、load
、memory
、network
、process
、process_summary
、socket_summary
、filesystem
、fsstat
和 uptime
。要禁用默认的 metricset,请在 modules.d/system.yml
配置文件中将其注释掉。如果*所有* metricset 都被注释掉并且系统模块已启用,则 Metricbeat 将使用默认的 metricset。
请注意,某些 metricset 可能会访问 /proc
来收集进程信息,而内核执行的用于检查权限的 ptrace_may_access()
调用可能会被 AppArmor 和其他 LSM 软件 阻止,即使系统模块本身并不直接使用 ptrace
。
指标的收集方式和时间
系统模块监控的某些指标需要收集多个值。例如,system.process.cpu.total.norm.pct
字段报告自上次事件以来进程占用的 CPU 时间百分比。要确定此百分比,进程需要至少出现两次,以便可以计算性能增量。
请注意,如果进程的运行时间不足以包含在两个指标收集周期中,则系统模块 metricset 中可能缺少此类字段。
仪表盘
编辑系统模块附带预定义的仪表盘。例如
所需权限
编辑系统 metricset 收集不同类型的指标数据,这可能需要专用权限才能获取。出于安全原因,建议授予最低限度的权限。本节说明了特定 metricset 必须具备哪些权限。
请注意,现代 Linux 实现将传统上与超级用户关联的权限划分为不同的单元,称为功能,这些功能可以独立启用和禁用。功能是每个线程的属性。
cpu
编辑CPU 统计信息(空闲、irq、用户、系统、iowait、softirq、核心、nice、steal、总计)无需提升权限即可获得。
load
编辑CPU 负载数据(1 分钟、5 分钟、15 分钟、核心)无需提升权限即可获得。
memory
编辑内存统计信息(交换、总计、已用、空闲、实际)无需提升权限即可获得。
network
编辑接口的网络指标(输入、输出、错误、丢弃、字节、数据包)无需提升权限即可获得。
process
编辑进程执行数据(状态、内存、cpu、cmdline)应可供授权用户使用。
如果 beat 进程以较低权限的用户身份运行,则它可能无法读取属于其他用户的进程数据。此问题应在应用程序日志中报告。
2019-12-23T13:32:06.457+0100 DEBUG [processes] process/process.go:475 Skip process pid=235: error getting process state for pid=235: Could not read process info for pid 23
process_summary
编辑常规进程摘要(未知、已死、总计、休眠、运行、空闲、停止、僵尸)无需提升权限即可获得。请注意,如果进程数据属于其他用户,则它将被计为未知值(应用程序日志中不会报告错误)。
socket_summary
编辑已用套接字摘要(TCP、UDP、计数、侦听、已建立、等待等)无需提升权限即可获得。
entropy
编辑熵数据(可用、池大小)需要访问 /proc/sys/kernel/random
路径。否则将报告错误。
core
编辑每个 CPU 核心的使用情况统计信息(空闲、irq、用户、系统、iowait、softirq、核心、nice、steal、总计)无需提升权限即可获得。
diskio
编辑磁盘 IO 指标(io、读取、写入)无需提升权限即可获得。
socket
编辑每个新 TCP 套接字的事件应可供授权用户使用。
如果 beat 进程以较低权限的用户身份运行,则它可能无法查看属于其他用户的套接字数据。
service
编辑Systemd 服务数据(内存、任务、状态)应可供授权用户使用。
如果 beat 进程以较低权限的用户身份运行,则它可能无法读取属于其他用户的进程数据。此问题应在应用程序日志中报告。
2020-01-02T08:19:50.635Z INFO module/wrapper.go:252 Error fetching data for metricset system.service: error getting list of running units: Rejected send message, 2 matched rules; type="method_call", sender=":1.35" (uid=1000 pid=4429 comm="./metricbeat -d * -e ") interface="org.freedesktop.systemd1.Manager" member="ListUnitsByPatterns" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/usr/lib/systemd/systemd --switched-root --system ")
filesystem
编辑文件系统指标数据(总计、可用、类型、挂载点、文件、空闲、已用)无需提升权限即可获得。
fsstat
编辑Fsstat 指标数据(总大小、空闲、总计、已用计数)无需提升权限即可获得。
uptime
编辑运行时间指标数据(持续时间)无需提升权限即可获得。
raid
编辑RAID 指标数据(块、磁盘)需要访问 /sys/block
挂载点和所有引用的设备。否则将报告错误。
系统模块支持在 模块 中描述的标准配置选项。这是一个示例配置
metricbeat.modules: - module: system metricsets: - cpu # CPU usage - load # CPU load averages - memory # Memory usage - network # Network IO - process # Per process metrics - process_summary # Process summary - uptime # System Uptime - socket_summary # Socket summary #- core # Per CPU core usage #- diskio # Disk IO #- filesystem # File system usage for each mountpoint #- fsstat # File system summary metrics #- raid # Raid #- socket # Sockets and connection info (linux only) #- service # systemd service information enabled: true period: 10s processes: ['.*'] # Configure the mount point of the host’s filesystem for use in monitoring a host from within a container #hostfs: "/hostfs" # Configure the metric types that are included by these metricsets. cpu.metrics: ["percentages","normalized_percentages"] # The other available option is ticks. core.metrics: ["percentages"] # The other available option is ticks. # A list of filesystem types to ignore. The filesystem metricset will not # collect data from filesystems matching any of the specified types, and # fsstats will not include data from these filesystems in its summary stats. # If not set, types associated to virtual filesystems are automatically # added when this information is available in the system (e.g. the list of # `nodev` types in `/proc/filesystem`). #filesystem.ignore_types: [] # These options allow you to filter out all processes that are not # in the top N by CPU or memory, in order to reduce the number of documents created. # If both the `by_cpu` and `by_memory` options are used, the union of the two sets # is included. #process.include_top_n: # Set to false to disable this feature and include all processes #enabled: true # How many processes to include from the top by CPU. The processes are sorted # by the `system.process.cpu.total.pct` field. #by_cpu: 0 # How many processes to include from the top by memory. The processes are sorted # by the `system.process.memory.rss.bytes` field. #by_memory: 0 # If false, cmdline of a process is not cached. #process.cmdline.cache.enabled: true # Enable collection of cgroup metrics from processes on Linux. #process.cgroups.enabled: true # A list of regular expressions used to whitelist environment variables # reported with the process metricset's events. Defaults to empty. #process.env.whitelist: [] # Include the cumulative CPU tick values with the process metrics. Defaults # to false. #process.include_cpu_ticks: false # Raid mount point to monitor #raid.mount_point: '/' # Configure reverse DNS lookup on remote IP addresses in the socket metricset. #socket.reverse_lookup.enabled: false #socket.reverse_lookup.success_ttl: 60s #socket.reverse_lookup.failure_ttl: 60s # Diskio configurations #diskio.include_devices: [] # Filter systemd services by status or sub-status #service.state_filter: ["active"] # Filter systemd services based on a name pattern #service.pattern_filter: ["ssh*", "nfs*"]
以下 metricset 可用