什么是Grafana?
Grafana是一个开源软件,拥有丰富的指标仪表盘和图形编辑器,适用Prometheus、Graphite、Elasticsearch、OpenTSDB、InfluxDB、redis。。。简单点说就是一套开源WEB可视化平台。通过对数据库数据二次提取,做出好看的图形化界面。
官网地址:https://grafana.com/
Prometheus是什么?
Prometheus是一个开源的时序数据库。由指标名称和和键/值对标签标识的时间序列数据组成的多维数据模型。
官网地址:https://prometheus.io/
本教程涵盖 linux基础监控、oracle数据库监控、redis基础监控、mysql数据库监控。
结果展示
章节介绍:
第1、2章节为基础环境。主要包含Grafana+Prometheus。
从第3章节开始,是数据采集端的部署教程。
准备工作
docker run -p 3306:3306 --name MySQL5.7 \
-v /data/mysql5.7/log:/var/log/mysql \
-v /data/mysql5.7/data:/var/lib/mysql \
-v /data/mysql5.7/conf:/etc/mysql \
--restart=always \
-e MYSQL_ROOT_PASSWORD=Yj8Gtc \
-d mysql:5.7
#mysql 更改远程连接命令
docker exec -it Mysql-5.7 /bin/bash
mysql -uroot -pmysql_DbQAXp #注意修改密码
alter user 'root'@'localhost' identified by 'Yj8Gtc';
grant all privileges on *.* to root@'%' identified by 'Yj8Gtc';
flush privileges;
# 本次教程会配置监控oracle数据库, 需要用到oracle19c数据库,若没有数据库,需要提前安装oracle数据库,安装教程可参照:https://articles.zsxq.com/id_9c3brwrf98k3.html
-- 本教程用到了两台linux虚拟机
监控服务ip:172.16.44.240
被监控服务ip:172.16.45.166
-- 提前下载好需要的镜像
# 监控服务
docker pull prom/prometheus && docker pull grafana/grafana
# 被监控服务
docker pull iamseth/oracledb_exporter && docker pull prom/mysqld_exporter && docker pull prom/node-exporter
#如果下载速度过慢或者需要登录账户才可下载可以通过下方链接下载我整理好的镜像:
链接:https://pan.baidu.com/s/1TCvCfiVZzw--nE9f7-YQzw?pwd=312r
# 上传文件后,加载镜像
docker load -i grafana_prometheus_ora_mysql_redis_images.tar
docker images
部署教程开始: (监控服务器执行)
1、Prometheus:
#创建挂载目录或文件
mkdir -p /etc/prometheus/
#创建宿主机位置配置文件
vim /etc/prometheus/prometheus.yml
global:
scrape_interval: 1m
scrape_timeout: 1m
evaluation_interval: 1m
alerting:
alertmanagers:
- follow_redirects: true
enable_http2: true
scheme: http
timeout: 10s
api_version: v2
static_configs:
- targets: []
rule_files:
scrape_configs:
# Prometheus
- job_name: 'Prometheus'
static_configs:
- targets: ['172.16.45.240:9090']
# 注意修改prometheus.yml配置文件末尾行ip地址。
-- 创建 prometheus容器
docker run -itd --name prometheus -p 9090:9090 \
--restart=always \
--privileged=true \
--net host \
-v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /etc/localtime:/etc/localtime:ro \
prom/prometheus
1.1、验证可用性
docker ps -a |grep prometheus
#检查容器是否启动正常,STATUS 为Up状态
本地浏览器打开:
http://{IP}:9090
可正常显示prometheus界面
2、Grafana
docker run -idt -p 3000:3000 \
--restart=always \
--net host \
--privileged=true \
--name grafana \
grafana/grafana
2.1、验证可用性
docker ps -a |grep grafana
#检查容器是否启动正常,STATUS 为Up状态
本地浏览器打开:
http://{IP}:3000
可正常显示grafana界面,输入用户名 admin 密码 admin ,重置admin密码为Abc123456,登录系统。
2.2 配置Prometheus数据库
依次点击 “Home--Administration--Plugins” 进入插件配置界面。
搜索 “prometheus” 点击搜索到的 Prometheus,点击进去后,点击“add new...”
配置 Prometheus 连接地址 http://172.16.44.240:9090/
最后点击下方的 save&&test ,提示 测试成功,配置完成。
3、被监控服务器部署监控采集端
3.1、监控linux服务器基础信息
3.1.1、监控linux基础信息:使用prom/node-exporter镜像创建数据采集容器
-- 创建Linux监控(被监控服务器执行)
docker run -d --name Node_Exporter -p 9100:9100 --restart=always -v /etc/localtime:/etc/localtime prom/node-exporter
3.1.2、验证可用性
docker ps -a |grep node-exporter
#检查容器是否启动正常,STATUS 为Up状态
3.1.3、修改【监控服务器】prometheus配置文件增量添加以下标签内容
vim /etc/prometheus/prometheus.yml
#Linux 监控
- job_name: Linux
static_configs:
- targets: ['172.16.45.166:9100']
labels:
instance: 166-Linux
- targets: ['172.16.44.240:9100']
labels:
instance: 240-Linux
修改成功后, 重启prometheus容器服务。
docker restart prometheus
3.1.4、grafana导入可视化
-- linux监控json
12633
11074
3.2、监控Oracle数据库服务
3.2.1、创建数据库监控,使用iamseth/oracledb_exporter镜像创建数据采集容器
# 提前在被监控数据库创建“MONIT”用户。
# 注意修改创建容器命令中的数据库
-- 创建数据库监控(数据库服务器执行)
docker run -itd --name Ora_Exporter_37 \
--restart=always \
-p 9161:9161 \
-e DATA_SOURCE_NAME=MONIT/monit@172.16.44.166:1521/orcl \
-v /etc/localtime:/etc/localtime \
iamseth/oracledb_exporter
3.2.2、验证可用性
docker ps -a |grep Ora_Exporter_37
3.2.3、修改prometheus配置文件
vim /etc/prometheus/prometheus.yml
#监控 Oracle
- job_name: 166-ORCL
static_configs:
- targets: ['172.16.44.166:9161']
labels:
instance: 166-ORCL
3.2.4、grafana导入可视化
-- oracle json
11121
3333
3.3、监控Mysql数据库服务
3.3.1、创建数据库监控,使用prom/mysqld-exporter镜像创建数据采集容器
-- 创建Mysql监控(被监控服务器执行)
docker run -d --name Mysql_Exporter --restart always -v /etc/localtime:/etc/localtime -p 9104:9104 -e DATA_SOURCE_NAME="root:123456@172.16.45.166:3306/" prom/mysqld-exporter
3.3.2、验证可用性
3.3.3、修改prometheus配置文件
3.3.4、grafana导入可视化
-- 导入json 7362
3.4、监控Redis数据库服务
3.4.1、安装redis-datasource,并使用oliver006/redis_exporter镜像创建数据采集容器
-- 安装redis-datasource (监控服务器执行)
#grafana增加redis库
docker exec -it grafana sh
grafana-cli plugins install redis-datasource
-- 创建redis连接
docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr redis://172.16.21.191:6382
3.4.2、验证可用性
3.4.3、修改prometheus配置文件
3.4.4、grafana导入可视化
-- 导入json
12776
11835