grafana
下载
https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1
下载Standalone Linux Binaries(64 Bit)
wget下载
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.1.5.linux-amd64.tar.gz
tar解压
tar -zxvf grafana-enterprise-8.1.5.linux-amd64.tar.gz
移动到自己想要存放的路径
mkdir -p /data/server
mv grafana-enterprise-8.1.5.linux-amd64 /data/server/
启动
修改端口
默认端口3000
vi /data/server/grafana/conf/defaults.ini
找到http_port,修改为自己想要暴露的端口,例如:
http_port = 8000
nohup启动
nohup /data/server/grafana/bin/grafana-server>/dev/null 2>&1 &
防火墙放行端口
系统若开启了防火墙或者iptables,注意放行端口
firewalld
检查是否开启了防火墙
systemctl status firewalld
下图是开启了防火墙
放行端口
firewall-cmd --add-port=8000/tcp --permanent
重新载入
firewall-cmd --reload
查看端口是否放行成功
firewall-cmd --query-port=8000/tcp
iptables
检查是否开启了 iptables
systemctl status iptables
放行端口
iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
查看端口是否放行成功
iptables -nL
初始化
查看机器IPip a
浏览器访问 http://{{机器IP}}:80000
系统默认用户名和密码为admin/admin,第一次登陆系统会要求修改密码
登录成功后,界面如下
prometheus
下载
https://prometheus.io/download
wget下载
wget https://github.com/prometheus/prometheus/releases/download/v2.30.1/prometheus-2.30.1.linux-amd64.tar.gz
tar解压
tar -zxvf prometheus-2.30.1.linux-amd64.tar.gz
移动到自己想要存放的路径
mkdir -p /data/server
mv prometheus-2.30.1.linux-amd64 /data/server/prometheus
启动
nohup启动
不指定端口,则使用默认端口9090
nohup /data/server/prometheus --config.file="prometheus.yml">/dev/null 2>&1 &
浏览器访问 http://{{机器IP}}:9090
指定启动端口8090
nohup /data/server/prometheus --config.file="prometheus.yml" --web.listen-address="0.0.0.0:8090">/dev/null 2>&1 &
浏览器访问 http://{{机器IP}}:8090
界面如下
运行数据采集工具
node_exporter
在需要监控上安装 node_exporter,并启动node_exporter
下载
https://prometheus.io/download/
wget下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar解压
tar -zxvf node_exporter-1.2.2.linux-amd64.tar.gz
移动到自己想要存放的路径
mkdir -p /data/server
mv node_exporter-1.2.2.linux-amd64 /data/server/node_exporter
启动
不指定端口启动,则使用默认端口9100
nohup /data/server/node_exporter/node_exporter /dev/null 2>&1 &
prometheus添加配置
在prometheus启动的机器上修改配置文件
vi /data/server/prometheus/prometheus.yml
- job_name: 'linux'
static_configs:
- targets: ["机器IP:端口"]
机器IP:修改成需要监控的机器的IP
端口:修改为node_exporter使用端口
修改后重启prometheus
访问prometheus的控制面板选择 Status > Targets
prometheus 添加告警
在prometheus安装的机器上,安装alertmanager
下载
https://prometheus.io/download/
wget下载
wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
tar解压
tar -zxvf alertmanager-0.23.0.linux-amd64.tar.gz
移动到自己想要存放的路径
mkdir -p /data/server
mv alertmanager-0.23.0.linux-amd64 /data/server/alertmanager
启动
修改配置
vi /data/server/alertmanager/alertmanager.yml 发送邮件告警设置
global:
resolve_timeout: 5m
smtp_from: 'xxx@163.com'
smtp_smarthost: 'smtp.163.com:465'
smtp_auth_username: 'xxx@163.com'
smtp_auth_password: 'xxx'
smtp_require_tls: false
smtp_hello: '163.com'
route:
group_by: ['alertname']
group_wait: 5s
group_interval: 5s
repeat_interval: 5m
receiver: 'email'
receivers:
- name: 'email'
email_configs:
- to: 'xxx@163.com'
send_resolved: true
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
不指定端口,则默认使用端口9093
nohup ./alertmanager --config.file="alertmanager.yml"
prometheus添加配置
vi /data/server/prometheus/prometheus.yml
alerting:
alertmanagers:
- static_configs:
- targets:
- 机器IP:端口
机器IP:修改为机器的IP
端口:修改为alertmanager使用端口
重启prometheus
添加node_rules告警规则
vi /data/server/prometheus/prometheus.yml
rule_files:
- "/data/server/alertmanager/node_rules.yml"
vi /data/server/alertmanager/node_rules.yml
groups:
- name: node
rules:
- alert: "node server status"
expr: up{job="linux"} == 0
for: 15s
annotations:
summary: "机器{{ $labels.instance }}连接失败"
description: "{{ $labels.instance }}宕机!"
- name: memory-rule
rules:
- alert: "node 内存报警"
expr: 100 - ((node_memory_MemAvailable_bytes * 100) / node_memory_MemTotal_bytes) > 90
for: 15s
labels:
severity: warning
annotations:
summary: "机器:{{$labels.instance}}内存使用率超过90%了"
description: "内存当前使用率:{{ $value }}%"
value: "{{ $value }}"
重启prometheus
常用告警规则
内存使用
100 - ((node_memory_MemAvailable_bytes * 100) / node_memory_MemTotal_bytes)
磁盘使用
(node_filesystem_size_bytes{mountpoint="/data"}-node_filesystem_free_bytes{mountpoint="/data"})/node_filesystem_size_bytes{mountpoint="/data"} * 100
cpu使用
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100)
测试告警
运行node_exporter机器,停止node_exporter,然后等待一会就可以收到告警邮件
再次运行node_exporter,则告警恢复
grafana添加prometheus数据源
填写prometheus看板的地址,点击 save & test
grafana添加node监控看板
点击 manage import
模板填写 8919
Name 可以填写自定义名称 VictoriaMetrics 选择Prometheus的数据源