使用prometheus+grafana監控MySQL監控Oracle


【環境介紹】

系統環境:CentOS Linux release 7.6 + prometheus version 2.20.0 + Grafana CLI version 7.1.3 + mysql 5.7 + oracle 11.2.0.4.0
 
【安裝部署】
1,安裝prometheus
下載安裝包:https://github.com/prometheus/prometheus/releases/download/v2.20.1/prometheus-2.20.1.linux-amd64.tar.gz
創建安裝目錄(這里根據實際情況定義軟件目錄):mkdir -p /home/prometheus/prometheus
解壓至安裝目錄:tar xf prometheus-2.20.1.linux-amd64.tar.gz -C /home/prometheus/prometheus --strip-components=1
目錄說明,需要創建對應目錄:
 
安裝軟件目錄:/home/prometheus/prometheus
配置文件目錄:/home/prometheus/prometheus/conf
數據目錄:/home/prometheus/prometheus/data
日志目錄:/home/prometheus/prometheus/logs
 
 
2,修改配置文件
 
cd /home/prometheus/prometheus/
拷貝配置文件到conf自己定義的目錄:
cp prometheus.yml ./conf
cd /home/prometheus/prometheus/conf
vim prometheus.yml
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
 
   static_configs:
    - targets: ['localhost:9090']
  - job_name: linux
    static_configs:
      - targets: ['10.0.0.166:9100']
        labels:
          instance: linux_10.0.0.166

后面紅色部分為添加的內容
 
3,配置啟動腳本
使用腳本進行啟動服務,注意修改配置文件,后面參數指定配置文件,數據目錄,日志目錄,保留時間,pid路徑
cat  >start_prometheus.sh
#!/bin/bash
BASEPATH= /home/prometheus/prometheus
LOG=$BASEPATH /logs
nohup $BASEPATH/prometheus --config.file=$BASEPATH /conf/prometheus.yml --web.listen-address=:9090 --storage.tsdb.path=$BASEPATH /data/  --storage.tsdb.retention= 5d >> $LOG/ prometheus.log  2>&1 & echo $! > $BASEPATH/run/prometheus.pid
sleep 5
PROC=`ps -ef |grep \`cat $BASEPATH/run/prometheus.pid\` |grep -v grep`
if  [ ! -n "$PROC" ] ;then
    echo "##########################################"
    echo "Process not found, please check by yourself"
    echo "##########################################"
else
    echo "##########################################"
    echo "Prometheus is running"
    echo "##########################################"
fi
 
 

 4,安裝node_exporter,mysqld_exporter,oracledb_exporter

cd /home/prometheus/

wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz
wget https://github.com/iamseth/oracledb_exporter/releases/download/0.2.9/oracledb_exporter.0.2.9-ora18.5.linux-amd64.tar.gz

解壓到指定export目錄:

/home/prometheus/prometheus_exporter
cd /home/prometheus/
tar xf node_exporter-1.0.1.linux-amd64.tar.gz -C prometheus_exporter/
tar xf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C prometheus_exporter/
tar xf oracledb_exporter.0.2.9-ora18.5.linux-amd64.tar.gz -C  prometheus_exporter/
 
 
加載node_exporter
cd /home/prometheus/prometheus_exporter/node_exporter-1.0.1.linux-amd64
后台運行服務
nohup ./node_exporter &
 
 
加載mysqld_exporter
cd prometheus_exporter/mysqld_exporter-0.12.1.linux-amd64
創建MySQL數據庫監控用戶:
create user mysql_monitor@'%' identified by 'Mysql_monitor123';
GRANT REPLICATION CLIENT, PROCESS ON *.* TO mysql_monitor@'%';
GRANT SELECT ON performance_schema.* TO mysql_monitor@'%';
 
vim .my.cnf
[client]
   host=localhost
   port=3306
   user=mysql_monitor
   password=Mysql_monitor123
 
后台運行服務
nohup ./mysqld_exporter --config.my-cnf=.my.cnf &
 
加載oracle_exporter
 
下載oracle客戶端安裝包,配置安裝,需要19C
https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html
這里使用root用安裝19C的客戶端
rpm -ivh oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm
[root@oracle21 prometheus_exporter]# rpm -ivh oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:oracle-instantclient19.5-basic-19################################# [100%]
[root@oracle21 prometheus_exporter]# cd /usr/lib/oracle/19.3/client64/network/admin
-bash: cd: /usr/lib/oracle/19.3/client64/network/admin: No such file or directory
[root@oracle21 prometheus_exporter]# cd /usr/lib/oracle/19.5/client64/  
[root@oracle21 client64]# ls -trl
total 4
drwxr-xr-x 2 root root   33 Aug 13 09:54 bin
drwxr-xr-x 3 root root 4096 Aug 13 09:54 lib
[root@oracle21 client64]# mkdir -p network/admin/
[root@oracle21 client64]# cd network/admin/
[root@oracle21 admin]#  cat  >tnsnames.ora
oratest =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.166)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oratest)
    )
  )
[root@oracle21 admin]#
 
配置環境變量 vim ~/.bash_profile --根目錄下為全局使用,為限制用戶權限,可只修改某一用戶的環境變量
vim ~/.bash_profile
export ORACLE_HOME=/usr/lib/oracle/19.5/client64
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG='simplified chinese_china'.ZHS16GBK
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
 
source ~/.bash_profile
 
Oracle數據庫創建用戶
create user oracle_monitor identified by Oracle_monitor123;
grant connect,dba,select any table to oracle_monitor;
 
[root@oracle21 prometheus_exporter]# cd oracledb_exporter.0.2.9-ora18.5.linux-amd64/
[root@oracle21 oracledb_exporter.0.2.9-ora18.5.linux-amd64]# pwd
/home/prometheus/prometheus_exporter/oracledb_exporter.0.2.9-ora18.5.linux-amd64
[root@oracle21 oracledb_exporter.0.2.9-ora18.5.linux-amd64]# export DATA_SOURCE_NAME=oracle_monitor/Oracle_monitor123@oratest
[root@oracle21 oracledb_exporter.0.2.9-ora18.5.linux-amd64]# nohup ./oracledb_exporter &
[1] 2623
[root@oracle21 oracledb_exporter.0.2.9-ora18.5.linux-amd64]# nohup: ignoring input and appending output to ‘nohup.out’
[root@oracle21 oracledb_exporter.0.2.9-ora18.5.linux-amd64]# ps -ef |grep oracledb_exporter
root      2623 32023  0 10:01 pts/0    00:00:00 ./oracledb_exporter
root      2669 32023  0 10:01 pts/0    00:00:00 grep --color=auto oracledb_exporter
[root@oracle21 oracledb_exporter.0.2.9-ora18.5.linux-amd64]#
 
以上使用命令查看采集數據是否正常(修改對應的IP跟端口):
curl http:// IP: 9161/metrics
 
5,啟動服務
查看配置文件:
cat  prometheus.yml
    static_configs:
    - targets: ['localhost:9090']
  - job_name: linux
    static_configs:
      - targets: ['10.0.0.166:9100']
        labels:
          instance: linux_10.0.0.166
 
  - job_name: mysql
    static_configs:
      - targets: ['10.0.0.166:9104']
        labels:
          instance: mysql_10.0.0.166
  - job_name: oracle_local
    static_configs:
      - targets: ['10.0.0.166:9161']
        labels:
          instance: oracle_10.0.0.166
 
直接運行腳本啟動服務:
[root@oracle21 prometheus]# sh start_prometheus.sh
##########################################
Prometheus is running
##########################################
[root@oracle21 prometheus]#
 
 
查看網址是否監控正常:
http://10.0.0.166:9090/targets

 

 

 

 

 

 

 

5,安裝grafana

這里使用RPM安裝

wget https://dl.grafana.com/oss/release/grafana-7.1.3-1.x86_64.rpm
yum install grafana-7.1.3-1.x86_64.rpm
$ systemctl daemon-reload
$ systemctl start grafana-server
$ systemctl status grafana-server

訪問網址是否正常
http://10.0.0.166:3000 用戶密碼為admin  admin

 

 

6,導入對應的儀表盤效果如下

下載對應的儀表盤:https://grafana.com/grafana/dashboards

主機:

 

MySQL:

 

 Oracle:

 

 7,遇到的問題

使用之前查看的批量導入MySQL儀表盤顯示需要安裝插件,該插件本身自帶,解決辦法直接下載最新的儀表盤導入即可;

 

Oracle數據庫采集數據異常,查看為查詢表空間耗時很久,在數據庫層面清理回收站即可;

 

 

Linux6安裝監控異常,為需要安裝Linux需要支持2.14 strings /lib64/libc.so.6 |grep GLIBC_ linux6需要升級

 下載glibc-2.14.tar.gz http://ftp.gnu.org/gnu/glibc/

注意新的版本一定得用其他目錄,防止覆蓋原版本導致系統異常:

mkdir -p /root/soft/glibc
gunzip glibc-2.14.tar.gz
tar -xvf glibc-2.14.tar
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/root/soft/glibc
make -j4
make install
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/root/soft/glibc/lib

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM