Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。
Centos7安装配置Prometheus
准备2台虚拟机
Centos7.X 内核:5.9 禁用selinux ,关闭防火墙
IP:Prometheus:192.168.245.128/24
Node_exporter:192.168.245.130/24
下载地址: https://prometheus.io/download/
Prometheus 版本:2.22.2 (prometheus-2.22.2.linux-amd64.tar.gz)
node_exporter 版本:1.0.1 (node_exporter-1.0.1.linux-amd64.tar.gz)
安装配置Prometheus
]# hostnamectl set-hostname prometheus #设置服务器名字
]# mdkir /opt/src # 将Prometheus 安装包上传到此目录
]# useradd --no-create-home --shell /bin/false Prometheus # 添加用户prometheus
]# tar -xf prometheus-2.22.2.linux-amd64.tar.gz -C /opt # 将安装包解压到 opt下
]# mv prometheus-2.22.2.linux-amd64/ prometheus-2.22.2 # 重命名
]# ln -sf /opt/prometheus-2.22.2/ /opt/prometheus # 做软连接
]# chown -R prometheus.prometheus /opt/prometheus-2.22.2 # 更改权限
]# ln -sf /opt/prometheus/promtool /usr/local/bin/promtool # 做二进制文件软连接
]# ln -sf /opt/prometheus/prometheus /usr/local/bin/prometheus # 做二进制文件软连接
]# vim /opt/prometheus/prometheus.yml # 编写配置文件
#Prometheus全局配置
global:
scrape_interval: 15s # 集数据间隔,默认15秒。现在设置60s一次,该配置可配置在每个job_name中
evaluation_interval: 15s # 告警规则监测频率,比如已经设置了内存使用大于70%就告警的规则,这里就会每60秒执行一次告警规则
#Prometheus告警设置
alerting: #指定alertmanager报警组件地址
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
rule_files: #指定报警规则文件
# - "first_rules.yml"
#被监控端配
scrape_configs: #定义一个监控组,其下可以有多个实例配置
- job_name: ‘prometheus_master‘
scrape_interval: 5s
static_configs:
- targets: [‘localhost:9090‘,‘192.168.245.128:9090‘] #组内多个被监控主机
labels: # 自定义标签,可以通过标签对查询数据进行分组管理
appname: ‘prometheus_master‘
- job_name: ‘node_exporter‘ # node 的监控组
scrape_interval: 5s
static_configs:
- targets: [‘192.168.245.130:9100‘]
labels:
appname: ‘node_exporter‘
]# vim /etc/systemd/system/prometheus.service #编写 Prometheus启动脚本
[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 /opt/prometheus/prometheus.yml \
--storage.tsdb.path /opt/prometheus/data \
--web.console.templates=/opt/prometheus/consoles \
--web.console.libraries=/opt/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
部署被监控虚拟
]# hostnamectl set-hostname node_exporter # 设置服务器名字
]# mdkir /opt/src # 将node_exporter 安装包上传到此目录
]# tar -xf src/node_exporter-1.0.1.linux-amd64.tar.gz -C /opt/ # 解压到opt 目录下
]# useradd -rs /bin/false nodeusr # 创建用户
]# mv node_exporter-1.0.1.linux-amd64/ node_exporter-1.0.1 # 重命名
]# cp node_exporter-1.0.1/node_exporter /usr/local/bin/ # 复制二进制文件到 /usr/local/bin/ 目录下
]# chown -R nodeusr.nodeusr /usr/local/bin/node_exporter # 更改权限
]# vim /etc/systemd/system/node_exporter.service # 创建服务启动脚本
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=nodeusr
Group=nodeusr
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
]# systemctl daemon-reload #加载配置
]# systemctl start prometheus node_exporter # 启动服务
]# systemctl status prometheus node_exporter # 查看服务状态
]# systemctl enable prometheus node_exporter # 设置服务开机自启
验证:
]# netstat -tnulp | grep :9100
tcp6 0 0 :::9100 :::* LISTEN 57740/node_exporter
]# netstat -tnulp | grep :9090
tcp6 0 0 :::9090 :::* LISTEN 53431/prometheus
浏览器访问:http://192.168.245.128:9090/targets
扩展1: prometheus 自动发现
]# mkdir /opt/prometheus/target/shouba-gy/ ##创建目录
]# vim /opt/prometheus/target/shouba-gy/gy.json ##编写自动发现内容
[
{
"targets": [ "172.18.50.243:9100","172.18.50.239:9100" ],
"labels": {
"job": "shoubagy",
"service": "shoubagy"
}
}
]
]# vim /opt/prometheus/prometheus.yml ##修改Prometheus 配置文件,文件最后面添加
………
- job_name: ‘shoubagy‘
file_sd_configs:
- files:
- "/opt/prometheus/target/shouba-gy/gy.json"
refresh_interval: 6s
]# systemctl restart prometheus ##重启Prometheus
验证:http://192.168.245.128:9090/targets
刷新页面时会有shoubagy 的数据存在,以后在gy.json 再添加上新的主机时,Prometheus 会自动监控,不需要重启 Prometheus
扩展2:配置安装Grafana
下载地址: https://grafana.com/grafana/download
建议使用一台新的机器部署,这里只是测试环境,就装在Prometheus 虚拟机上
Grafana 版本:7.3.3 (grafana-7.3.3.linux-amd64.tar.gz)
]# cd /opt/src/ # 将grafana 上传到 /opt/src 目录下
]# tar -xf grafana-7.3.3.linux-amd64.tar.gz -C /opt # 解压到opt 目录下
]# ln -sf /opt/grafana-7.3.3 /opt/grafana # 做软连接
]# nohup /opt/grafana-7.3.3/bin/grafana-server > /dev/null 2>&1 & # 启动程序
]# netstat -tnulp | grep :3000
tcp6 0 0 :::3000 :::* LISTEN 76634/grafana-serve
浏览器访问:http://192.168.245.128:3000/
第一次登录账号密码为 admin,admin ,然后接着更改默认密码
添加模板 (模板地址:https://grafana.com/grafana/dashboards)
原文:https://www.cnblogs.com/gengdadeshitou/p/14063328.html