有没有一种简单的方法可以找到我的服务器“做什么”?

有没有一种简单的方法可以找到我的服务器“做什么”?

我获得了一些 Linux 服务器的访问权限,以帮助增加网络容量。现在我想知道是否有更多方法来检查服务器,而不仅仅是运行top并查看正在运行的内容?

如果我想在通过 ssh 登录时获得良好的概览,是否有一种信息丰富的方法可以快速概览哪些服务和守护进程正在运行以及它们正在做什么?

答案1

您可以考虑使用htop而不是top来获得更加图形化的输出。

然后您可以使用lsof -p <pid>查看服务打开了哪些文件,包括网络文件。 lsof有多种选择,建议您咨询一下man 8 lsof

然后您可以使用iptop它来查看当前的网络连接,该工具再次为您提供了许多选项,例如显示服务器所连接的远程计算机的已解析 IP 地址或其域名。

monitorix显示系统平均负载和使用情况、内存分配、磁盘驱动器运行状况、系统服务、网络端口、邮件统计信息。

如果您担心安全问题,苏里卡塔发动机“能够进行实时入侵检测(IDS)、内联入侵防御(IPS)、网络安全监控(NSM)和离线pcap处理”。它是免费且开源的。

对于监控机器上几乎所有内容的完整工具,有收集,一个完整的工具,用于监视和收集有关 Linux 系统资源的信息,如 CPU 使用情况、内存、网络、索引节点、进程、nfs、tcp、套接字。在法语中,我们使用“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

将向您展示哪些进程实际上正在锤击磁盘。

相关内容