>  기사  >  운영 및 유지보수  >  Linux 서버 상태를 모니터링하는 방법

Linux 서버 상태를 모니터링하는 방법

步履不停
步履不停원래의
2019-06-19 16:12:343388검색

Linux 서버 상태를 모니터링하는 방법

우리는 매일 Linux 서버, 특히 Linux 엔지니어를 상대합니다. 서버의 보안과 성능을 보장하기 위해 작업이 원활하게 수행될 수 있도록 서버의 일부 상태를 모니터링해야 하는 경우가 많습니다.

이 글에서 소개하는 명령어들은 서버 모니터링 뿐만 아니라 일상적인 개발에도 적합합니다.

1. watch

watch 명령은 매우 자주 사용됩니다. 기본 기능은 특정 명령을 지정된 빈도로 반복적으로 실행하는 것입니다. 이 명령을 사용하면 일부 명령을 반복적으로 호출하여 서버를 모니터링할 수 있습니다.

기본적으로 watch 명령의 실행 기간은 2초이지만 -n 옵션을 사용하여 실행 빈도를 지정할 수 있습니다. 예를 들어 5초마다 date 명령을 실행하려는 경우입니다. 초, 우리는 다음과 같이 실행할 수 있습니다: -n 选项来指定运行频率,比如我们想要每隔 5 秒执行 date 命令,可以这么执行:

$ watch -n 5 date

一台服务器肯定有多人在用,特别是本部门的小伙伴。对于这些小伙伴有没浑水摸鱼,我们可以使用一些命令来监控他们。

我们可以每隔 10 秒执行 who 命令,来看看都有谁在使用服务器。

$ watch -n 10 who
Every 10.0s: who                             butterfly: Tue Jan 23 16:02:03 2019

shs      :0           2019-01-23 09:45 (:0)
dory     pts/0        2019-01-23 15:50 (192.168.0.5)
alvin     pts/1        2019-01-23 16:01 (192.168.0.15)
shark    pts/3        2019-01-23 11:11 (192.168.0.27)

如果发现系统运行很慢,我们可以调用 uptime 命令来查看系统平均负载情况。

$ watch uptime
Every 2.0s: uptime                           butterfly: Tue Jan 23 16:25:48 2019

 16:25:48 up 22 days,  4:38,  3 users,  load average: 1.15, 0.89, 1.02

一些关键的进程肯定不能挂,否则可能会影响到业务开展,所以我们可以重复统计服务器中的所有进程数量。

$ watch -n 5 'ps -ef | wc -l'
Every 5.0s: ps -ef | wc -l                   butterfly: Tue Jan 23 16:11:54 2019

245

想动态知道服务器内存使用情况,可以重复执行 free 命令。

$ watch -n 5 free -m
Every 5.0s: free -m                          butterfly: Tue Jan 23 16:34:09 2019

              total        used        free      shared  buff/cache   available
Mem:           5959         776        3276          12        1906        4878
Swap:          2047           0        2047

当然不仅仅是这些,我们还可以重复调用很多命令来对服务器一些关键参数进行监控,

2. top

使用 top 命令我们可以知道系统的很多关键参数,而且是动态更新的。默认情况下,top 监控的是系统的整体状态,如果我们只想知道某个人的使用情况,可以使用 -u 选项来指定这个人。

$ top -u alvin
top - 16:14:33 up 2 days,  4:27,  3 users,  load average: 0.00, 0.01, 0.02
Tasks: 199 total,   1 running, 198 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   5959.4 total,   3277.3 free,    776.4 used,   1905.8 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4878.4 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
23026 alvin      20   0   46340   7820   6504 S   0.0   0.1   0:00.05 systemd
23033 alvin      20   0  149660   3140     72 S   0.0   0.1   0:00.00 (sd-pam)
23125 alvin      20   0   63396   5100   4092 S   0.0   0.1   0:00.00 sshd
23128 alvin      20   0   16836   5636   4284 S   0.0   0.1   0:00.03 zsh

在这个结果里,你不仅仅可以看到 alvin 这个用户运行的所有的进程数,也可以看到每个进程所消耗的系统资源(CPU,内存),同时依然可以看到整个系统的关键参数。

3. ac

如果你想知道每个用户登录服务器所使用的时间,你可以使用 ac 命令。这个命令需要你安装acct 包(Debian)或 psacct 包(RHEL,Centos)。

如果我们想知道所有用户登陆服务器所使用的时间之和,我们可以直接运行 ac 命令,无需任何参数。

$ ac
        total     1261.72

如果我们想知道各个用户所使用时间,可以加上 -p 选项。

$ ac -p
        shark                                5.24
        alvin                                5.52
        shs                               1251.00
        total     1261.76

我们还可以通过加上 -d

$ ac -d | tail -10
Jan 11  total        0.05
Jan 12  total        1.36
Jan 13  total       16.39
Jan 15  total       55.33
Jan 16  total       38.02
Jan 17  total       28.51
Jan 19  total       48.66
Jan 20  total        1.37
Jan 22  total       23.48
Today   total        9.83

서버는 여러 사람, 특히 이 부서의 친구들이 사용해야 합니다. 우리는 몇 가지 명령을 사용하여 이 친구들이 어려운 바다에서 낚시를 하고 있는지 모니터링할 수 있습니다.

누가 서버를 사용하고 있는지 확인하기 위해 10초마다 who 명령을 실행할 수 있습니다.

rrreee시스템이 매우 느리게 실행되는 경우 uptime 명령을 호출하여 시스템의 평균 부하를 확인할 수 있습니다. rrreee일부 주요 프로세스는 중단되어서는 안 됩니다. 그렇지 않으면 비즈니스 개발에 영향을 미칠 수 있으므로 서버의 모든 프로세스 수를 반복적으로 계산할 수 있습니다. rrreee서버 메모리 사용량을 동적으로 알고 싶다면 free 명령을 반복해서 실행하면 됩니다. rrreee

물론 이것뿐만 아니라 많은 명령을 반복적으로 호출하여 서버의 일부 주요 매개변수를 모니터링할 수도 있습니다.

2.toptop 명령을 사용하면 시스템의 많은 주요 매개변수를 알 수 있으며, 동적으로 업데이트됩니다. 기본적으로 top은 시스템의 전체 상태를 모니터링합니다. 특정 사람의 사용량만 알고 싶다면 -u 옵션을 사용하여 해당 사람을 지정할 수 있습니다. rrreee이 결과에서는 alvin 사용자가 실행하는 모든 프로세스 수뿐만 아니라 각 프로세스가 소비하는 시스템 리소스(CPU, 메모리)도 볼 수 있으며, 전체 시스템 키 매개변수도 볼 수 있습니다. 3.ac각 사용자가 서버에 로그인하는 데 걸리는 시간을 알고 싶다면 ac 명령을 사용하면 됩니다. 이 명령을 사용하려면 acct 패키지(Debian) 또는 psacct 패키지(RHEL, Centos)를 설치해야 합니다.

모든 사용자가 서버에 로그인하는 데 걸리는 시간의 합계를 알고 싶다면 매개 변수 없이 ac 명령을 직접 실행하면 됩니다. 🎜rrreee🎜각 사용자의 사용 시간을 알고 싶다면 -p 옵션을 추가하면 됩니다. 🎜rrreee🎜-d 옵션을 추가하면 사용자가 매일 사용한 서버 시간의 합계를 볼 수도 있습니다. 🎜rrreee🎜요약🎜🎜다양한 명령을 사용하여 시스템의 실행 상태를 모니터링할 수 있습니다. 이 기사에서는 주로 세 가지를 소개합니다. 🎜watch🎜 명령을 사용하면 특정 명령을 반복적으로 실행하여 일부 매개변수의 변경 사항을 모니터링할 수 있습니다. view 특정 사용자가 실행 중인 프로세스 수와 소비된 리소스 수, 🎜ac🎜 명령을 사용하면 각 사용자가 사용한 서버 시간을 볼 수 있습니다. 어떤 명령어를 자주 사용하시나요? 토론을 위해 메시지를 남겨주신 것을 환영합니다! 🎜🎜🎜🎜🎜더 많은 Linux 기사를 보려면 🎜🎜Linux Tutorial🎜🎜🎜🎜 칼럼을 방문하여 알아보세요! 🎜🎜

위 내용은 Linux 서버 상태를 모니터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Linux 기본 시리즈 2다음 기사:Linux 기본 시리즈 2