目标
在AWS EC2机器上面,安装Prometheus服务器端。
前提
这里假设全新的EC2机器已经建立好了。这里是第一次登录改EC2后,做的第一件事情就是更新系统:
sudo yum update -y
安装思路
创建一个prometheus的非登录用户,准备更好prometheus相关配置文件,并配置好Sys V服务文件。启动Prometheus即可,启动后,验证对自身监控是否成功。
步骤
需要的策略权限
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeAvailabilityZones"
],
"Resource": "*"
}
]
}
安装Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.37.1/prometheus-2.37.1.linux-amd64.tar.gz
tar xvfz prometheus-2.37.1.linux-amd64.tar.gz
cd prometheus-2.37.1.linux-amd64/
sudo cp prometheus /usr/local/bin/
sudo cp promtool /usr/local/bin/
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo cp -r ./consoles /etc/prometheus/
sudo cp -r ./console_libraries/ /etc/prometheus/
prometheus.yml
sudo cp prometheus.yml /etc/prometheus/
cat /etc/prometheus/prometheus.yml
内容如下:
# 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: ["localhost:9090"]
prometheus.service
sudo vim /etc/systemd/system/prometheus.service
内容如下:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
prometheus用户
sudo useradd --system --no-create-home --shell /sbin/nologin --comment "prometheus user" --user-group prometheus
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
Sys V
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
sudo systemctl status prometheus
启动状态如下:
安全组
放开9090端口
查看9090端口
总结
到这里Prometheus服务器端就安装完了。接下了,再开一台EC2机器,模拟Prometheus的Node端。