- Node_exporter
- Prometheus
- Grafana
- Dashboard
Node_exporter是一个二进制的可执行文件,部署在Linux服务器上,可以采集Linux服务器的运行状态数据,如服务器是否可用、文件系统、CPU、内存、网络、磁盘IO等。
下载地址:https://prometheus.io/download/
2.2 数据采集和存储
Prometheus根据配置在prometheus.yml剧本文件中的数据采集URL,定时从被监控服务器拉取监控数据,数据存储在时序数据库(TSDB)里面。Prometheus具有强大的PromQL查询语言。
下载地址:https://prometheus.io/download/
2.3 数据展示
Grafana主要用于Prometheus监控数据的前端展示,需要提前将Pormetheus的地址作为数据源,配置到Grafana平台上。另外,可视化展示还需要在Grafana官网上下载。
下载地址:https://grafana.com/grafana/download
2.4 数据展示模板
Dashboard里面包含了很多用于数据查询的PromQL语句,将Dashboard导入到Grafana以后,即可将查询到的数据进行可视化展示,如Graph、Table等。
下载地址:https://grafana.com/grafana/dashboards
以Linux服务器的监控展示8919为例,点击Download JSON即可。
下载地址:https://grafana.com/grafana/dashboards/8919
### 上传压缩包到服务器的指定目录下,如/monitor # pwd /monitor # ls node_exporter-1.1.2.linux-amd64.tar.gz ### 解压压缩包 # tar -xzf node_exporter-1.1.2.linux-amd64.tar.gz # rm -f node_exporter-1.1.2.linux-amd64.tar.gz # mv node_exporter-1.1.2.linux-amd64 node_exporter # cd node_exporter ### 给主程序授权 # chmod 755 ./node_exporter ### 后台启动node_exporter # ./node_exporter --web.listen-address="192.168.223.203:19100" & # netstat -tnlp| grep 19100 # ps -ef| grep node_exporter| grep -v grep |
测试数据抓取是否成功
方法一:在服务器里面直接用curl命令测试
# curl http://192.168.223.203:19100/metrics |
方法二:本地浏览器访问(注意:端口访问权限)
|
# pwd /monitor # ls prometheus-2.28.1.linux-amd64.tar.gz prometheus-2.28.1.linux-amd64.tar.gz # tar -xzf prometheus-2.28.1.linux-amd64.tar.gz # rm -f prometheus-2.28.1.linux-amd64.tar.gz # mv prometheus-2.28.1.linux-amd64/ prometheus # cd Prometheus ### 启动Pormetheus # ./prometheus --web.listen-address="192.168.223.203:19090" --storage.tsdb.retention=60d --web.enable-lifecycle --config.file="./prometheus.yml" & # netstat -tnlp| grep 19090 |
修改prometheus.yml剧本文件,将node_exporter的metrics地址配置进去(红色部分)
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['192.168.223.203:19090'] - job_name: 192.168.223.203:19100 honor_timestamps: true scrape_interval: 30s scrape_timeout: 15s metrics_path: /metrics scheme: http static_configs: - targets: - 192.168.223.203:19100 labels: server_category: node_exporter system_category: 服务器监控 |
重启Pormetheus进程,即可访问Prometheus监控平台的GUI界面
http://192.168.223.203:19090/targets
点击Endpoint,可以看到每个metrics里面具体的数据采集指标项。如下图所示:
3、Grafana
# pwd /monitor # ls grafana-8.0.5.linux-amd64.tar.gz grafana-8.0.5.linux-amd64.tar.gz # tar -xzf grafana-8.0.5.linux-amd64.tar.gz # rm -f grafana-8.0.5.linux-amd64.tar.gz # mv grafana-8.0.5 grafana # cd grafana/conf # vi default.ini ### 增加http_addr配置,修改http_port为13000或者其他端口 # The ip address to bind to, empty will bind to all interfaces http_addr = 192.168.223.203 # The http port to use http_port = 13000 # cd ../bin # ./grafana-server & |
首次登录。用户名和密码默认都是admin
输入后点击Log in,会提示重新设置密码。输入新密码,点击提交。
点击Add your data source
选择数据源的类型为Prometheus
输入Prometheus的URL地址
到最下面,点击Save & test
点击 Back,可以退回到Data source界面,发现默认的数据源已经配置成功。
点击左侧的四方格,点击Home,即可回到主界面
点击左侧的+号,点击Import,选择dashboard。
点击Upload JSON file(如果PC可以联网,就直接输入8919这个dashboard的ID即可)
在VictoriaMetrics栏选择刚才新建的Prometheus数据源,然后点击import
跳转到监控页面