1. Introduction
Linux 监控是一项重要的工作,尤其是在 Web 应用开发、系统维护等工作中,快速而准确的了解系统运行状况将作为有效的帮助。对于 Web 应用开发来说,实时追踪请求动态信息是很重要的,它不仅可以发现问题而及时解决,而且可以了解用户使用行为及需求,从而提供更好的用户体验。本文将介绍如何在 Linux 系统中监控请求动态信息。
2. 使用工具
2.1 Linux 工具
Linux 系统自带的工具,例如 ps、top 等都能监控 Linux 系统。其中 ps 可以查看进程相关信息,top 可以实时监控系统负载、CPU 占用率等。
// 显示进程相关信息
ps -ef
// 显示实时系统负载、CPU、内存占用率
top
不过,这些工具不能非常准确地追踪请求动态信息,需要使用其他工具实现更精确的监控。
2.2 nginx 工具
nginx 是一款高性能的 Web 服务器及反向代理服务器,它具有轻量、高速等优点,同时也提供了完善的监控工具。在 nginx.conf 配置文件中,配置 http_stub_status_module 模块可以启用请求监控功能。启用后,可以通过访问 nginx 状态页面,实时了解请求量、请求时间及状态码等信息。
// nginx.conf 配置文件
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
在浏览器中输入 http://127.0.0.1/nginx_status 或者 http://your-domain.com/nginx_status 均可查看 nginx 请求监控信息。
3. 使用 influxdb 和 grafana 实时展示调用信息
3.1 influxdb 的安装与配置
influxdb 是一个时序性数据库,它专注于存储和查询大量数据。使用 influxdb 存储请求监控信息,能够为问题排查和性能调优提供依据。
在安装 influxdb 前需要先安装 gpg。
// 安装 gpg 工具
sudo apt install gnupg
然后添加 influxdb 的 APT 仓库源,更新源列表,安装 influxdb。
// 添加源
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
// 导入 GPG 密钥
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
// 更新源列表
sudo apt update
// 安装 influxdb
sudo apt install influxdb
安装完成后,启动 influxdb 服务,并通过浏览器访问本地的 8086 端口,确认 influxdb 是否启动成功(浏览器访问地址 http://localhost:8086 )。
然后,可以使用官方提供的 influxdb 终端,创建一个名为 nginx_requests 的数据库。
// 进入 influxdb 终端
influx
// 创建数据库 nginx_requests
CREATE DATABASE nginx_requests
3.2 grafana 的安装与配置
grafana 是一个数据可视化工具,可以方便地实现数据展示。在本文中,我们将使用 grafana 实现请求监控信息的实时展示。
首先,添加 grafana 的 APT 仓库源,更新源列表,安装 grafana。
// 添加源
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
// 导入 GPG 密钥
curl https://packages.grafana.com/gpg.key | sudo apt-key add -
// 更新源列表
sudo apt update
// 安装 grafana
sudo apt install grafana
安装完成后,启动 grafana 服务,然后通过浏览器访问本地 3000 端口,登陆 grafana 管理页面(浏览器访问地址 http://localhost:3000 )。
首先需要创建一个数据源,点击「配置数据源」,选择「InfluxDB」作为类型,在「HTTP」中输入「localhost:8086」,在「Database」中输入「nginx_requests」,然后点击「Save & Test」确认能够连接上 influxdb。
3.3 grafana 的面板展示
创建一个面板,单击图表区域右上角的「Edit」,选择「Query」在「FROM」中选择「nginx_requests」,然后按以下图示配置查询。
点击「Apply」,即可实时展示 nginx 请求监控信息。
4. 总结
通过使用以上介绍的工具,我们可以实现 Linux 系统中请求动态信息的实时监控、查询和展示,有助于快速定位问题、调优性能,提高服务质量,提升用户体验。