十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家分享的是有关node_exporter的使用方法的内容。小编觉得挺实用的,因此分享给大家学习。如下资料是关于node_exporter的内容。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网页空间、营销软件、网站建设、洪湖网站维护、网站推广。
下载软件包:
1.下载安装node_export
mkdir -p /usr/local/prometheus/exporter/node cd /usr/local/prometheus/exporter/node curl -s -OL https://github.com/prometheus/node_exporter/releases/download/v0.18.0/node_exporter-$Version.linux-amd64.tar.gz tar xf node_exporter-0.18.0.linux-amd64.tar.gz cp -a node_exporter-0.18.0.linux-amd64/node_exporter /usr/local/bin/
2.注册系统服务
cat > /usr/lib/systemd/system/node-exporter.service <<-'EOF' [Unit] Description=This is prometheus node exporter After=docker.service [Service] Type=simple ExecStart=/usr/local/bin/node_exporter ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF
3.设置开机自启,启动服务
systemctl daemon-reload && systemctl enable node-exporter.service && systemctl start node-exporter.service
node_exporter 他的本质就是监控主机系统,所以我们不建议将其部署为 docker 容器,因为他需要访问主机系统.
- job_name: node metrics_path: /metrics static_configs: - targets: ['192.168.111.65:9100']
重启 prometheus,查看状态
基于发现配置prometheus
在prometheus 主配置文件配置定义子配置文件路径
- job_name: 'node' static_configs: file_sd_configs: - files: - metrics/node_exporter*.yaml refresh_interval: 2m
在prometheus安装目录下的targets目录下(在主配置文件定义metrics目录不存在则手动创建)创建文件 node_exporter65.yaml
- targets: ['192.168.111.65:9100'] # 如果有多个node_exporter,配置到[]中,隔开添加不需要重启服务,服务自动发现node_exporter客户端 labels: app: node-exporter job: node
图表编号为8919
https://grafana.com/grafana/dashboards/8919
然后可以看到如下图表
开启alertmanager配置告警规则
prometheus 主配置文件配置定义子配置文件路径
rule_files: - "rules/*.yml"
prometheus 告警规则
在prometheus安装目录下的定义的rules目录下(如果rules目录不存在)创建文件 alarm_rule.yml
groups: - name: hostStatsAlert rules: - alert: hostCpuUsageAlert expr: (1- avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[30m])))*100>85 for: 1m labels: level: disaster #定义一个等级标签,用于altermanager 发送消息 annotations: summary: "实例 {{ $labels.instance }} CPU使用率过高" description: "{{ $labels.instance }} CPU 使用率大于 85% (当前值为: {{ $value }})" - alert: hostMemUsageAlert expr: (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes)))* 100>85 for: 1m labels: level: disaster annotations: summary: "实例 {{ $labels.instance }} 内存使用率过高" description: "{{ $labels.instance }} 内存使用率大于 85% (当前的值: {{ $value }})" - alert: hostLoad expr: sum(node_load15) >= sum(count(node_cpu_seconds_total{mode='system'}) by (cpu)) and node_load1 > node_load5 and node_load5 > node_load15 for: 1m labels: level: disaster annotations: summary: "实例 {{ $labels.instance }} 15 分钟负载过高" description: "{{ $labels.instance }} 15 分钟负载大于其 cpu 核心数 (当前的值: {{ $value }})" - alert: hostUp expr: up{job="node"} == 0 for: 1m labels: level: disaster annotations: summary: "实例 {{ $labels.instance }} 不可达" description: "{{ $labels.instance }} 实例不可达,请尽快解决"
1.下载安装alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz tar -xf alertmanager-0.21.0.linux-amd64.tar.gz mv alertmanager-0.21.0.linux-amd64 /usr/local/alertmanager
2.注册系统服务
cat > /usr/lib/systemd/system/alertmanager.service <<-'EOF' [Unit] Description=This is alertmanager After=network.target [Service] Type=simple ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml --cluster.advertise-address=0.0.0.0:9093 Restart=on-failure [Install] WantedBy=multi-user.target EOF
3.设置开机自启,启动服务
systemctl daemon-reload && systemctl enable alertmanager.service && systemctl start alertmanager.service
alertmanager 基于邮件报警配置
alertmanager 主配置文件配置
global: smtp_smarthost: 'smtp.qq.com:465' smtp_from: '88888888@qq.com' # 告警发送到的邮箱 smtp_auth_username: '88888888@qq.com' smtp_auth_password: 'pqrbkxvnpogxbobw' # 邮箱开启SMTP/pop3后的密码 smtp_require_tls: falseroute: group_by: ["instance"] group_wait: 30s group_interval: 5m repeat_interval: 2h receiver: mail receivers: - name: 'mail' email_configs: - to: '88888888@qq.com' send_resolved: False
看完这篇文章,你们学会node_exporter的使用方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!