Is there ant sensu plugin or extension that can solve my problem on an easy way? We need to have a new sensu check deployed to all Linux and Windows servers that alerts us when NICs are down.
I’m not aware of a prexisting check for this, but I can help you with the linux situation.
if you are running a reasonably recent linux and you know the device name of the nic you can do something like this as your check command
grep -q “up” /sys/class/net/<device_name>/operstate
where you replace <device_name> with the name of the nic.
On my system this will return exit status:
0 if the device is up
1 if the device exists and is down
2 if the device does not exist
Working example on my laptop for my currently unplugged wired connection:
grep -q “up” /sys/class/net/enp0s31f6/operstate
returns exit status 1, device exists and connection is down
For my wifi nic:
grep -q "up" /sys/class/net/wlp3s0/operstate ; echo $?
returns exit status of 0, device exists and connection is up
I’m not much help with Windows, as I don’t have day to day operational knowledge. But If you can write a powershell script to check the nic status and return 0,1 or 2 accordingly. Maybe another Windows user in the community can help with that.
Thank you very much the help, actually my question is on the sensu side, how to implement the script to alert. The script I have just the sensu side is not clear how to implement
Here’s the check configuration yaml file that makes use of the command example I gave previously:
type: CheckConfig api_version: core/v2 metadata: name: nic_check spec: command: grep -q "up" /sys/class/net/enp0s31f6/operstate interval: 60 publish: true subscriptions: - linux
I have this check running now on my laptop and it’s alerting with a warning, indicating the nic is down:
sensuctl event info fedora_laptop nic_check
=== summit-yolo - nic_check
Timestamp: 2019-10-10 00:27:22 -0800 AKDT
Thank you very much, I’ll take a look
yeah, sorry i’m no help with the Windows specifics…
but the general pattern for creating checks using your own custom commands goes like this:
- write a script that does what you want manually on the target and make sure it returns status 0,1,2 for conditions of interest.
- call that script as the “check command” in the Sensu check configuration.
- If needed package up dependancies with the script in an asset
So once you have a powershell script for Windows that does what you want, you should be able to use it as a check command.
Okay, thank you so much