Grafana、Prometheus-监控平台
一:Grafana 简介与部署
安利一个生产环境正在使用的监控和告警平台:grafana,它是一个开源的可对指标和日志进行查询、可视化和告警的平台。
docker 安装官方文档:https://grafana.com/docs/grafana/latest/administration/configure-docker/
# 创建持久化目录 cd /root/data/docker mkdir -p grafana/data mkdir -p grafana/logs # 将修改后的配置文件放在指定的目录 cp grafana.ini grafana/ # 修改目录权限,docker方式启动grafana使用的uid和gid为472 chown 472:472 grafana/data -R # 启动容器 docker run -d \ -p 3000:3000 \ --name=grafana \ -v /root/data/docker/grafana/data:/var/lib/grafana \ -v /root/data/docker/grafana/logs:/var/log/grafana \ -v /root/data/docker/grafana/grafana.ini:/etc/grafana/grafana.ini \ --restart=always \ grafana/grafana:7.2.1
注意:需要将 grafana.ini 文件中的domain改为服务器的外网ip,否则告警通知链接的host是localhost
二:Influxdb安装
InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。
官方文档:https://hub.docker.com/_/influxdb
# 创建持久化目录 cd /root/data/docker mkdir -p influxdb # 启动容器 docker run -d \ -p 8086:8086 \ --name=influxdb \ -v /root/data/docker/influxdb:/var/lib/influxdb \ --restart=always \ influxdb:1.8
初始化数据库:
# 启动influxdb客户端 docker exec -it influxdb influx # 创建数据库,数据ttl 2周 CREATE DATABASE "test" WITH DURATION 2w REPLICATION 1 NAME "default";
三:Prometheus及exporter安装
# 拉取镜像 docker pull prom/prometheus # 创建配置文件 mkdir -p /root/data/docker/prometheus cd /root/data/docker/prometheus # 配置文件内容见附件, 将里面的ip改为服务器的ip vim prometheus-config.yml # 启动 docker run --name prometheus --restart=always -d -p 9090:9090 \ -v /root/data/docker/prometheus/prometheus-config.yml:/etc/prometheus/prometheus.yml \ prom/prometheus --config.file=/etc/prometheus/prometheus.yml
在grafana配置数据源
下面用prometheus监控服务器:
vim prometheus-config.yml
# 全局配置 global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: # 监控服务器 - job_name: 'server' static_configs: - targets: ['内网ip:9100']
安装:
# 下载安装包 mkdir -p /root/data/monitor cd /root/data/monitor wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz tar zxvf node_exporter-1.1.2.linux-amd64.tar.gz # 配置系统级的启动命令 cd /etc/systemd/system/ # 内容见下面 vim node_exporter.service systemctl daemon-reload systemctl start node_exporter systemctl enable node_exporte
node_exporter.service的内容如下:
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=root ExecStart=/root/data/monitor/node_exporter-1.1.2.linux-amd64/node_exporter [Install] WantedBy=default.target
配置:
11074:https://grafana.com/grafana/dashboards/11074,其实就是官方和社区构建的仪表板。
最终效果:
Grafana、Prometheus、influxdb三者相辅相成,不仅可以快速帮我们构建系统级别的监控,还能快速的导入服务器、数据库等其他常用基建的仪表盘,
同事又支持精致化的业务打点与告警规则的配置。