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

相关推荐
wjf630008 分钟前
Linux常用命令
linux
lxw100519240110 分钟前
LINUX 安装MINIO文件服务
linux·运维·服务器·minio
翠花也老了1 小时前
linux 中 vi 和 less 命令(超全建议收藏)
linux·运维·less·vi
Li&ShuaiShuai1 小时前
Linux系统编程:信号
linux·运维·服务器·c++·信号
零度㏄1 小时前
[软件安装]linux下安装steam
linux·运维
pokemon..1 小时前
Linux 文件系统以及日志管理
linux·运维·服务器
真果粒wrdms2 小时前
【sqlite3】联系人管理系统
linux·c语言·数据库·经验分享·笔记·sqlite
张火火isgudi2 小时前
CentOS8换源
linux·运维·服务器
-无-为-2 小时前
科普文:linux I/O原理、监控、和调优思路
linux·运维·性能优化
屿小夏.2 小时前
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)
linux·运维·服务器