1. 首页 > Linux教程 > 正文

Linux教程FG621-新型监控工具系列-基础监控工具

本文档风哥主要介绍基础监控工具,包括基础监控工具的概念、类型、优势、架构设计、组件选择、部署、配置、集成等内容,参考Red Hat Enterprise Linux 10官方文档中的System administration章节,适合系统管理员和IT人员在生产环境中使用。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 基础监控工具的概念

基础监控工具是指用于监控系统基础指标的工具,包括CPU、内存、磁盘、网络等系统资源的使用情况,以及系统进程、服务状态等信息的监控。学习交流加群风哥微信: itpux-com

基础监控工具的核心概念:

  • 数据采集:收集系统基础指标
  • 数据存储:存储采集的监控数据
  • 数据可视化:展示监控数据
  • 告警:当监控指标超过阈值时触发告警

1.2 基础监控工具的类型

基础监控工具的类型:

  • 系统级监控工具:如Prometheus、Zabbix、Nagios等
  • 应用级监控工具:如Application Performance Monitoring (APM)工具
  • 网络监控工具:如Network Performance Monitoring (NPM)工具
  • 存储监控工具:如Storage Performance Monitoring (SPM)工具

1.3 基础监控工具的优势

基础监控工具的优势:

  • 实时监控:实时监控系统状态
  • 故障预警:提前发现系统异常
  • 性能优化:分析系统性能瓶颈
  • 资源管理:合理分配系统资源
  • 安全防护:及时发现安全异常
风哥提示:基础监控工具是系统运维的重要组成部分,建议选择功能完善、性能稳定的监控工具,并根据系统的特点进行合理配置。

Part02-生产环境规划与建议

2.1 基础监控工具架构设计

基础监控工具架构设计要点:

# 架构层次
– 数据采集层:收集系统基础指标
– 数据存储层:存储采集的监控数据
– 数据处理层:处理和分析监控数据
– 数据展示层:展示监控数据
– 告警层:触发和处理告警

# 部署模式
– 集中式部署:所有监控组件部署在同一服务器
– 分布式部署:监控组件分布在多个服务器
– 混合式部署:结合集中式和分布式部署

# 高可用性设计
– 集群:部署监控工具的集群
– 负载均衡:使用负载均衡分发监控请求
– 数据备份:定期备份监控数据
– 灾难恢复:制定灾难恢复计划

2.2 基础监控工具组件选择

基础监控工具组件选择要点:

# 监控系统
– Prometheus:开源监控系统,适合容器环境
– Zabbix:企业级监控系统,功能完善
– Nagios:传统监控系统,轻量级
– Datadog:云监控平台,全栈监控

# 数据可视化
– Grafana:开源数据可视化工具,支持多种数据源
– Kibana:ELK stack的可视化组件
– Prometheus UI:Prometheus自带的UI

# 数据采集
– Node Exporter:收集主机指标
– Prometheus Exporter:各种服务的exporter
– Telegraf:数据采集代理

# 告警
– Alertmanager:Prometheus的告警组件
– Zabbix Alerting:Zabbix的告警功能
– Nagios Alerts:Nagios的告警功能

# 存储
– Prometheus TSDB:Prometheus的时序数据库
– InfluxDB:开源时序数据库
– TimescaleDB:基于PostgreSQL的时序数据库

2.3 基础监控工具最佳实践

基础监控工具最佳实践:

  • 合理设置监控指标:选择关键指标进行监控
  • 设置合理的告警阈值:避免误报和漏报
  • 定期备份监控数据:确保数据安全
  • 监控系统自身:确保监控系统的稳定运行
  • 定期检查监控配置:确保监控配置的准确性
生产环境建议:基础监控工具的选择应根据系统的规模、复杂度和需求进行,建议选择开源、可扩展的监控工具,并根据实际情况进行配置和优化。学习交流加群风哥QQ113257174

Part03-生产环境项目实施方案

3.1 基础监控工具部署

3.1.1 部署Prometheus

# 1. 下载Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.40.0/prometheus-2.40.0.linux-amd64.tar.gz

# 2. 解压Prometheus
tar -xzf prometheus-2.40.0.linux-amd64.tar.gz
mv prometheus-2.40.0.linux-amd64 /opt/prometheus

# 3. 创建Prometheus配置文件
cat > /opt/prometheus/prometheus.yml << 'EOF' global: scrape_interval: 15s evaluation_interval: 15s rule_files: # - "first_rules.yml" # - "second_rules.yml" scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "node" static_configs: - targets: ["localhost:9100"] EOF # 4. 创建Prometheus服务 cat > /etc/systemd/system/prometheus.service << 'EOF' [Unit] Description=Prometheus After=network.target [Service] Type=simple ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data Restart=always [Install] WantedBy=multi-user.target EOF # 5. 启动Prometheus systemctl start prometheus systemctl enable prometheus # 6. 验证Prometheus curl http://localhost:9090

3.1.2 部署Grafana

# 1. 添加Grafana存储库
cat > /etc/yum.repos.d/grafana.repo << 'EOF' [grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key EOF # 2. 安装Grafana dnf install -y grafana # 3. 启动Grafana systemctl start grafana-server systemctl enable grafana-server # 4. 验证Grafana curl http://localhost:3000

3.1.3 部署Node Exporter

# 1. 下载Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

# 2. 解压Node Exporter
tar -xzf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin/

# 3. 创建Node Exporter服务
cat > /etc/systemd/system/node_exporter.service << 'EOF' [Unit] Description=Node Exporter After=network.target [Service] Type=simple ExecStart=/usr/local/bin/node_exporter Restart=always [Install] WantedBy=multi-user.target EOF # 4. 启动Node Exporter systemctl start node_exporter systemctl enable node_exporter # 5. 验证Node Exporter curl http://localhost:9100/metrics

3.2 基础监控工具配置

3.2.1 配置Prometheus

# 1. 编辑Prometheus配置文件
vim /opt/prometheus/prometheus.yml

# 2. 添加更多监控目标
scrape_configs:
– job_name: “prometheus”
static_configs:
– targets: [“localhost:9090”]

– job_name: “node”
static_configs:
– targets: [“localhost:9100”, “192.168.1.10:9100”, “192.168.1.11:9100”]

– job_name: “docker”
static_configs:
– targets: [“localhost:9323”]

# 3. 重启Prometheus
systemctl restart prometheus

# 4. 验证配置
curl http://localhost:9090/config

3.2.2 配置Grafana

# 1. 登录Grafana
# 浏览器访问 http://localhost:3000
# 默认用户名和密码:admin/admin

# 2. 添加Prometheus数据源
# 配置 > 数据源 > 添加数据源 > Prometheus
# URL: http://localhost:9090
# 保存并测试

# 3. 导入仪表盘
# 仪表盘 > 导入 > 输入仪表盘ID: 1860 (Node Exporter Full)
# 选择Prometheus数据源 > 导入

# 4. 配置告警
# 警报 > 通知通道 > 添加通道
# 类型:Email
# 配置邮件服务器
# 保存

3.3 基础监控工具集成

3.3.1 集成Alertmanager

# 1. 下载Alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linux-amd64.tar.gz

# 2. 解压Alertmanager
tar -xzf alertmanager-0.24.0.linux-amd64.tar.gz
mv alertmanager-0.24.0.linux-amd64 /opt/alertmanager

# 3. 创建Alertmanager配置文件
cat > /opt/alertmanager/alertmanager.yml << 'EOF' global: resolve_timeout: 5m route: group_by: ['alertname'] group_wait: 30s group_interval: 5m repeat_interval: 1h receiver: 'email' receivers: - name: 'email' email_configs: - to: 'admin@example.com' send_resolved: true inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'dev', 'instance'] EOF # 4. 创建Alertmanager服务 cat > /etc/systemd/system/alertmanager.service << 'EOF' [Unit] Description=Alertmanager After=network.target [Service] Type=simple ExecStart=/opt/alertmanager/alertmanager --config.file=/opt/alertmanager/alertmanager.yml Restart=always [Install] WantedBy=multi-user.target EOF # 5. 启动Alertmanager systemctl start alertmanager systemctl enable alertmanager # 6. 配置Prometheus使用Alertmanager vim /opt/prometheus/prometheus.yml # 添加Alertmanager配置 alerting: alertmanagers: - static_configs: - targets: ['localhost:9093'] rule_files: - "alerts.yml" # 7. 创建告警规则 cat > /opt/prometheus/alerts.yml << 'EOF' groups: - name: node rules: - alert: HighCPUUsage expr: (100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: “High CPU Usage”
description: “CPU usage is above 80% for 5 minutes”

– alert: HighMemoryUsage
expr: (1 – (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 80
for: 5m
labels:
severity: warning
annotations:
summary: “High Memory Usage”
description: “Memory usage is above 80% for 5 minutes”
EOF

# 8. 重启Prometheus
systemctl restart prometheus

风哥提示:基础监控工具的集成需要考虑系统的复杂度和需求,建议根据实际情况选择合适的集成方案,并确保监控系统的稳定性和可靠性。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 Prometheus监控部署

某企业通过部署Prometheus监控系统,实现了对服务器、容器和应用的全面监控。

# 1. 部署架构
# 前端:Grafana
# 后端:Prometheus
# 数据采集:Node Exporter、Docker Exporter
# 告警:Alertmanager

# 2. 实施步骤
# 步骤1:部署Prometheus
# 步骤2:部署Grafana
# 步骤3:部署Node Exporter
# 步骤4:部署Docker Exporter
# 步骤5:部署Alertmanager
# 步骤6:配置监控规则
# 步骤7:测试与验证

# 3. 应用效果
# 实现了对服务器的实时监控
# 实现了对容器的监控
# 实现了对应用的监控
# 实现了告警功能

# 部署脚本
cat > prometheus-deployment.sh << 'EOF' #!/bin/bash # daily_check.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: `http://www.fgedu.net.cn` # 部署Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.40.0/prometheus-2.40.0.linux-amd64.tar.gz tar -xzf prometheus-2.40.0.linux-amd64.tar.gz mv prometheus-2.40.0.linux-amd64 /opt/prometheus # 配置Prometheus cat > /opt/prometheus/prometheus.yml << 'EOF' global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: ['localhost:9093'] rule_files: - "alerts.yml" scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "node" static_configs: - targets: ["localhost:9100"] - job_name: "docker" static_configs: - targets: ["localhost:9323"] EOF # 创建Prometheus服务 cat > /etc/systemd/system/prometheus.service << 'EOF' [Unit] Description=Prometheus After=network.target [Service] Type=simple ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data Restart=always [Install] WantedBy=multi-user.target EOF # 部署Node Exporter wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar -xzf node_exporter-1.3.1.linux-amd64.tar.gz mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin/ # 创建Node Exporter服务 cat > /etc/systemd/system/node_exporter.service << 'EOF' [Unit] Description=Node Exporter After=network.target [Service] Type=simple ExecStart=/usr/local/bin/node_exporter Restart=always [Install] WantedBy=multi-user.target EOF # 部署Alertmanager wget https://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linux-amd64.tar.gz tar -xzf alertmanager-0.24.0.linux-amd64.tar.gz mv alertmanager-0.24.0.linux-amd64 /opt/alertmanager # 配置Alertmanager cat > /opt/alertmanager/alertmanager.yml << 'EOF' global: resolve_timeout: 5m route: group_by: ['alertname'] group_wait: 30s group_interval: 5m repeat_interval: 1h receiver: 'email' receivers: - name: 'email' email_configs: - to: 'admin@example.com' send_resolved: true inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'dev', 'instance'] EOF # 创建Alertmanager服务 cat > /etc/systemd/system/alertmanager.service << 'EOF' [Unit] Description=Alertmanager After=network.target [Service] Type=simple ExecStart=/opt/alertmanager/alertmanager --config.file=/opt/alertmanager/alertmanager.yml Restart=always [Install] WantedBy=multi-user.target EOF # 部署Grafana cat > /etc/yum.repos.d/grafana.repo << 'EOF' [grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key EOF dnf install -y grafana # 启动服务 systemctl start prometheus node_exporter alertmanager grafana-server systemctl enable prometheus node_exporter alertmanager grafana-server EOF # 运行部署脚本 bash prometheus-deployment.sh

4.2 Grafana数据可视化部署

某企业通过部署Grafana,实现了对监控数据的可视化展示。

# 1. 部署架构
# 数据源:Prometheus
# 可视化工具:Grafana
# 告警:Alertmanager

# 2. 实施步骤
# 步骤1:部署Grafana
# 步骤2:配置Prometheus数据源
# 步骤3:导入仪表盘
# 步骤4:配置告警
# 步骤5:测试与验证

# 3. 应用效果
# 实现了监控数据的可视化展示
# 实现了告警功能
# 提高了系统运维效率

# 部署脚本
cat > grafana-deployment.sh << 'EOF' #!/bin/bash # 部署Grafana cat > /etc/yum.repos.d/grafana.repo << 'EOF' [grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key EOF dnf install -y grafana # 启动Grafana systemctl start grafana-server systemctl enable grafana-server # 配置Grafana # 浏览器访问 http://localhost:3000 # 默认用户名和密码:admin/admin # 配置Prometheus数据源 # 导入仪表盘 EOF # 运行部署脚本 bash grafana-deployment.sh

4.3 Node Exporter部署

某企业通过部署Node Exporter,实现了对服务器基础指标的采集。

# 1. 部署架构
# 数据采集:Node Exporter
# 数据存储:Prometheus
# 数据可视化:Grafana

# 2. 实施步骤
# 步骤1:部署Node Exporter
# 步骤2:配置Prometheus
# 步骤3:配置Grafana
# 步骤4:测试与验证

# 3. 应用效果
# 实现了对服务器基础指标的采集
# 实现了对服务器的实时监控
# 提高了系统运维效率

# 部署脚本
cat > node-exporter-deployment.sh << 'EOF' #!/bin/bash # 部署Node Exporter wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar -xzf node_exporter-1.3.1.linux-amd64.tar.gz mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin/ # 创建Node Exporter服务 cat > /etc/systemd/system/node_exporter.service << 'EOF' [Unit] Description=Node Exporter After=network.target [Service] Type=simple ExecStart=/usr/local/bin/node_exporter Restart=always [Install] WantedBy=multi-user.target EOF # 启动Node Exporter systemctl start node_exporter systemctl enable node_exporter # 配置Prometheus # 添加Node Exporter到Prometheus配置 EOF # 运行部署脚本 bash node-exporter-deployment.sh

生产环境建议:基础监控工具的部署需要考虑系统的规模和复杂度,建议根据实际情况选择合适的部署方案,并确保监控系统的稳定性和可靠性。from Linux:www.itpux.com

Part05-风哥经验总结与分享

5.1 基础监控工具使用经验

基础监控工具使用经验:

  • 选择合适的监控工具:根据系统的规模和需求选择合适的监控工具
  • 合理设置监控指标:选择关键指标进行监控,避免监控过多指标
  • 设置合理的告警阈值:避免误报和漏报,根据系统的特点设置合理的告警阈值
  • 定期检查监控配置:确保监控配置的准确性和有效性
  • 备份监控数据:定期备份监控数据,确保数据安全

5.2 基础监控工具故障排查

基础监控工具故障排查:

  • 检查服务状态:使用systemctl status命令检查监控服务的状态
  • 检查日志:查看监控服务的日志,了解故障原因
  • 检查网络连接:确保监控服务之间的网络连接正常
  • 检查配置文件:确保监控配置文件的正确性
  • 检查资源使用:确保监控服务器的资源使用正常

5.3 基础监控工具的未来发展

基础监控工具的未来发展趋势:

  • 云原生监控:适应云原生环境的监控需求
  • AI集成:利用AI技术提高监控的智能化水平
  • 边缘计算监控:支持边缘计算场景的监控需求
  • 全栈监控:实现从基础设施到应用的全栈监控
  • 自动化运维:与自动化运维工具集成,实现故障自动处理
风哥提示:基础监控工具是系统运维的重要组成部分,建议关注监控工具的最新发展趋势,及时更新和优化监控系统,提高系统运维效率和可靠性。

持续改进:基础监控工具的使用是一个持续优化的过程,需要根据系统的变化和需求的变化不断调整和改进。建议建立监控评估机制,定期评估监控系统的有效性和可靠性,确保监控系统能够满足系统运维的需求。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息