环境:centos7.2
nginx的配置比较常见,一般安装即可,这里不再多说。唯一说的是因为基于nginx做权限认证,需要创建一个密钥对。
yum -y install httpd-tools
htpasswd -bc /usr/local/nginx/prometheus.passwd 用户名 密码
这里是prometheus官网的下载地址,大家可以根据自己的需要去下载。
tar zxf prometheus-2.20.1.linux-amd64.tar.gz
mv prometheus-2.20.1.linux-amd64 /usr/local/prometheus
# 启停控制脚本
cat > /usr/lib/systemd/system/prometheus.service << EOF
[Unit]
Description=prometheus
After=network.target
[Service]
Restart=on-failure
WorkingDirectory=/usr/local/prometheus
ExecStart=/usr/local/prometheus/prometheus --web.enable-lifecycle \
--storage.tsdb.retention.time=90d --web.enable-admin-api \
--storage.tsdb.path=/usr/local/prometheus/data \
--web.external-url=http://prometheus-dd.aaaa.com
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable prometheus.service
这里只是搭建prometheus的前期过程,建议把其他插件给搭建完成后,再启动prometheus。
配置文件的参数说明:
--web.enable-lifecycle 在修改了prometheus.yml之后 可以不重启,直接热加载更新配置
--storage.tsdb.retention.time=90d 设置数据保留时间为90天
--web.enable-admin-api 启用api,可以进行数据清理功能
--storage.tsdb.path=/usr/local/prometheus/data 指定数据落地的目录
--web.external-url=http://prometheus-dd.aaaa.com 注意:指定域名,此域名用于报警消息中超链接跳转所用
后面每次修改prometheus.yml文件后,可通过以下命令来热加载配置更改
curl -X POST http://localhost:9090/-/reload
一般来说我们访问都是 基于nginx做统一访问入口,所以这里编写prometheus配置文件,关于nginx的权限认证
cat > prometheus.conf << EOF
server {
listen 80;
server_name prometheus.aaaa.com;
location / {
auth_basic "Prometheus Auth";
auth_basic_user_file /usr/local/nginx/prometheus.passwd;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://172.19.120.164:9090;
}
access_log /usr/local/nginx/logs/prometheus.log main;
}
EOF
查看采集数据信息
打开地址,输入账号名密码之后,点击
就可以看到各个数据的状态
grafana MySQL状态展示
相信大家看到这里已经要迫不及待动手试试了。
prometheus的数据展示在grafana可以参看这篇文章,过程简单,也很不错,唯一需要注意的是,DataSource来源不要写错,文中的json文件里已经默认了DataSource的名称是Prometheus。
PS:grafana的官网共享模板里并没有数据来源为prometheus的,所以还是用文章中推荐的json文件吧。