本期推荐几款相对冷门,但非常好用的工具
1、Conky
Conky 是一个轻量级的系统监视工具,可以显示系统状态、资源使用情况、网络流量等信息。它支持通过配置文件自定义显示内容和格式。
- 安装命令:
sudo yum install conky
- 使用命令:
conky -c <config_file_path>
- 示例说明:
创建
~/conkyrc
文件:
${color green}SYSTEM ${hr 2}$color
$nodename $sysname $kernel
Uptime: $uptime
Load: $loadavg
CPU: ${cpu cpu}% ${cpubar}
RAM: ${mem} / ${memmax} ${membar}
Swap: ${swap} / ${swapmax} ${swapbar}
${color green}NETWORK ${hr 2}$color
IP: ${addr enp0s3}
Down: ${downspeed enp0s3} ${downspeedgraph enp0s3}
Up: ${upspeed enp0s3} ${upspeedgraph enp0s3}
运行 Conky:
代码语言:javascript复制 $ conky -c ~/conkyrc
这表明 Conky 显示了当前系统的一些基本信息和网络流量等指标。
2、Glances
Glances 是一个基于终端的系统监视工具,可以显示 CPU、内存、网络、存储等信息,还支持扩展插件。
- 安装命令:
sudo yum install glances
- 使用命令:
glances
- 示例说明: 运行 Glances:
$ glances
这表明 Glances 显示了当前系统上的一些重要指标,包括 CPU 使用率、内存使用情况、磁盘使用情况、网络传输速率等。
3、Linux Dash
Linux Dash 是一个基于 Web 的系统监视工具,可以通过浏览器访问,显示系统资源使用情况、进程、文件系统等信息。
- 安装命令:
sudo yum install python3-linux-dash
- 使用命令:
sudo linux-dash
- 示例说明: 运行 Linux Dash:
$ sudo linux-dash
然后在浏览器中访问 http://localhost:23333
,就可以看到 Linux Dash 的监视页面。这页面列出了当前系统上的进程、CPU 和内存使用情况、文件系统信息、网络流量等指标。
4、Netdata
Netdata 是一个基于 Web 的实时性能监测工具,可以实时地显示服务器的 CPU、内存、磁盘、网络等指标,还可以细分到单个进程的性能指标。
- 安装命令:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
- 使用命令:
sudo systemctl start netdata
- 示例说明:
在安装完 Netdata 后,使用
systemctl
命令启动服务:
$ sudo systemctl start netdata
然后在浏览器中访问 http://localhost:19999
,就可以看到 Netdata 的监视页面。这页面包含了当前系统的所有监测指标,以及各种统计图表和警告信息等。
5、Ntop
Ntop是一款网络流量监测工具,可以通过通过Web界面来查看网络流量和协议的信息。Ntop 官网: http://www.ntop.org/
安装
代码语言:javascript复制sudo apt-get install ntop
启动 Ntop
代码语言:javascript复制sudo ntop -i <network_interface>
其中,<network_interface>
是指定要监测的网络接口名。
访问 Web 界面
在浏览器中输入以下地址:
代码语言:javascript复制http://<ip_address>:3000/
其中,<ip_address>
是指运行 Ntop 的主机的 IP 地址。
6、Graphite
Graphite 是一款开源的度量监控工具,可以收集和展示系统性能指标。Graphite 官网: https://graphiteapp.org/
安装
代码语言:javascript复制sudo apt-get install graphite-web graphite-carbon
配置 Graphite
在 /etc/graphite/local_settings.py
文件中添加以下配置:
TIME_ZONE = 'Asia/Shanghai'
然后创建数据库:
代码语言:javascript复制sudo python3 /usr/share/graphite-web/graphite/manage.py syncdb
启动 Carbon 和 Graphite Web 服务
代码语言:javascript复制sudo systemctl start carbon-cache
sudo systemctl start graphite-web
访问 Web 界面
在浏览器中输入以下地址:
代码语言:javascript复制http://<ip_address>:80/
其中,<ip_address>
是指运行 Graphite Web 的主机的 IP 地址。
7、Munin
Munin 是一款网络监控工具,可以用于监控多个主机的系统资源、网络流量和服务状态等。Munin 官网: http://munin-monitoring.org/
安装
代码语言:javascript复制sudo apt-get install munin-node munin
配置 Munin
编辑 /etc/munin/munin-node.conf
文件,添加以下配置:
allow ^<ip_address>
其中,<ip_address>
是指 Munin 服务器的 IP 地址。
启动 Munin
代码语言:javascript复制sudo systemctl start munin-node
访问 Web 界面
在浏览器中输入以下地址:
代码语言:javascript复制http://<ip_address>/munin/
其中,<ip_address>
是指 Munin 服务器的 IP 地址。
8、Pingdom
Pingdom 是一款 SaaS 云监控工具,可以用于监控网站、应用程序、服务器和网络等资源的可用性和性能。Pingdom 官网: https://www.pingdom.com/
注册账号
首先需要在 Pingdom 官网上注册账号,并在控制台中创建监控任务。
使用 API
可以使用 Pingdom API 来访问 Pingdom 的监控数据。需要先在控制台中生成 API 密钥,并使用以下命令来获取指定时间段内的监控数据:
代码语言:javascript复制curl -X GET
-H "App-Key: <app_key>"
-H "Authorization: Bearer <api_token>"
"https://api.pingdom.com/api/3.1/checks/<check_id>/analysis?from=<from>&to=<to>"
其中,<app_key>
是应用程序的密钥,<api_token>
是 API 访问令牌,<check_id>
是监控任务的 ID,<from>
和 <to>
是起止时间戳。
返回结果是 JSON 格式的数据,可以使用 jq 命令来解析和格式化:
代码语言:javascript复制curl -X GET
-H "App-Key: <app_key>"
-H "Authorization: Bearer <api_token>"
"https://api.pingdom.com/api/3.1/checks/<check_id>/analysis?from=<from>&to=<to>"
| jq .
其中,.
表示将解析结果直接输出到终端。
9、Ganglia
Ganglia是一种用于监测计算机系统、网络和应用程序的开源软件。它可以在多个主机之间共享系统性能数据,并将其呈现为可视化的图形。以下是Ganglia的使用方法和相关命令:
安装
安装Ganglia的命令会根据你的Linux发行版而有所不同。以下是一些示例:
代码语言:javascript复制# Ubuntu/Debian
sudo apt-get install ganglia-monitor gmetad ganglia-webfrontend
# CentOS/RHEL
sudo yum install ganglia-gmond ganglia-gmetad ganglia-web
配置
在安装后,需要对Ganglia进行配置,使其能够连接到主机并收集数据。以下是一些示例配置:
/etc/ganglia/gmond.conf
:该文件包含gmond守护进程的配置。在其中指定数据传输端口、主机名等信息。/etc/ganglia/gmetad.conf
:该文件包含gmetad守护进程的配置。在其中指定数据存储路径、数据源等信息。/etc/httpd/conf.d/ganglia.conf
:该文件包含Ganglia Web前端的Apache配置。在其中指定Web访问路径等信息。
启动
安装和配置完成后,需要启动Ganglia守护进程和Web前端。以下是一些示例命令:
代码语言:javascript复制# 启动gmond守护进程
sudo service gmond start
# 启动gmetad守护进程
sudo service gmetad start
# 启动Web前端
sudo service httpd start
监控
Ganglia的主要用途是监控系统性能。它可以收集CPU使用率、内存使用率、网络流量等信息,并将其呈现为可视化的图形。以下是一些示例命令:
代码语言:javascript复制# 查看当前主机的CPU使用率
gmetric -n cpu_usage -v 50 -t uint16 -u % -D "CPU usage"
# 查看当前主机的内存使用率
gmetric -n mem_usage -v 70 -t uint16 -u % -D "Memory usage"
# 查看当前主机的网络流量
gmetric -n network_traffic -v 100 -t float -u "KB/s" -D "Network traffic"
以上命令会将指定的性能数据发送到Ganglia守护进程,以便进行监控和可视化。
10、collectd
collectd是一种系统性能收集器,它可以监测主机上的CPU、内存、磁盘、网络等性能数据,并将其发送到其他系统进行分析和可视化。以下是collectd的使用方法和相关命令:
安装
安装collectd的命令会根据你的Linux发行版而有所不同。以下是一些示例:
代码语言:javascript复制# Ubuntu/Debian
sudo apt-get install collectd
# CentOS/RHEL
sudo yum install collectd
11、Zenoss Core
Zenoss Core 是一款基于 Web 的网络管理和监控软件,支持集中的系统管理、应用程序监控、网络流量分析等功能。Zenoss Core 官网: https://www.zenoss.com/products/core-platform
安装
Zenoss Core 的安装非常复杂,建议参考官方文档或教程进行安装和配置。
访问 Web 界面
在浏览器中输入以下地址:
代码语言:javascript复制http://<ip_address>:8080/
其中,<ip_address>
是指运行 Zenoss Core 的主机的 IP 地址。
使用命令行界面
可以使用命令行界面来进行监控和管理,示例命令如下:
代码语言:javascript复制# 显示所有设备
zenbatchload -v devices.txt
# 显示所有事件
zenevents -l
# 显示所有性能数据
zencommand -u admin -p passwd -v <dev_name> getDataPoints
其中,devices.txt
是包含设备名称和 IP 地址的文本文件,<dev_name>
是指定设备的名称。
12、Hyperic HQ
Hyperic HQ 是一款企业级系统管理和监控工具,支持多平台、多种应用程序和网络协议。Hyperic HQ 官网: http://www.hyperic.com/
安装
Hyperic HQ 的安装非常复杂,建议参考官方文档或教程进行安装和配置。
访问 Web 界面
在浏览器中输入以下地址:
代码语言:javascript复制http://<ip_address>:7080/
其中,<ip_address>
是指运行 Hyperic HQ 的主机的 IP 地址。
使用命令行界面
可以使用命令行界面来进行监控和管理,示例命令如下:
代码语言:javascript复制# 在指定服务器上安装 agent
hq-agent.sh install <server_ip>
# 启动 agent
hq-agent.sh start
# 安装指定服务的插件和检测器
hq-plugin.sh -i ./plugins/*.zip
# 添加指定的服务器并进行监控
hqapi-server.sh add-resource --host=<host> --port=<port> --username=<username> --password=<password> --autoinventory
其中,<server_ip>
是指定服务器的 IP 地址,plugins/*.zip
是插件包的文件路径,<host>
, <port>
, <username>
和 <password>
是指定服务器的连接信息。
以上工具功能非常丰富且复杂,以上只是简述它们的客户端命令示例,如果需要深入了解和利用这些工具,建议参考每个工具的官方文档和使用手册。