Python如何编写简单的系统巡检脚本?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1423个文字,预计阅读时间需要6分钟。
利用SSH或Zabbix进行监控,结合Django开发框架,打造专属的监控平台,实现包括主机图形化、自动发现、计划任务、批量cmd执行、服务监控、日志监控等功能的集成。
利用SSH或者Zabbix监控,配合Django开发框架,改造出属于自己的监控平台,实现包括主机图形,自动发现,计划任务,批量cmd执行,服务监控,日志监控等功能,由于公司机器混乱,基本上市面上的所有设备都能找到,监控这些不同型号不同系统的主机需要分别对待,我们就借助各种开源项目来做一个简单的巡检工具,方便工作需要。
由于公司及其都是老式的性能不高,所以全程我都没敢加多线程,生怕把服务器拒绝服务了。
安装Zabbix客户端
首先客户端还是需要安装zabbix-agent这个监控工具,该工具可以监控所有的平台,windows linux mac unix 等,利用该工具完成一整套自动化平台一点问题都没有,连ansible都不需要了。
[root@localhost ~]# wget repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.3-1.el7.x86_64.rpm[root@localhost ~]# rpm -ivh zabbix-agent-4.2.0-0.1alpha1.el7.x86_64.rpm
该配置文件,并启动服务完事。
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.confPidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.2
ServerActive=192.168.1.2
Hostname=centos1
Timeout=1
Include=/etc/zabbix/zabbix_agentd.d/*.conf
EnableRemoteCommands=1
[root@localhost ~]# systemctl restart zabbix-agent
[root@localhost ~]# systemctl enable zabbix-agent
服务端下载
www.zabbix.com/cn/download_agents
下载好之后将里面的 zabbix-get.exe 拖入项目中,直接调用就好。
基本的数据采集命令:
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.hostnamelocalhost.localdomain // 此处才是主机名称
zabbix_get.exe -s 192.168.1.20 -p 10050 -k agent.hostname
centos1 // 此处是我们zabbix中自定义的键值对
zabbix_get.exe -s 192.168.1.20 -p 10050 -k agent.ping
1
zabbix_get.exe -s 192.168.1.20 -p 10050 -k agent.version
4.4.3 // zabbix 的version
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.boottime
1578564779 // 系统启动的时间戳
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.cpu.num
1 // 处理器个数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.localtime
1578569019 // 当前系统时间戳
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.sw.arch
x86_64 // 返回系统架构
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.sw.os
Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019 // 返回系统详细架构
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.sw.packages[ssh] // 已安装软件列表
[rpm] libssh2-1.8.0-3.el7.x86_64, openssh-7.4p1-21.el7.x86_64, openssh-clients-7.4p1-21.el7.x86_64, openssh-server-7.4p1-21.el7.x86_64
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.uname
Linux localhost.localdomain 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.uptime
4438 // 系统运行时长(秒)多少秒使用s/uptime来获取
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.users.num
0 // 登陆用户数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k kernel.maxfiles
96437 // 系统支持最大的open files整数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k kernel.maxproc
65536 // 系统支持最大进程数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.hw.macaddr
[ens32] 00:50:56:22:6f:d3 // mac 地址列表
>zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.sw.os
Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019 // 操作系统信息
允许远程执行命令:
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.confEnableRemoteCommands=1
[root@localhost ~]# systemctl restart zabbix-agent
D:\zabbix> zabbix_get.exe -s 192.168.1.20 -p 10050 -k "system.run[df -h]"
Filesystem Size Used Avail Use% Mounted on
devtmpfs 480M 0 480M 0% /dev
tmpfs 491M 0 491M 0% /dev/shm
tmpfs 491M 7.4M 484M 2% /run
tmpfs 491M 0 491M 0% /sys/fs/cgroup
/dev/mapper/centos-root 27G 1.7G 26G 7% /
/dev/sda1 1014M 136M 879M 14% /boot
tmpfs 99M 0 99M 0% /run/user/0
监控CPU
system.cpu.util[<cpu>,<type>,<mode>]-CPU: CPU数量(默认是所有CPU)
-Type: 可用值,idle,nice,user,system,iowait,interrupt,sottrq,steal
-Mode 可用值,avg1(一分钟负载),avg5,avg15
[root@localhost ~]# zabbix_get -s 192.168.1.25 -k system.cpu.util[,,avg1]
0.016692
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.cpu.num
1 // cpu 个数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.cpu.util
0.016461 // cpu 利用率百分比
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.hw.cpu // cpu 详细信息
processor 0: GenuineIntel Intel(R) Celeron(R) CPU E3500 @ 2.70GHz working at 2700MHz
监控内存
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]-name 进程名(默认所有进程)
-user 用户名(默认所有用户)
-mode 可选值,avg,max,min,sum
-cmdline 命令过滤
[root@localhost ~]# zabbix_get -s 192.168.1.25 -k proc.mem[zabbix_get.exe","/tmp/zabbix.exe") # 文件上传
conn.get("/tmp/zabbix.exe","./zab.exe") # 下载文件
版权声明:本博客文章与代码均为学习时整理的笔记,文章 [均为原创] 作品,转载请 [添加出处] ,您添加出处是我创作的动力!
本文共计1423个文字,预计阅读时间需要6分钟。
利用SSH或Zabbix进行监控,结合Django开发框架,打造专属的监控平台,实现包括主机图形化、自动发现、计划任务、批量cmd执行、服务监控、日志监控等功能的集成。
利用SSH或者Zabbix监控,配合Django开发框架,改造出属于自己的监控平台,实现包括主机图形,自动发现,计划任务,批量cmd执行,服务监控,日志监控等功能,由于公司机器混乱,基本上市面上的所有设备都能找到,监控这些不同型号不同系统的主机需要分别对待,我们就借助各种开源项目来做一个简单的巡检工具,方便工作需要。
由于公司及其都是老式的性能不高,所以全程我都没敢加多线程,生怕把服务器拒绝服务了。
安装Zabbix客户端
首先客户端还是需要安装zabbix-agent这个监控工具,该工具可以监控所有的平台,windows linux mac unix 等,利用该工具完成一整套自动化平台一点问题都没有,连ansible都不需要了。
[root@localhost ~]# wget repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.3-1.el7.x86_64.rpm[root@localhost ~]# rpm -ivh zabbix-agent-4.2.0-0.1alpha1.el7.x86_64.rpm
该配置文件,并启动服务完事。
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.confPidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.2
ServerActive=192.168.1.2
Hostname=centos1
Timeout=1
Include=/etc/zabbix/zabbix_agentd.d/*.conf
EnableRemoteCommands=1
[root@localhost ~]# systemctl restart zabbix-agent
[root@localhost ~]# systemctl enable zabbix-agent
服务端下载
www.zabbix.com/cn/download_agents
下载好之后将里面的 zabbix-get.exe 拖入项目中,直接调用就好。
基本的数据采集命令:
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.hostnamelocalhost.localdomain // 此处才是主机名称
zabbix_get.exe -s 192.168.1.20 -p 10050 -k agent.hostname
centos1 // 此处是我们zabbix中自定义的键值对
zabbix_get.exe -s 192.168.1.20 -p 10050 -k agent.ping
1
zabbix_get.exe -s 192.168.1.20 -p 10050 -k agent.version
4.4.3 // zabbix 的version
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.boottime
1578564779 // 系统启动的时间戳
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.cpu.num
1 // 处理器个数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.localtime
1578569019 // 当前系统时间戳
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.sw.arch
x86_64 // 返回系统架构
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.sw.os
Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019 // 返回系统详细架构
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.sw.packages[ssh] // 已安装软件列表
[rpm] libssh2-1.8.0-3.el7.x86_64, openssh-7.4p1-21.el7.x86_64, openssh-clients-7.4p1-21.el7.x86_64, openssh-server-7.4p1-21.el7.x86_64
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.uname
Linux localhost.localdomain 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.uptime
4438 // 系统运行时长(秒)多少秒使用s/uptime来获取
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.users.num
0 // 登陆用户数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k kernel.maxfiles
96437 // 系统支持最大的open files整数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k kernel.maxproc
65536 // 系统支持最大进程数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.hw.macaddr
[ens32] 00:50:56:22:6f:d3 // mac 地址列表
>zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.sw.os
Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019 // 操作系统信息
允许远程执行命令:
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.confEnableRemoteCommands=1
[root@localhost ~]# systemctl restart zabbix-agent
D:\zabbix> zabbix_get.exe -s 192.168.1.20 -p 10050 -k "system.run[df -h]"
Filesystem Size Used Avail Use% Mounted on
devtmpfs 480M 0 480M 0% /dev
tmpfs 491M 0 491M 0% /dev/shm
tmpfs 491M 7.4M 484M 2% /run
tmpfs 491M 0 491M 0% /sys/fs/cgroup
/dev/mapper/centos-root 27G 1.7G 26G 7% /
/dev/sda1 1014M 136M 879M 14% /boot
tmpfs 99M 0 99M 0% /run/user/0
监控CPU
system.cpu.util[<cpu>,<type>,<mode>]-CPU: CPU数量(默认是所有CPU)
-Type: 可用值,idle,nice,user,system,iowait,interrupt,sottrq,steal
-Mode 可用值,avg1(一分钟负载),avg5,avg15
[root@localhost ~]# zabbix_get -s 192.168.1.25 -k system.cpu.util[,,avg1]
0.016692
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.cpu.num
1 // cpu 个数
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.cpu.util
0.016461 // cpu 利用率百分比
zabbix_get.exe -s 192.168.1.20 -p 10050 -k system.hw.cpu // cpu 详细信息
processor 0: GenuineIntel Intel(R) Celeron(R) CPU E3500 @ 2.70GHz working at 2700MHz
监控内存
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]-name 进程名(默认所有进程)
-user 用户名(默认所有用户)
-mode 可选值,avg,max,min,sum
-cmdline 命令过滤
[root@localhost ~]# zabbix_get -s 192.168.1.25 -k proc.mem[zabbix_get.exe","/tmp/zabbix.exe") # 文件上传
conn.get("/tmp/zabbix.exe","./zab.exe") # 下载文件
版权声明:本博客文章与代码均为学习时整理的笔记,文章 [均为原创] 作品,转载请 [添加出处] ,您添加出处是我创作的动力!

