내 서버가 "무엇을" 하는지 쉽게 알 수 있는 방법이 있나요?

내 서버가 "무엇을" 하는지 쉽게 알 수 있는 방법이 있나요?

네트워크 용량을 늘리기 위해 일부 Linux 서버에 액세스할 수 있었습니다. 이제 단순히 실행 top하고 무엇이 실행되고 있는지 확인하는 것보다 서버를 확인하는 더 많은 방법이 있는지 궁금합니다 .

SSH를 통해 로그인할 때 좋은 개요를 얻으려면 어떤 서비스와 데몬이 실행 중이고 무엇을 하고 있는지에 대한 빠른 개요를 얻을 수 있는 유용한 방법이 있습니까?

답변1

더 많은 그래픽 출력을 얻으려면 htop대신 사용하는 것을 고려할 수 있습니다 .top

그런 다음 이를 사용하여 lsof -p <pid>네트워크 파일을 포함하여 서비스에서 열려 있는 파일을 확인할 수 있습니다. lsof다양한 옵션이 있으니 문의해 보시기 바랍니다 man 8 lsof.

그런 다음 이 도구를 사용하여 현재 네트워크 연결을 볼 수 있으며 iptop, 도구는 서버가 연결된 원격 컴퓨터의 확인된 IP 주소 또는 해당 도메인 이름 표시와 같은 다양한 옵션을 제공합니다.

monitorix시스템 로드 및 사용 평균, 메모리 할당, 디스크 드라이브 상태, 시스템 서비스, 네트워크 포트 및 메일 통계를 표시합니다.

안전 문제가 걱정된다면,수리카타 엔진"실시간 침입 탐지(IDS), 인라인 침입 방지(IPS), 네트워크 보안 모니터링(NSM) 및 오프라인 PCAP 처리가 가능합니다." 무료이며 오픈 소스입니다.

컴퓨터의 거의 모든 것을 모니터링하는 완전한 도구의 경우 다음이 있습니다.모으다는 CPU 사용량, 메모리, 네트워크, inode, 프로세스, nfs, tcp, 소켓과 같은 Linux 시스템 리소스에 대한 정보를 모니터링하고 수집하기 위한 완벽한 도구입니다. 프랑스어에서는 이러한 도구에 대해 "미로 시스템"으로 번역되는 "usine à gaz"라는 표현을 사용하지만 매우 효과적인 것 같습니다.

답변2

서버가 어떤 서비스를 제공하는지 알고 싶다면 모든 수신 TCP/UDP 포트를 확인해야 합니다.

netstat -ltu  

l은 청취를 의미합니다.
t는 tcp를 의미합니다.
u는 udp를 의미합니다.

또한 부팅 시 어떤 서비스가 시작되는지 확인하세요.

service --status-all

그리고 systemd를 사용하세요

systemctl list-units

답변3

내 첫 번째 명령은

>netstat -lpunt

프로세스 ID 및 프로그램 이름과 함께 모든 수신 대기 포트가 나열됩니다.

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      18637/mysqld

아, 보세요. mysql을 실행 중입니다. 정의된 데이터베이스 이름을 봅니다.

tcp6       0      0 :::8084                 :::*                    LISTEN      18034/java

자바. 아마도 톰캣일지도...

>ps ax | grep 18034
18034 ?        Ssl    0:34 /usr/lib/jvm/jre/bin/java -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomca

예. /usr/share/tomcat을 확인하여 어떤 .war 파일이 있는지 확인하세요.

tcp6       0      0 :::80                   :::*                    LISTEN      20336/httpd

아파치. 사이트 정의 파일을 찾으세요.

... 등. 일반적으로 서버는 IP를 통해 서비스를 게시하므로 청취 소켓이 좋은 출발점이 됩니다.

기계가 "사용 중"인 경우,

iotop -o -d 10

어떤 프로세스가 실제로 디스크를 망치고 있는지 보여줍니다.

관련 정보