写点什么

4 个好用的 Linux 监控工具

  • 2020-05-29
  • 本文字数:1588 字

    阅读完需:约 5 分钟

4个好用的Linux监控工具


身为一个运维开发人员,如果你不知道眼下当前服务器底层操作系统中正在发生什么,那就有点合眼摸象了。其实,你可以根据相应数据做出一定的推测,但是要做到这一点,就需要原始数据,并且数据要有一定的实时性。


你需要能够根据操作系统当前的运行状态,结合监控数据来做出合理判断,采取相应措施。


你是否曾经遇到过一台服务器运行缓慢,但是 CPU 使用率看起来不是很高的情况?你是否遇到过服务器的网络利用率很高,但是定位不到导致高网络利用率的进程情况?


下面介绍的这些工具可以给你提供帮助。最重要的是,它们中的大多数都可以在没有 GUI 的情况下使用,并且能轻松安装在大多数服务器上。 以下就是我每天用到的一些不错的 Linux 监控工具,它们可以帮助我快速准确地诊断和定位问题。

1. iotop


如果你想知道到底哪些进程消耗了服务器宝贵的 I/O 资源,那么请使用 iotop!我无数次地使用它通过 IOPS 参数来定位那些疯狂占用磁盘 IO 的耗时进程。


你只是无法从传统工具(如 top)中获取原始数据。当使用 iotop 时,你会发现正如工具的名字所描述的一样,它会展示进程和系统的 I/O 资源使用情况。


你可以将其用于多种目的,但最关键的是查看磁盘使用情况并标记潜在的性能瓶颈。将此工具与 top 或 htop 等其他工具结合使用,能帮你更全面地了解服务器当前负载情况。


我不建议将 iotop 用于基准测试。尽管你能清楚地了解每个进程占用多少 I/O 资源,但它更适合实时监控而不是重复的性能测试。如果你对 I/O 基准测试感兴趣,我推荐一个名为fio的工具。

2. htop


这是我本人的最爱的监控工具之一。该工具比 top 工具更具视觉吸引力,并且拥有出色的默认配色方案。使用它,你就可以马上对系统当前运行情况有一个清晰了解。


你能清晰地在水平条形图中查看计算机内核数目以及它们的利用率。同样的,你还可以获得内存使用情况的简单统计信息,并且在底部也有经典的 top 进程列表。


我热衷于 htop 的主要原因是它能快速地提供我所关注的信息。我就是想看看服务器每核 CPU 使用率和内存使用率在图形上是怎样的-而不是一个无聊的百分比。


如果你肯定某个进程正在耗尽系统上的所有核心从而打开 htop 进行查看,那么就会发现大片红色,整个过程快速而简单。

3. IPTraf


这是一个诊断网络问题非常有用的工具。使用此工具,你可以监控正在网络传输的网络流量。也能以特定的接口或流量类型(例如特定的 TCP 端口)进行过滤。它与Wireshark功能非常相似,不同之处在于它更轻巧,并且也可以在没有 GUI 的情况下运行。


另外,该监控工具还有一些非常棒的功能,比如按数据包大小对流量进行统计细分:



您可以使用 tcpdump tshark 之类的命令行工具执行类似的操作,但是此工具是菜单驱动的,更易于浏览。如果你更倾向于交互式地过滤和查看网络流量情况,那么 IPTraf 这款工具会如你所愿。

4. Monit


这是你可以在 Linux 上使用的最灵活、功能最强大的监视工具之一。Monit出现了很多年,它能通过多种方式进行配置以支持不同类型的阈值监控和性能告警。


Monit 允许你指定要在 Linux 操作系统上监视的进程、端口、文件等。它支持使用复杂的回退计时器 back-off timer 和消息来设置动态警报模式。


一个监控场景比如你想要监控特定进程以确保其正在运行。如果该进程崩溃一次,只需重新启动它即可。如果它开始多次连续地崩溃,那就不要重新启动该进程,而应该发送警报。这样的监控场景可以通过 Monit 的几行配置轻松实现。


Monit 甚至为守护程序提供了一个不错的轻量级 Web 界面,让你一眼就能看到服务器发生了什么:



无论你是管理单个服务器还是集群,Monit 提供了最简单,最高效和最划算的(免费!)方法来帮你监控服务的运行状态。

结论

非常感谢你抽出宝贵的时间阅读本文。我希望在你了解到我提到的这些 Linux 监控工具,以及为什么它们在分析系统异常时能发挥如此重要的作用后,能使您乐在其中,并有所收获。


原文链接:4 Linux Monitoring Tools You Should Use


2020-05-29 15:5910943
用户头像
王坤祥 日拱一卒,功不唐捐。

发布了 76 篇内容, 共 18.7 次阅读, 收获喜欢 127 次。

关注

评论

发布
暂无评论
发现更多内容

HTTP Methods和RESTful API的设计

孙苏勇

架构 系统设计 RESTful 接口

如何解决 Kubernetes 的 DNS 延迟问题

倪朋飞

Kubernetes 微服务 云原生

Kubernetes中的CI/CD

倪朋飞

Kubernetes DevOps 微服务

我如何用 Python 给 Github 的 README.md 做一个访客统计功能

遇见

Python GitHub 开源 badge open-source

精纯还是混乱?职场十二箴言——重读“成为乔布斯”的思考(二)

石君

创业 乔布斯 成为乔布斯

用你喜欢的 emoji 作为页面的 favicon 吧 🎉

遇见

CSS html favicon emoji

做小池塘里的大鱼,还是大池塘里的小鱼?这是个问题。

霍太稳@极客邦科技

创业 团队管理 目标管理

【SpringBoot】掌握这两个属性,你的测试类可以启动的更快些

遇见

Java Spring Boot Unit Test

简单到不可能失败 —— 《微习惯》

零和幺

读书笔记

精纯还是混乱?职场十二箴言——重读“成为乔布斯”的思考(一)

石君

职场 乔布斯 成功学

探究vscode debug流程,解决无法运行go程序的问题

simpleapples

vscode Go 语言

任正非管理哲学中的三个常识和三种科学

霍太稳@极客邦科技

创业 团队管理 华为

喔,明白了,成功也是一种苦难

霍太稳@极客邦科技

创业 身心健康 企业文化 个人成长 心理

特别评论:甲骨文的傲气

张晓楠

云计算 互联网巨头 企业文化

我的第一个千万阅读量

彭宏豪95

创作 生活 写作

GitHub知错就改,是个好同志

遇见

GitHub

dubbo-go 中如何实现远程配置管理

joe

Apache 开源 微服务 dubbo Go 语言

翻译: Effective Go (2)

申屠鹏会

翻译 Go 语言

【深度】为您解读东西方艺术教育的专业设置差异对比~

默聲

无代码开发

Fenng

Kubernetes 容器运行时演进

倪朋飞

Kubernetes 容器 云原生

一篇文章搞定 java 中的 path 和 classpath

shengjk1

Java classpath vs path classpath path

Elasticsearch文档版本冲突原理与解决

Skysper

elasticsearch 乐观锁 悲观锁

分布式数据库是无用的屠龙术吗?

海边的Ivan

企业架构 分布式数据库 业务中台

如何做一名失败的安全架构师

石君

架构 安全架构师 安全评估

删掉最后一句话

池建强

心理学 情绪控制

《小狗钱钱》——财富离我们并不遥远

Yin

读书笔记 投资 成长 思维方式

走出舒适区最好办法别走了,扩大它

乐少

是时候要说再见了,春风十里,不如邮你!

乐少

小议RPA

一品凡心

人工智能 RPA 自动化

做产品的同理心

孙苏勇

产品 产品经理 产品设计

4个好用的Linux监控工具_文化 & 方法_Tate Galbraith_InfoQ精选文章