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

相关推荐
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮4 小时前
Linux 使用中的问题
linux·运维
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
小林熬夜学编程7 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
程思扬8 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
sun0077008 小时前
拷贝 cp -rdp 和 cp -a
linux·运维·服务器
wowocpp8 小时前
ubuntu 22.04 server 安装 anaconda3
linux·运维·ubuntu