一: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

环境地址:http://ip:3000/login

初始用户名/密码为admin/admin

二: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安装

官方网址:https://prometheus.io

# 拉取镜像
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三者相辅相成,不仅可以快速帮我们构建系统级别的监控,还能快速的导入服务器、数据库等其他常用基建的仪表盘,

同事又支持精致化的业务打点与告警规则的配置。

最新文章

  1. MFC像窗体坐标位置发送 点击消息
  2. SQL Server 2014 Backup Encryption
  3. DuiLib 源码分析之CDuiString
  4. SQL Server时间粒度系列----第1节时间粒度概述
  5. 【Oracle】Oracle锁表处理
  6. P1067Warcraft III 守望者的烦恼(十大矩阵问题之七求递推式)
  7. PHP学习笔记八【数组】
  8. laravel artisan 命令工具
  9. js数组(二)
  10. Android系统Root原理初探(转)
  11. Java虚拟机体系结构
  12. Adapter模式进行代码重构
  13. 使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法
  14. Unity3d的模型自动导入帧数表
  15. 机器学习---感知机(Machine Learning Perceptron)
  16. 安装postgreSQL出现configure: error: zlib library not found解决方法
  17. Day16--Python--初识面向对象
  18. html阿里云网页练习实现代码
  19. javascript 中的 innerHTML 是什么意思
  20. N! (数组)

热门文章

  1. GO语言面向对象05---接口的多态
  2. 纯C++代码实现将像素矩阵保存为bmp图片
  3. 优雅关闭springboot应用
  4. nvGRAPH API参考分析(二)
  5. Spring Cloud 和 Dubbo,到底用哪个好?
  6. 【题解】T749 localmaxima
  7. VBS脚本编程(10)——编写WMI脚本
  8. CosId 1.0.0 发布,通用、灵活、高性能的分布式 ID 生成器
  9. Go语言Slice作为函数参数详解
  10. Redisson 分布式锁源码 02:看门狗