网上找了很多监控开源工具,打算用来监控Oracle、MySQL等数据库,最后选择了Prometheus和Grafana,主要是相对于Zabbix来说,简直不要太友好,本文全部是亲手搭建的,绝非很多博客复制粘贴,同样一篇文章搬来搬去,导致找相关文档的时候简直爆炸,不多哔哔,接下来就讲一下如何搭建Prometheus、Grafana环境以及监控MySQL和Oracle。
服务器 | IP地址 |
---|---|
Prometheus服务器 | 192.168.3.102 |
Grafana服务器 | 192.168.3.103 |
被监控服务器 | 192.168.3.77 |
被监控服务器 | 192.168.3.93 |
192.168.3.77已经安装好了oracle11g,192.168.3.93安装好了MySQL
不知道如何安装Oracle11g的小伙伴可以点击下面链接:
Oracle11g静默安装
如果还没有安装MySQL的小伙伴可以点击下面链接:
MySQL安装
文章涉及到的文件可点击下载,密码:xyln
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#查看selinux
getenforce
#永久关闭selinux
vi /etc/selinux/config
#将SELINUX=enforcing改为SELINUX=disabled,并重启系统
三台主机都互相绑定IP与主机名
192.168.3.102 master
192.168.3.103 gra
192.168.3.77 ora
yum install -y ntpdate && ntpdate time.windows.com
这里我在做的时候遇到一个问题,就是执行完之后还是不同步,最后发现是时区不一致,导致时间同步完之后还是不一样。
执行完之后输入date检查一下是否已经同步。
tar -zxvf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-2.5.0.linux-amd64/ /usr/local/prometheus
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
ss -anlt | grep 9090
浏览器输入http://服务器IP:9090
即可访问Prometheus的主界面,注意是服务器IP
是要替换的,别复制到浏览器问为什么没有界面出来。
在这里插入图片描述
如上面所说,Grafana是一个开源的监控可视化平台,它可以通过将采集的数据进行分析,查询,然后进行可视化的展示,而且支持告警。
systemctl start grafana-server
systemctl enable grafana-server
#确认端口
ss -anlt | grep 3000
tar xf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/mysqld_exporter-0.11.0.linux-amd64/ /usr/local/mysqld_exporter
ls /usr/local/mysqld_exporter
#授权
grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123';
#刷新
flush privileges;
#退出
quit
vi /usr/local/mysqld_exporter/.my.cnf
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
9104
ss -anlt | grep 9104
vi /usr/local/prometheus/prometheus.yml
在最后加上这三行
- job_name: 'mysql'
static_configs:
- targets: ['192.168.3.93:9104']
这里切记,格式要注意,不然开启prometheus服务会报错。
pkill prometheus
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
#进入grafana的lib目录
cd /var/lib/grafana/
#解压
unzip grafana-dashboards-master.zip
cp -R /var/lib/grafana/grafana-dashboards-master/dashboards/ /var/lib/grafana/
vi /etc/grafana/grafana.ini
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards
systemctl restart grafana-server
由于Prometheus是用golang开发的,所以先安装一下Go环境。
tar -xvf go1.16.2.linux-amd64.tar.gz -C /usr/local/
vi /etc/profile
#go environment
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
go version
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
#创建文件夹
mkdir -p /usr/lib/oracle/11.2/client64/network/admin
#创建监听文件
vi /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora
#/usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora
ORCL11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.105)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
#更改权限
chmod -R 755 /usr/lib/oracle/
chown -R oracle:oinstall /usr/lib/oracle/
su - oracle
vi ~/.bash_profile
export ORACLE_HOME2=/usr/lib/oracle/11.2/client64
export ORACLE_SID=orcl11g.us.oracle.com
export NLS_LAN=GAMERICAN_AMERICA.AL32UTF8
export PATH=$PATH:$ORACLE_HOME2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME2/lib
tar -xvf oracledb_exporter.0.2.2.linux-amd64.tar.gz
chmod u+x oracledb_exporter.0.2.2.linux-amd64/oracledb_exporter
mv oracledb_exporter.0.2.2.linux-amd64 oracledb_exporter
mv oracledb_exporter /usr/local/
chown oracle:oinstall /usr/local/oracledb_exporter/
vi ~/.bash_profile
export DATA_SOURCE_NAME=用户名/密码@ 数据库服务名
export DATA_SOURCE_NAME=system/11111111
./oracledb_exporter -log.level error -web.listen-address IP:9161
nohup ./oracledb_exporter &
http://服务器ip:9161/metrics
记得是服务器IP,不要直接复制粘贴到地址栏然后思考没有反应- -
可以看到Oracle的监控指标列表
vi /usr/local/prometheus/prometheus.yml
- job_name: '105_oracle'
static_configs:
- targets: ['192.168.3.105:9161']
pkill prometheus
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
这一步如果你之前监控MySQL已经设置好了就不需要再设置了,如果没有设置的话,查看5.2.2
参考网址https://grafana.com/api/dashboards/3333/revisions/1/download
至此,Prometheus+Grafana的基本环境搭建,以及如何利用这两者的结合监控MySQL、Oracle就到这结束,花费了一周的时间写这个博客,如果对你有帮助的话,还请多多评论点赞收藏,如果有什么不对的,还请指正!谢谢!!!