집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux 서버 상태를 모니터링하는 방법
우리는 매일 Linux 서버, 특히 Linux 엔지니어를 상대합니다. 서버의 보안과 성능을 보장하기 위해 작업이 원활하게 수행될 수 있도록 서버의 일부 상태를 모니터링해야 하는 경우가 많습니다.
이 글에서 소개하는 명령어들은 서버 모니터링 뿐만 아니라 일상적인 개발에도 적합합니다.
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
当然不仅仅是这些,我们还可以重复调用很多命令来对服务器一些关键参数进行监控,
使用 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,内存),同时依然可以看到整个系统的关键参数。
如果你想知道每个用户登录服务器所使用的时间,你可以使用 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)를 설치해야 합니다.
-p
옵션을 추가하면 됩니다. 🎜rrreee🎜-d
옵션을 추가하면 사용자가 매일 사용한 서버 시간의 합계를 볼 수도 있습니다. 🎜rrreee🎜요약🎜🎜다양한 명령을 사용하여 시스템의 실행 상태를 모니터링할 수 있습니다. 이 기사에서는 주로 세 가지를 소개합니다. 🎜watch🎜 명령을 사용하면 특정 명령을 반복적으로 실행하여 일부 매개변수의 변경 사항을 모니터링할 수 있습니다. view 특정 사용자가 실행 중인 프로세스 수와 소비된 리소스 수, 🎜ac🎜 명령을 사용하면 각 사용자가 사용한 서버 시간을 볼 수 있습니다. 어떤 명령어를 자주 사용하시나요? 토론을 위해 메시지를 남겨주신 것을 환영합니다! 🎜🎜🎜🎜🎜더 많은 Linux 기사를 보려면 🎜🎜Linux Tutorial🎜🎜🎜🎜 칼럼을 방문하여 알아보세요! 🎜🎜위 내용은 Linux 서버 상태를 모니터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!