16个不可不知的Linux服务器监控命令

16个不可不知的Linux服务器监控命令,第1张

想不想知道你的服务器到底在干什么那么你要知道本文介绍的这些基本命令。一旦你熟悉掌握了这些命令,就为成为专业的 Linux系统管理员打下了基础。

你可以通过图形化用户界面(GUI)程序来获取这些外壳命令提供的大量信息,具体取决于使用哪一种Linux发行版。比如说,SUSE Linux就有一款出色的、图形化配置和管理工具YaST,KDE的KDE System Guard同样很出色。

不过,Linux管理员要明白的一个常理是:只有绝对必要时,才应该在服务器上运行GUI。那是由于,Linux GUI耗用系统资源,而这些资源原本可以更合理地用在其他地方。所以,尽管使用GUI程序很适合对服务器健康状况做一个基本的检查,但是如果你想知道到底 发生了什么,请关闭GUI,开始从Linux命令外壳使用这些工具。

这还意味着,只要在需要时,你才应该在服务器上开启GUI;不用的时候,就及时关掉。为了确保性能最佳,Linux服务器应该在运行级别 (runlevel)3下运行,这个运行级别完全支持网络和多个用户,但是在机器启动时,又不开启GUI。如果你果真需要图形化桌面,总是可以从外壳提示 符下运行startx,获得图形化桌面。

如果你的服务器启动后进入到图形化桌面,就需要更改这种情况。为此,进入到终端窗口,使用su命令切换到root用户,然后用你常用的编辑器打开/etc/inittab文件。

一旦进入到文件里面,找到initdefault这一行,将id:5:initdefault:改为id:3:initdefault:。

要是没有/etc/inittab文件,就创建一个,并添加id:3这一行。保存后退出。下次你启动进入服务器时,它会启动进入到运行级别3。如果你不想在进行这种更改后重启,也可以用命令init 3,立即设置服务器的运行级别。

一旦你的服务器在init 3下运行,就可以开始使用下列外壳程序,看看你的服务器里面出现了什么情况。

iostat

iostat 命令详细地显示了存储子系统方面的情况。你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早发现输入/输出缓慢的问题。相信我,你应该在用户发现这些问题之前先发现这些问题!

meminfo和free

meminfo为你详细显示了内存方面的情况。你通常可以使用另一个程序,比如cat和grep,来访问meminfo的信息。比如说,cat /proc/meminfo为你详细显示了服务器的内存在任何一个时间的使用情况。

如果想快速了解内存的概要信息,可以使用free命令。简而言之,free为你提供了概要信息;meminfo为你提供了详细信息。

mpstat

mpstat命令可以报告多处理器服务器上每个可用处理器的活动情况。如今,由于多核处理器,这个命令适用于几乎所有服务器。 mpstat还可以报告所有服务器上的处理器的平均活动情况。它让你能够按照系统或按照处理器来显示总的处理器统计信息。这个概要信息可以在潜在的应用程 序问题惹毛用户之前提醒你注意。

netstat

netstat与ps一样,也是Linux管理员每天都使用的Linux工具。它显示了与网络有关的大量信息,比如套接口使用情况、路由、接口、协议、网络统计信息及更多信息。最常用的一些选项如下:

-a 显示套接口的所有信息

-r 显示路由信息

-i 显示网络接口的统计信息

-s 显示网络协议的统计信息

nmon

nmon是Nigel’s Monitor的简称,这款广受欢迎的开源工具用来监控Linux系统的性能。nmon可以监控多个子系统的性能信息,比如处理器使用率、内存使用率、运 行队列的信息、磁盘输入/输出统计信息、网络输入/输出统计信息、内存分页活动和进程衡量指标。然后,你可以通过curses“图形化”界面,查看 nmon的实时系统衡量结果。

想运行nmon,你可以从外壳来启动该工具。一旦启动,只要输入单键命令,就可以选择要监控的子系统。比如说,想获得处理器、内存和磁盘等方面的统计信息,只要分别输入c、m和d。也可以使用带-f标志的nmon,将性能统计信息保存到CSV文件中,以便日后分析。

就日常的服务器监控而言,我觉得nmon是我的Linux系统管理工具包中最有用的一个程序。

pmap

pmap命令用来报告服务器的进程所使用的内存量。你可以用这个工具来确定服务器上哪些进程被分配了内存、这些进程中有谁在大量使用内存。

ps和pstree

ps和pstree这两个命令是Linux系统管理员的两个得力助手。它们都能以列表的形式显示所有目前在运行的进程。ps可以告诉你服务器的 程序在使用多少的内存和处理器时间。pstree显示的信息比较少,但着重表明了哪些进程是其他进程的子进程。掌握了这些信息,你就能发现失控的进程,然 后用Linux“不留活口”的kill命令,来终止这些进程。

sar

sar程序好比是系统监控工具领域的瑞士军刀。sar命令实际上由三个程序组成:显示数据的sar、收集数据的sa1以及保存数据的sa2。一 旦安装完毕,sar就能生成详细的概要信息,显示处理器使用率、内存分页活动、网络输入/输出和传输方面的统计信息、进程创建活动以及磁盘设备活动。 sar和nmon的一大区别在于,前者更适合长期监控系统,我觉得nmon则比较适合帮助我快速查看服务器的运行状况。

strace

strace 经常被认为是程序员的调试工具,但它的功用不仅仅用来调试。它可以截获和记录进程调用系统的情况。因而,它是一个实用的诊断、教学和调试工具。比如说,你可以使用strace来查出某个程序在启动时实际上使用哪个配置文件。

不过strace的确有一个缺陷。它在检查某个进程时,该进程的性能会一落千丈。因而,只有在我已经有极其充分的理由认为某个程序引起问题的情况下,才使用strace。

tcpdump

tcpdump是一个简单而可靠的网络监控实用工具。其基本的协议分析功能让你能够粗略查看网络上的情况。不过想真正深入分析网络方面的情况,你应该使用Wireshark(下面有介绍)。

top

top命令显示了活动进程方面的情况。默认情况下,它显示了服务器上运行的最消耗处理器的任务,而且每5秒钟就刷新一次列表。你还可以按多个标 准对进程进行分类,比如PID(进程ID);年限,最新的列在最前面;时间,按累计时间;以及驻留内存使用情况和自启动以来一直使用处理器的总时间。我觉 得它提供了一种快速而简易的方法,便于查看有没有进程开始即将失控、带来问题。

uptime

uptime可用来查看某台服务器运行了多久、有多少个用户登录上去。它还显示了服务器平均负载的概要信息。负载的最佳值是1或更小,这意味着每个进程可以立即访问处理器、不存在处理器周期丢失的情况。

vmstat

大体上来说,你可以使用vmstat来监控虚拟内存方面的情况。Linux不断使用虚拟内存,以获得最佳的存储性能。

如果你的应用程序在占用过多的内存,你就会遇到频繁被换出内存(page-out)的情况——即程序从内存进入到系统硬驱上的交换空间。你的服 务器可能会进入到这个阶段:花在管理内存分页上的时间比花在运行应用程序上的时间还多——这种情况被称为抖动(thrashing)。当你的电脑抖动时, 性能就一落千丈。Vmstat可以显示平均的数据或实际样本,可以帮助你发觉大量耗用内存的程序和进程,以免它们导致服务器运行起来如同蜗牛缓行。

Wireshark

Wireshark之前名为Ethereal(而且现在仍经常这么叫),是tcpdump的同类工具,不过它更为高级,拥有先进得多的协议分析 和报告功能。Wireshark既有GUI界面,又有外壳界面。如果你从事专业级的网络管理工作,只能使用ethereal。而如果你在使用 Wireshark/ethereal,我强烈建议阅读Chris Sander所著的《实用数据包分析》(Practical Packet Analysis),该书深入浅出地介绍了如何最充分地利用这款实用程序。

本文只是从总体上概述了一些Linux最有价值的系统监控程序。不过,如果你熟练掌握了这些程序,就为成为顶尖的 Linux系统管理员打下了基础。

推荐飞思网巡免费服务器监控软件,

“飞思网巡”免费版软件,是一款真正免费的IP网管监控报警软件,目前推出的版本是V3 buildno20100604。

此免费版软件没有时间以及监控目标设备和服务器数目的限制,可永久使用,并且我们在个论坛上对使用者提供技术支持。

此免费版软件的作用大于whatsup + cacti+ MRTG,而且更易用、更好用。

功能:

1没有使用时间限制,没有监控目标网络设备、服务器数量限制。

2提供电子邮件和弹出窗口两种报警方式,支持两级阀值设定。

3向导式配置监控目标。

4 支持对一段IP范围或者对段IP列表进行精确自动扫描功能,对扫描的目标进行自动分类,形成清晰的树形结构。

5对主流网络厂家的网络设备进行监控,包括ping存活探测,cpu、内存、存储器空间、接口流量等运行状态。

6对Windows、Linux、HP-UX等操作系统的服务器的ping存活、系统资源(cpu、内存和磁盘空间)、接口流量、进程等进行监控。

7对DHCP、DNS以及任意的TCP网络端口上的网络服务进行监控。

8对HTTP、HTTPS、SMTP、POP、IMAP等企业应用进行监控。

9 支持对配置备份和恢复功能。

10 提供在线帮助系统。

快速安装和使用帮助:

http://wwwfreesinnocom/support/quickinstallhtm

本文介绍了几个常用的Linux监控脚本,可以实现主机网卡流量、系统状况、主机磁盘空间、CPU和内存的使用情况等方面的自动监控与报警。根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性。

最近时不时有互联网的朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性。

下面是我常用的几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助。

1、查看主机网卡流量

复制代码 代码如下:

#!/bin/bash #network #MikeXu while : ; do time='date +%m"-"%d" "%k":"%M' day='date +%m"-"%d' rx_before='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-' tx_before='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-' sleep 2 rx_after='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-' tx_after='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-' rx_result=$[(rx_after-rx_before)/256] tx_result=$[(tx_after-tx_before)/256] echo "$time Now_In_Speed: "$rx_result"kbps Now_OUt_Speed: "$tx_result"kbps" sleep 2 done

2、系统状况监控

复制代码 代码如下:

#!/bin/sh #systemstatsh #MikeXu IP=1921681227 top -n 2| grep "Cpu" 》/temp/cputxt free -m | grep "Mem" 》 /temp/memtxt df -k | grep "sda1" 》 /temp/drive_sda1txt #df -k | grep sda2 》 /temp/drive_sda2txt df -k | grep "/mnt/storage_0" 》 /temp/mnt_storage_0txt df -k | grep "/mnt/storage_pic" 》 /temp/mnt_storage_pictxt time=`date +%m""%d" "%k":"%M` connect=`netstat -na | grep "21923814830:80" | wc -l` echo "$time $connect" 》 /temp/connect_counttxt

3、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告

复制代码 代码如下:

#!/bin/bash #monitor available disk space SPACE='df | sed -n '/ / $ / p' | gawk '{print $5}' | sed 's/%//' if [ $SPACE -ge 90 ] then fty89@163com fi

4、 监控CPU和内存的使用情况

复制代码 代码如下:

#!/bin/bash #script to capture system statistics OUTFILE=/home/xu/capstatscsv

  DATE='date +%m/%d/%Y'

  TIME='date +%k:%m:%s'

  TIMEOUT='uptime'

  VMOUT='vmstat 1 2'

  USERS='echo $TIMEOUT | gawk '{print $4}' '

  LOAD='echo $TIMEOUT | gawk '{print $9}' | sed "s/,//' '

  FREE='echo $VMOUT | sed -n '/[0-9]/p' | sed -n '2p' | gawk '{print $4} ' '

  IDLE='echo $VMOUT | sed -n '/[0-9]/p' | sed -n '2p' |gawk '{print $15}' '

  echo "$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE" 》 $OUTFILE

5、全方位监控主机

复制代码 代码如下:

#!/bin/bash # check_xush # 0 /home/check_xush DAT="`date +%Y%m%d`" HOUR="`date +%H`" DIR="/home/oslog/host_${DAT}/${HOUR}" DELAY=60 COUNT=60 # whether the responsible directory exist if ! test -d ${DIR} then /bin/mkdir -p ${DIR} fi # general check export TERM=linux /usr/bin/top -b -d ${DELAY} -n ${COUNT} ${DIR}/top_${DAT}log 21 # cpu check /usr/bin/sar -u ${DELAY} ${COUNT} ${DIR}/cpu_${DAT}log 21 #/usr/bin/mpstat -P 0 ${DELAY} ${COUNT} ${DIR}/cpu_0_${DAT}log 21 #/usr/bin/mpstat -P 1 ${DELAY} ${COUNT} ${DIR}/cpu_1_${DAT}log 21 # memory check /usr/bin/vmstat ${DELAY} ${COUNT} ${DIR}/vmstat_${DAT}log 21 # I/O check /usr/bin/iostat ${DELAY} ${COUNT} ${DIR}/iostat_${DAT}log 21 # network check /usr/bin/sar -n DEV ${DELAY} ${COUNT} ${DIR}/net_${DAT}log 21 #/usr/bin/sar -n EDEV ${DELAY} ${COUNT} ${DIR}/net_edev_${DAT}log 21

放在crontab里每小时自动执行:

0 /home/check_xush

这样会在/home/oslog/host_yyyymmdd/hh目录下生成各小时cpu、内存、网络,IO的统计数据。

如果某个时间段产生问题了,就可以去看对应的日志信息,看看当时的主机性能如何。

1、gDSS监控软件软件类型:安卓APP软件介绍:gDSS监控软件是大华为公司集团旗下的DSS7016服务平台给予的手机上监控软件,根据这款APP你可以在手机上查询监控系统的界面。

2、EMwork电脑监控软件软件类型:电脑软件软件介绍:概括介绍EMwork电脑监控软件,是一款优秀的企业计算机监管软件。

3、因为总会有一些漏网之鱼的员工为自己的所做作为没有被发现而庆幸,如果企业使用域之盾来对员工进行上网行为管理,就能够时刻了解到员工在电脑上的操作行为,这也是当前企业网络管理的必然选择。

4、zabbix一款老牌经典的监控软件。是一个企业级的分布式开源监控方案。能够实时监控从成千上万台服务器、虚拟机和网络设备中收集到的数以百万计的指标。?提供图形操作界面,可以方便的添加监控指标、告警指标。

5、而且你在选择完之后,只需跟着提示操作,一步步来进行且允许所有操作即可。并且好用的局域网监控软件都是经过安全检验的,并不是什么山寨版能够比拟的。

ELK(,Logstash,Kibana)搭建实时日志分析平台(开源实时日志分析ELK平台部署)

日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。

集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由、Logstash和Kiabana三个开源工具组成。官方网站:

85是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

85Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。

85kibana也是一个开源和免费的工具,他Kibana可以为Logstash和提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。工作原理如下所示:

在需要收集日志的所有服务上部署logstash,作为logstashagent(logstashshipper)用于监控并过滤收集日志,将过滤后的内容发送到logstashindexer,logstashindexer将日志收集在一起交给全文搜索服务,可以用进行自定义搜索通过Kibana来结合自定义搜索进行页面展示。

四大组件:

Logstash:logstashserver端用来搜集日志;

:存储各类日志;

Kibana:web化接口用作查寻和可视化日志;

LogstashForwarder:logstashclient端用来通过lumberjack网络协议发送日志到logstashserver;

收集了一下当前SQLSERVER数据库监控软件,发现开源免费的真的是“没有”

Questsoftware

Quest's

spotlight

Idera's

SQLDiagnosticManager

red-gate

sql-monitor

Cacti(免费

开源

这个工具准确来讲应该算是服务器监控不算是SQLSERVER监控)

微软的SCCM

Idera's

sql

check

windbmonitor

Questsoftware

Foglight

for

SQL

Server

sqlsentry

(sql哨兵)

Performance

Advisor

for

SQL

Server

你好,运维监控有技术实力的可以使用zabbix进行二次开发,优点是zabbix是开源的不需要付费购买,技术实力薄弱的可以选择一些国产的运维监控平台,如北塔,锐捷等。当然如果你的服务器是vmware的虚拟机的话,vmware会有一整套的虚拟化平台监控软件,如vRealize Automation,vRealize Operations,vRealize Business等,唯一的缺点就是需要很多很多钱。不过网上也有一些破解版的可以尝试。

服务器批量操作如果服务器几百台的话可以使用ansbile,ansible可以按不同的应用进行分组的批量操作,如果服务器不多可以使用fabric或者自己写一些脚本进行自动化的操作。

ansible是基于模块工作的,ansible只是提供一种框架。主要包括:

(1)、连接插件connection plugins:负责和被监控端实现通信;

(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

希望我的回答可以帮到您。

使用过的就只有宝塔和云帮手了,但我推荐云帮手多一点。首先它是免费的,无使用门槛,新手小白也可以快速入门。另外它的功能很齐全,像巡检啊、监控啊、告警啊、防护啊一些常用功能它都有,服务器运维管理一站式搞定。不过还是要你自己使用了才知道好不好,直接去云帮手官网就可以下载体验了

宝塔的话,它的高级功能都是付费的,而且技术响应很慢,遇到什么问题很难找到人解决,云帮手就不一样,技术客服全天在线,用户反馈第一时间解决,觉得贼靠谱。

追加回复说明,有同学留言说wgcloud免费版只能监控10个主机,我解释下,wgcloud有开源版本和商业版本,开源版免费也不限制主机数量。商业免费版最多监控10主机,再多就要升级为付费专业版了,免费版一般对我们中小型企业和个人是够用的

以下为原回复————————

新手的话,推荐 开源运维监控系统wgcloud ,轻量级高性能,国人开源,基本覆盖了服务器主机各种指标监控。

wgcloud和其他工具比较,主要安装使用简单,没什么学习成本的,容易快速上手,不用写脚本啊模板什么的,接近自动化运行监控。

可以下载一个试一试

我个人比较喜欢云帮手,界面简洁操作简单,比较容易上手,适合像我这样的新手!

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 16个不可不知的Linux服务器监控命令

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情