APP下载

批量自动巡检Linux服务器

2018-11-06

网络安全和信息化 2018年7期
关键词:脚本内核百分比

服务器巡检方式较多,主要分为手工巡检和自动巡检,巡检内容也因信息系统各异侧重不同。本文主要对Linux服务器日常巡检内容和批量自动巡检进行探讨,从而提高管理员工作效率。

Linux服务器日常巡检内容

Linux服务器日常巡检,除了硬件必须现场检查环境温湿度、设备风扇和设备状态灯等外,其他都可以远程登录控制台通过命令方式加以检查。巡检内容主要包括Linux系统、CPU、内存、文件系统、网络服务、安全、日志、定时任务和应用等方面。

1. Linux系统检查

系统主要检查系统内核版本、发行版本、主机名、是否启用SELinux、默认语言、编码、系统当前时间和最后启动时间等。

# uname –a

//查看内核版本情况

# head -n 1 /etc/issue

//查看系统发行版本

# hostname

//查看计算机名

# /usr/sbin/sestatus

//查看SELinux启用状态

# cat /etc/sysconfig/i18n

//查看系统语言和编码

# date +'%F%T'

//查看系统当前时间

# uptime

//查看系统最后启动时间

2. CPU信息检查

# cat /proc/cpuinfo

通过该命令,可以详细了解CPU的品牌、型号、个数、频率、核数、超线程等信息。

# top

top命令动态显示,可以详细查看CPU使用情况,%us表示用户占用CPU百分比,%sy系统占用CPU百分比,%ni进程占用CPU百分比,%id空闲CPU百分比,%wa等待输入输出CPU百分比,%wa一般不能高于20%-30%。top命令还提供了系统1分钟前、5分钟前和15分钟前负载平均值,类似命令uptime。

3.内存检查

主要检查服务器内存总量、已使用内存、可用内存、缓存、Swap交换分区信息。可用内存过低,系统负载过重,会造成系统速度缓慢。

# free –m

//查看内存使用情况

4.文件系统检查

主要检查文件系统挂载情况,文件系统分区情况、文件系统空间使用情况、inode使用情况和目录所占空间大小等。如果文件系统可用空间低于20%,需要及时删除无用数据或扩充存储空间。

# cat /etc/fstab

//查看文件系统挂载表

# fdisk –l

//查看文件系统分区情况

# df –lh

//查看文件系统空间使用情况

# df –i

//查看inode使用情况

# du -sh /opt

//查看目录/opt所占空间大小

5.网络服务检查

通过网络检查,了解网卡IP地址配置、系统路由表、网络所有连接、网络TCP/UDP监听端口和系统后台服务等。

# ifconfig –a

//查看IP地址配置

# route –n

//查看系统路由表

# netstat –an

//查看网络连接

# netstat -lntp

//查看网络TCP监听端口

# netstat –lnup

//查看网络UCP监听端口

# chkconfig –list

//查看系统后台服务

# /etc/rc.d/rc.local

//查看自启动服务

6.系统安全检查

系统安全检查环节非常重要。通过安全检查,可以知道系统账号、组和用户权限是否异常,系统密码策略、用户最近登录系统情况,当前哪些用户在线等。

# cut -d: -f1 /etc/passwd

//查看系统所有用户

# cut -d: -f1 /etc/group

//查看系统所有组

# grep -v "#" /etc/login.defs | grep -E"PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_MIN_LEN|PASS_WARN_AGE"

//检查系统密码策略

# last

//用户最近登录系统情况

# w

//当前在线用户

7.日志检查

Linux系统拥有强大的日志记录功能,能忠实记录系统内核和各类程序、服务产生的错误信息、警告信息和其他普通信息。这些信息有助于管理员了解系统的运行状况、账号登录注销操作情况、系统面临安全威胁等,对系统故障诊断至关重要。系统日志以syslog格式存储。

# more /var/log/message

//查看系统报错日志

# more /var/log/secure

//查看系统安全日志

# more /var/log/boot.log

//查看系统引导日志

8.定时任务检查

Linux的定时任务守护进程是crond,类似Windows系统的计划任务,可周期性地执行系统任务和用户应用或脚本。用户数据备份或数据库导出备份等,都可编写成脚本放入定时任务周期执行。

# crontab –l

//查看当前用户的计划任务

9.应用检查

检查指定应用程序是否在线运行,主要检查该应用程序的进程是否正常运行即可。例如检查nginx网站服务器:

# ps -ef|grep nginx

Linux服务器批量自动巡检

随着Linux服务器数量增多,如果管理员登录控制台,手工输入各类指令对服务器性能指标、系统日志进行逐台巡检,并将命令输出结果采集汇总,效率不高。

SecureCRT是常用的终端仿真程序,有完善的脚本支持功能(如图1),可批量对Linux服务器进行自动巡检。

脚本工作目录是D:work,在该目录下创建Linux服务器清单文件linux-ip.txt,该文件由服务器IP、root用户和root密码三部分组成,空格分开。如:

192.168.1.1 root Abcd1234

192.168.1.2 root Abcd1234

...

图1 SecureCRT脚本执行界面

下面的SecureCRT执行脚本,以查看Linux内核信息为例,批量对所有Linux服务器进行自动巡检,并将巡检内容采集后记录成文本文件,供管理员进一步分析汇总生成巡检报告,非常实用,有兴趣的朋友可根据实际巡检内容对脚本代码进行扩展。

#$language ="VBScript"

#$interface = "1.0"

Sub Main

Const ForReading = 1

Dim fso,file1,line,params,path

path = "d:work"

Set fso = CreateObject("Scripting.FileSystem Object")

Set file1 = fso.Open TextFile(path & "linux-ip.txt" ,Forreading, False)

crt.Screen.Synchronous= True

DO While file1.AtEnd OfStream <> True

line = file1.ReadLine

if line<>"" then

params = Split (line)

if params(0)<>"" then

On Error Resume next

'SSH登录Linux服务器

crt.Session.Connect "/SSH2 /L " & params(1) & "/PASSWORD " & params(2)& " /C AES-128 /M MD5 " ¶ms(0)

crt.Screen.waitFor String "~]#"

'以IP地址为文件名记录SecureCRT session 日志

crt.session.LogFile Name = path & params(0)&".txt"

crt.session.Log(true)

'查看操作系统内核信息

crt.Screen.Send"uname -a" & chr(13)

crt.Screen.waitFor String "]#"

crt.Session.Disconnect

End if

End if

loop

crt.Screen.Synchronous= False

file1.Close

End Sub

猜你喜欢

脚本内核百分比
酒驾
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
安奇奇与小cool 龙(第二回)
Linux内核mmap保护机制研究
快乐假期
普通照明用自镇流LED灯闪烁百分比测量不确定度分析
小编的新年愿望
趋势攻略之趋势线:百分比线