Get the App
SLTechnology News&Howtos  ›  Servers  › 

Self-made python script to monitor Esxi underlying DELL hard disk (using python with its own module paramiko)

Shulou Source: shulou.com Published: 2022-06-02 04:50:59 10月04日 Update

Self-made python script to monitor Esxi underlying DELL hard disk (using python with its own module paramiko)

[root@localhost libexec] # cd / usr/local/nagios/libexec

[root@localhost libexec] # vi datadomain.py

#! / usr/bin/env python

Import paramiko

Import re

Import sys

# 0 ok; 1 warning; 2 critical; 3 unknown

Ssh = paramiko.SSHClient ()

Ssh.set_missing_host_key_policy (paramiko.AutoAddPolicy ())

Ip = "10.10.254.11"

User = "sysadmin"

Passwd = "1111111111111111"

Ssh.connect (ip,22,user,passwd)

Stdin,stdout,stderr = ssh.exec_command ("disk status")

Outmsg,errmsg = stdout.read (), stderr.read ()

Keyvalue=outmsg.find ('7')

If int (keyvalue)-1:

Print "Disk ok!"

Sys.exit (0)

Else:

Print "Disk goes wrong!"

Sys.exit (2)

Ssh.close ()

Script note: when keyvalue is equal to-1, the quantity is not 7, that is, there is a problem with the hard drive.

Add commands to commands.cfg first.

[root@localhost libexec] # vi / usr/local/nagios/etc/objects/commands.cfg

Define command {

Command_name datadomain

Command_line sudo $USER1 $/ datadomain.py

}

Add the following to nagios.cfg

[root@localhost libexec] # vi / usr/local/nagios/etc/nagios.cfg

Cfg_file=/usr/local/nagios/etc/objects/datadomain.cfg

Define hosts and services: create a new datadomain.cfg in / usr/local/nagios/etc/objects

[root@localhost libexec] # vi / usr/local/nagios/etc/objects/datadomain.cfg

Define host {

Use EMC DataDomain 2200

Host_name EMC DataDomain 2200

Alias EMC DataDomain 2200

Address 10.10.254.11

}

Define service {

Use generic-service

Host_name EMC DataDomain 2200

Service_description EMC DataDomain 2200

Check_command datadomain

Notifications_enabled 1

}

Then you must add the following to the templates.cfg

[root@localhost libexec] # vi / usr/local/nagios/etc/objects/templates.cfg

Define host {

Name EMC DataDomain 2200; The name of this host template

Use generic-host; This template inherits other values from the generic-host template

Check_period 24x7; By default, EMC DataDomain 2200 hosts are checked round the clock

Check_interval 5; Actively check the host every 10 minutes

Retry_interval 1; Schedule host check retries at 10 minute intervals

Max_check_attempts 10; Check each EMC DataDomain 2200 host 10 times (max)

Check_command check-host-alive; Default command to check EMC DataDomain 2200 hosts

Notification_period workhours; EMC DataDomain 2200 admins hate to be woken up, so we only notify during the day

; Note that the notification_period variable is being overridden from

; the value that is inherited from the generic-host template!

Notification_interval 120; Resend notifications every 2 hours

Notification_options djingheng r; Only send notifications for specific host states

Contact_groups admins; Notifications get sent to the admins by default

Register 0; DONT REGISTER THIS DEFINITION-ITS NOT A REAL HOST, JUST A TEMPLATE!

}

Add sudo permissions

[root@localhost libexec] # visudo

Nagios ALL= (ALL) NOPASSWD:/usr/local/nagios/libexec/datadomain.py

Tags: Hard disk script content bottom layer module monitor host that is command quantity permission comment problem Zhongxin service Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Apple OPPO Reno macOS MySQL Linux