Grafana+Prometheus构建强大的监控系统-保姆级教程[监控linux、oracle]

什么是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

相关推荐
2301_819287121 小时前
ce第六次作业
linux·运维·服务器·网络
武汉联从信息1 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
Aileen_0v02 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
州周2 小时前
Ftp目录整个下载
linux·服务器·数据库
Jackey_Song_Odd2 小时前
Ubuntu 24.04.1 解决部分中文字符(门、径)显示错误的问题
linux·ubuntu
kaixin_learn_qt_ing2 小时前
Linux export命令
linux
余额不足121382 小时前
C语言基础十六:枚举、c语言中文件的读写操作
linux·c语言·算法
冷曦_sole2 小时前
linux-19 根文件系统(一)
linux·运维·服务器
AI大模型学徒2 小时前
Linux(二)_清理空间
linux·运维·服务器
云川之下3 小时前
【linux】 unshare -user -r /bin/bash命令详解
linux·bash·unshare