feat: add InstanceStoreIOError detection to storage monitor (#153)
feat: add ZRAM usage monitoring to kernel monitor
feat: add InstanceStoreIOError detection to storage monitor
fix CI failure by running make generate
fix: rename InstanceStoreIOError to BlockDeviceIOError and add MinOccurrences
fix: lower BlockDeviceIOError severity to Warning and remove MinOccurrences
fix(storage): widen block device regex and test the handler directly
Co-authored-by: Ruchik Pravasi ruchikpi@amazon.com Co-authored-by: Prasad Shende prasad0896@users.noreply.github.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
EKS Node Monitoring Agent
The EKS Node Monitoring Agent detects health issues on Amazon EKS worker nodes by parsing system logs and surfacing status information through Kubernetes
NodeConditions. When paired with Amazon EKS node auto repair, detected issues can trigger automatic node replacement or reboot.For detailed configuration options and usage documentation, refer to the Amazon EKS Node Health documentation.
Overview
The agent runs as a DaemonSet on each node and monitors for issues across several categories:
For each category, the agent applies a dedicated
NodeConditionto worker nodes (e.g.,KernelReady,NetworkingReady,StorageReady,AcceleratedHardwareReady). These conditions integrate with Amazon EKS node auto repair to automatically remediate unhealthy nodes.Project Layout
Installation
It is recommended to install the EKS Node Health Monitoring Agent as an EKS add-on. For Helm installation instructions, see charts/eks-node-monitoring-agent/README.md.
For detailed configuration options and usage documentation, refer to the Amazon EKS Node Health documentation.
Configuring Monitors
By default all monitors are enabled. Individual monitors can be disabled via the Helm chart’s
nodeAgent.monitorsconfiguration or by providing a config file at/etc/nma/config.yaml.Helm Values
Each monitor supports
enabled: true/falseto enable or disable it:The networking monitor additionally supports
allowedIPTablesChainsto suppressUnexpectedRejectRulewarnings for rules in custom chains. Entries must usetable/chainformat:The networking monitor also supports
excludedInterfaceNameRegexpsto suppressInterfaceNotUp/InterfaceNotRunningfindings for interfaces that are not part of Kubernetes node networking. This is useful on accelerated instance types (e.g. P6) that expose host-visible Mellanox/NVIDIA IPoIB interfaces such asibp115s0f0, which may legitimately remain down. Each entry is a Go regular expression matched against the interface name; invalid regexps fail fast at startup:Config File Format
The agent reads a YAML config file mounted at
/etc/nma/config.yaml. Omitted monitors default to enabled.Valid plugin names:
kernel-monitor,networking,storage-monitor,nvidia,neuron,runtime.When a monitor is disabled:
NodeCondition(e.g.,NetworkingReady) is not set on the node, avoiding false-positive healthy status for unmonitored subsystems.Building
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
Security
If you discover a potential security issue, please report it via the AWS vulnerability reporting page. Do not create a public GitHub issue for security vulnerabilities.
See CONTRIBUTING.md for more information.
License
This project is licensed under the Apache-2.0 License. See LICENSE for the full license text.