plugin_name: python.d.plugin modules: - meta: plugin_name: python.d.plugin module_name: megacli monitored_instance: name: MegaCLI link: "https://wikitech.wikimedia.org/wiki/MegaCli" categories: - data-collection.storage-mount-points-and-filesystems icon_filename: "hard-drive.svg" related_resources: integrations: list: [] info_provided_to_referring_integrations: description: "" keywords: - storage - raid-controller - manage-disks most_popular: false overview: data_collection: metrics_description: "Examine MegaCLI metrics with Netdata for insights into RAID controller performance. Improve your RAID controller efficiency with real-time MegaCLI metrics." method_description: | Collects adapter, physical drives and battery stats using megacli command-line tool Executed commands: - `sudo -n megacli -LDPDInfo -aAll` - `sudo -n megacli -AdpBbuCmd -a0` supported_platforms: include: [] exclude: [] multi_instance: false additional_permissions: description: "The module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password." default_behavior: auto_detection: description: "After all the permissions are satisfied, netdata should be to execute commands via the megacli command line utility" limits: description: "" performance_impact: description: "" setup: prerequisites: list: - title: Grant permissions for netdata, to run megacli as sudoer description: | The module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password. Add to your /etc/sudoers file: which megacli shows the full path to the binary. ```bash netdata ALL=(root) NOPASSWD: /path/to/megacli ``` - title: "Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd)" description: | The default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo. As root user, do the following: ```bash mkdir /etc/systemd/system/netdata.service.d echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf systemctl daemon-reload systemctl restart netdata.service ``` configuration: file: name: "python.d/megacli.conf" options: description: | There are 2 sections: * Global variables * One or more JOBS that can define multiple different instances to monitor. The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. folding: title: "Config options" enabled: true list: - name: update_every description: Sets the default data collection frequency. default_value: 5 required: false - name: priority description: Controls the order of charts at the netdata dashboard. default_value: 60000 required: false - name: autodetection_retry description: Sets the job re-check interval in seconds. default_value: 0 required: false - name: penalty description: Indicates whether to apply penalty to update_every in case of failures. default_value: yes required: false - name: do_battery description: default is no. Battery stats (adds additional call to megacli `megacli -AdpBbuCmd -a0`). default_value: no required: false examples: folding: enabled: true title: "Config" list: - name: Basic folding: enabled: false description: A basic example configuration per job config: | job_name: name: myname update_every: 1 priority: 60000 penalty: yes autodetection_retry: 0 troubleshooting: problems: list: [] alerts: - name: megacli_adapter_state link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf metric: megacli.adapter_degraded info: "adapter is in the degraded state (0: false, 1: true)" - name: megacli_pd_media_errors link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf metric: megacli.pd_media_error info: number of physical drive media errors - name: megacli_pd_predictive_failures link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf metric: megacli.pd_predictive_failure info: number of physical drive predictive failures - name: megacli_bbu_relative_charge link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf metric: megacli.bbu_relative_charge info: average battery backup unit (BBU) relative state of charge over the last 10 seconds - name: megacli_bbu_cycle_count link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf metric: megacli.bbu_cycle_count info: average battery backup unit (BBU) charge cycles count over the last 10 seconds metrics: folding: title: Metrics enabled: false description: "" availability: [] scopes: - name: global description: "These metrics refer to the entire monitored application." labels: [] metrics: - name: megacli.adapter_degraded description: Adapter State unit: "is degraded" chart_type: line dimensions: - name: a dimension per adapter - name: megacli.pd_media_error description: Physical Drives Media Errors unit: "errors/s" chart_type: line dimensions: - name: a dimension per physical drive - name: megacli.pd_predictive_failure description: Physical Drives Predictive Failures unit: "failures/s" chart_type: line dimensions: - name: a dimension per physical drive - name: battery description: "Metrics related to Battery Backup Units, each BBU provides its own set of the following metrics." labels: [] metrics: - name: megacli.bbu_relative_charge description: Relative State of Charge unit: "percentage" chart_type: line dimensions: - name: adapter {battery id} - name: megacli.bbu_cycle_count description: Cycle Count unit: "cycle count" chart_type: line dimensions: - name: adapter {battery id}