Prometheus安装及使用(二进制方式)
1.Prometheus是什么
Prometheus是一个开源系统监控和警报工具,最初由 SoundCloud创建。自 2012 年以来,许多公司和组织都采用了 Prometheus,该项目拥有非常活跃的开发者和用户社区。
它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年作为继Kubernetes之后的第二个托管项目加入了云原生计算基金会(CNCF)。
2.Prometheus官方网址
Linux主机操作系统为:CentOS7u9
序号 | 主机名 | 主机IP地址 | 角色 | 硬件要求 |
1 | prometheus-server | 192.168.10.11/24 | server | 2c2G |
2 | prometheus-agent | 192.168.10.12/24 | agent | 2c2G |
3 | grafana | 192.168.10.13/24 | grafana | 2c2G |
4 | alertmanager | 192.168.10.14/24 | alertmanager | 2c2G |
关闭各主机防火墙:
# systemctl disable firewalld
# systemctl stop firewalld
# setenforce 0
# vim /etc/sysconfig/selinux
SELINUX=disabled
3.1 Prometheus server获取
[root@prometheus-server ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.37.8/prometheus-2.37.8.linux-amd64.tar.gz
或者拖包
3.2 Prometheus安装
[root@prometheus-server ~]# tar xf prometheus-2.37.8.linux-amd64.tar.gz
[root@prometheus-server ~]# mv prometheus-2.37.8.linux-amd64 /usr/local/prometheus
3.3 Prometheus启动
3.3.1 修改Prometheus配置文件
[root@prometheus-server ~]# cd /usr/local/prometheus/
[root@prometheus-server prometheus]# ls
[root@prometheus-server prometheus]# vim prometheus.yml
。。。
static_configs:
- targets: ["192.168.10.11:9090"] 把localhost修改为192.168.10.11
。。。
3.3.2 启动Prometheus
[root@prometheus-server prometheus]# nohup ./prometheus --config.file=prometheus.yml &
[root@prometheus-server prometheus]# ps aux | grep Prometheus
[root@prometheus-server prometheus]# ss -anput | grep ":9090"
可以把Prometheus托管给systemd,如下所示:
[root@prometheus-server prometheus]# pkill prometheus
注册为系统服务
[root@prometheus-server prometheus]# cat > /usr/lib/systemd/system/prometheus.service << EOF
[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
[Install]
WantedBy=multi-user.target
[Unit]
Description=prometheus
After=network.target
EOF
重载/开机自启/查看状态/启动
[root@prometheus-server prometheus]# systemctl daemon-reload
[root@prometheus-server prometheus]# systemctl start prometheus
[root@prometheus-server prometheus]# systemctl enable prometheus
[root@prometheus-server prometheus]# systemctl status prometheus
[root@master01 prometheus]# yum -y install lsof
[root@prometheus-server prometheus]# lsof -i:9090
[root@prometheus-server prometheus]# ps -ef | grep Prometheus
可以通过运行Prometheus server节点IP+9090端口对Prometheus进行访问。
5.1 对Prometheus server主机监控(先监控server自身)
5.1.1 下载node_exporter
[root@prometheus-server prometheus]# cd ~
[root@prometheus-server ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
拖包安装
5.1.2 安装node_exporter
[root@prometheus-server ~]# tar xf node_exporter-1.6.0.linux-amd64.tar.gz
[root@prometheus-server ~]# ls
node_exporter-1.6.0.linux-amd64
[root@prometheus-server ~]# mv node_exporter-1.6.0.linux-amd64 /usr/local/node_exporter
[root@prometheus-server ~]# cd /usr/local/node_exporter/
[root@prometheus-server node_exporter]# ls
5.1.3 启动node_exporter
[root@prometheus-server node_exporter]# nohup ./node_exporter &
[root@prometheus-server node_exporter]# ss -anput | grep "node_exporter"
[root@prometheus-server node_exporter]# ss -anput | grep ":9100"
可以注册为systemd管理的系统服务
[root@prometheus-server node_exporter]# pkill node_exporter
注册为系统服务
[root@prometheus-server node_exporter]# cat > /usr/lib/systemd/system/node_exporter.service << EOF
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
[Unit]
Description=node_exporter
After=network.target
EOF
重载/开机自启/查看状态/启动
[root@prometheus-server node_exporter]# systemctl daemon-reload
[root@prometheus-server node_exporter]# systemctl enable node_exporter
[root@prometheus-server node_exporter]# systemctl start node_exporter
[root@prometheus-server node_exporter]# systemctl status node_exporter
5.1.4 修改Prometheus Server配置文件添加node节点
[root@prometheus-server node_exporter]# cd /usr/local/prometheus/
[root@prometheus-server prometheus]# ls
[root@prometheus-server prometheus]# vim prometheus.yml
[root@prometheus-server prometheus]# cat prometheus.yml
。。。
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.10.14:9090"]
末尾添加node节点监控配置
- job_name: "prometheus-server"
static_configs:
- targets: ["192.168.10.11:9100"]
[root@prometheus-server prometheus]# systemctl restart Prometheus
5.2 对其它主机进行监控(以192.168.10.12为例)
5.1.2 安装node_exporter
[root@prometheus-agent ~]# tar xf node_exporter-1.6.0.linux-amd64.tar.gz
[root@prometheus-agent ~]# ls
node_exporter-1.6.0.linux-amd64
[root@prometheus-agent ~]# mv node_exporter-1.6.0.linux-amd64 /usr/local/node_exporter
[root@prometheus-agent ~]# cd /usr/local/node_exporter/
[root@prometheus-agent node_exporter]# ls
5.1.3 启动node_exporter
[root@prometheus-agent node_exporter]# nohup ./node_exporter &
[root@prometheus-agent node_exporter]# ss -anput | grep "node_exporter"
也可以注册为systemd服务,便于管理
[root@prometheus-agent node_exporter]# pkill node_exporter
注册为系统服务
[root@prometheus-agent node_exporter]# cat > /usr/lib/systemd/system/node_exporter.service << EOF
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
[Unit]
Description=node_exporter
After=network.target
EOF
重载/开机自启/查看状态/启动
[root@prometheus-agent node_exporter]# systemctl daemon-reload
[root@prometheus-agent node_exporter]# systemctl enable node_exporter
[root@prometheus-agent node_exporter]# systemctl start node_exporter
[root@prometheus-agent node_exporter]# systemctl status node_exporter
5.1.4 修改Prometheus Server配置文件添加node节点 192.168.10.11
[root@prometheus-server node_exporter]# cd /usr/local/prometheus/
[root@prometheus-server prometheus]# ls
[root@prometheus-server prometheus]# vim prometheus.yml
。。。
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.10.14:9090"]
添加node节点监控配置
- job_name: "prometheus-server"
static_configs:
- targets: ["192.168.10.14:9100"]
末尾添加node节点监控配置
- job_name: "prometheus-agent"
static_configs:
- targets: ["192.168.10.12:9100"]
[root@prometheus-server prometheus]# systemctl restart prometheus