Contents
centos7安装prometheus+grafana
环境
环境centos7
官网下载地址 https://prometheus.io/download/
安装启动
下载安装包
[root@k8s-master01 ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.45.5/prometheus-2.45.5.linux-amd64.tar.gz
解压
[root@k8s-master01 software]# tar -zxf prometheus-2.45.5.linux-amd64.tar.gz -C /usr/local/
创建软链接
[root@k8s-master01 software]# ln -s /usr/local/prometheus-2.45.5.linux-amd64/ /usr/local/prometheus
创建服务
cat > /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus 监控服务
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
# 2. EnvironmentFile=-/etc/default/prometheus
# 3. 下面的内容是启动命令和启动参数,是一行
ExecStart=//usr/local/prometheus/prometheus --storage.tsdb.path=/usr/local/prometheus/data --web.enable-lifecycle --web.read-timeout=5m --storage.tsdb.retention=15d --web.max-connections=512 --query.timeout=2m --query.max-concurrency=20 --config.file=/usr/local/prometheus/prometheus.yml
KillSignal=SIGQUIT
Restart=always
RestartPreventExitStatus=1 6 SIGABRT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
WantedBy=multi-user.target
EOF
启动服务并设置自启
systemctl daemon-reload
systemctl enable –now prometheus
systemctl status prometheus
默认监听端口是9090
ss -ntal |grep 9090
添加环境变量
[root@k8s-master01 software]# ln -s /usr/local/prometheus/prometheus /usr/local/bin/
bash 刷新环境变量
查看启动参数
prometheus –help
--web.listen-address="0.0.0.0:9090"
配置监听地址和端口
--config.file=/etc/prometheus/prometheus.yml
指定配置文件
--storage.tsdb.path=/path/to/data
指定数据保存的目录,最后一级的目录(data)会自动创建
--web.enable-lifecycle
热加载配置,就是修改配置文件后,重新加载生效,而无需重启服务。
--web.read-timeout=5m
请求连接持续等待时长
--web.max-connections=512
最大并发连接数
--storage.tsdb.retention=15d
采集的监控数据保留在内存或者磁盘中的最长时间
15-30天为宜
--query.timeout=2m
单次查询等待时长,超时中断本次查询
--query.max-concurrency=20
接受的最大并发查询数
配置文件
# 1 全局配置
global:
scrape_interval: 15s # 将抓取间隔时间设置为每 15 秒一次。默认值为每1分钟一次。
evaluation_interval: 15s # 规则重启评估的间隔时间设置为每隔15秒评一次。默认值为每1分钟一次。
# scrape_timeout is set to the global default (10s).
# 2 告警管理器配置
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
#~alertmanager的IP或者主机名:9093
# 3 告警规则配置,从哪里加载告警规则
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
# 4 配置被监控对象
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"]
rule_files:告警规则配置
可以指定一个具体的文件,或者使用通配符匹配的文件路径,作为加载告警规则的路径。通常会用不同的目录名称区分不同的监控对象类型。
Prometheus第一次启动加载后评估一次规则,之后每隔evaluation interval指定的间隔时间对规则进行一次评估。
使用一个一个的Job方式进行管理,Job使用scrape_configs下面的job_name指定一个Job名称进行配置。会以标签job_name=
个指标数据中。
通常通过static configs配置项下的targets中的列表,称为静态文件的方式发现被监控对象。
labels可以配置向抓取到的每条指标数据中添加的自定义的标签。
对被监控对象抓取指标时,默认使用htp协议,URL使用metrics’
promtool检查配置文件
[root@k8s-master01 prometheus]# /usr/local/prometheus/promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
分离目标配置,单独成为一个文件,再设定的时间动态加载到配置文件中
scrape_configs:
# Prometheus 自己
- job_name: "prometheus"
file_sd_config:
- files:
- /path/to/*sd.yml
./path/to/*sd.yml
- targets:
- "localhost:9090"
web使用
查看指标有哪些
http://192.168.126.21:9090/metrics
当Prometheus抓取目标时,它会自动将一些标签附加到抓取的指标数据中,用于识别抓取的目标。
这些自动添加的标签是:
– job:配置文件中给被监控对象已配置作业名称。
– instance:配置文件中target列表中的
对于抓取的每个实例,Prometheus会添加如下的指标数据:
– up{job=”
为1,抓取失败则为0。对于实例可用性的监控非常有用
– scrape_duration_seconds{job=”
标的的特续时间,就是响应时间。
– scrape_samples_scraped{job=”
露出的指标总个数。
node-exporter监控Linux服务器
https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
[root@k8s-worker02 tmp]# tar -zxf node_exporter-1.8.0.linux-amd64.tar.gz -C /usr/local/
[root@k8s-worker02 tmp]# cd /usr/local/
[root@k8s-worker02 local]# ln -s node_exporter-1.8.0.linux-amd64/ node_exporter
安装node-exporter服务
cat > /etc/systemd/system/node-exporter.service <<EOF
[Unit]
Description=The node-exporter 监控程序
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
KillSignal=SIGQUIT
Restart=always
RestartPreventExitStatus=1 6 SIGABRT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
WantedBy=multi-user.target
EOF
程序启动参数
– –web.11sten-address=:9111指定监听端口为任意主机地址的9111端口
– –collector.textfile.directory=/apps/exporterData指定可以从目录
/apps/exporterData中读取通过其他脚本程序获取的监控数据
– -collector.filesystem.mount-points-exclude=正则表达式不监控正则表达式中的挂载,点。
启动程序并设置自启
systemctl daemon-reload
systemctl enable --now node-exporter
默认监听9100
修改Prometheus的配置文件
按job分组,21,22是一组,23是单独的一组
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","192.168.126.22:9100"]
- job_name: "shagnhai"
static_configs:
- targets:
- 192.168.126.23:9100
配置好了23,22还没有配置,所以是down
Grafana-部署数据可视化
Grafana安装
yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.3-1.x86_64.rpm
速断慢的话下载下来再安装
yum install -y grafana-enterprise-10.0.3-1.x86_64.rpm
#启动并设置开机自启
systemctl enable --now grafana-server
### Grafana配置
默认配置文件位置,不建议修改
/usr/share/grafana/conf/defaults.ini
自定义配置文件位置
/etc/grafana/grafana.ini
#表示注释
;表示注释选项
数据:var/lib/grafana/
日志:var/log/grafana//
默认端口是3000
用户名密码都是admin,输入后再次设置密码
Grafana配置中文
配置中文界面,编辑配置文件,添加默认语言为中文
;default_language = en-US
# 设置默认语言为中文
default_language = zh-Hans
vim /etc/grafana/grafana.ini
systemctl restart grafana-server.service
Grafana添加prometheus数据源
添加数据源,这变添加Prometheus
仪表盘需要导入展示模板,可以到官方找和自定义,根据不同数据,定义不同的展示方式
官网查找 https://grafana.com/grafana/dashboards/
导入模板有三种方法,分别是导入json文件,导入json内容,输入模板编号(需要联网)
输入16098,点击load即可
、