一、安装grafana
1.下载grafana安装包:grafana-enterprise-9.1.2-1.x86_64.rpm
[root@nfs-ansible-prom prom]# yum install grafana-enterprise-9.1.2-1.x86_64.rpm -y
然后再prom目录下ls查看是否下载成功
2.启动服务并设置开机启动
[root@nfs-ansible-prom prom]# systemctl start grafana-server 启动服务
[root@nfs-ansible-prom prom]# systemctl enable grafana-server 设置开机启动
[root@nfs-ansible-prom prom]# ps aux|grep grafana 可以查看grafana进程是否启动
[root@nfs-ansible-prom prom]# netstat -anplut|grep grafana 查看grafana端口,一般是3000
登录,在浏览器里登录http://192.168.203.135:3000
默认的用户名和密码都是admin,登陆后可以自己设置一个密码
二、grafana的出图配置
1.先配置prometheus的数据源
点击添加数据源(add data source)
选择Prometheus数据库
填写好配置
点击测试是否能成功连接到Prometheus 时序数据库
三、导入grafana的模板
点击Dashboards 进入仪表盘设置
点击import直接导入模板
输入8919模板,点击load
给模板起一个名字,然后选择Prometheus数据库,最后点击import
进入dashboard界面,看到非常漂亮的监控效果图
给模板起一个名字,然后选择Prometheus数据库,最后点击import
四、安装mysql的mysqld_exporter
1.简单介绍node_exporter和mysqld_exporter
MySQL的exporter --》可以获取MySQL内部的性能指标
安装了node_exporter -->获取mysql服务器的cpu、内存、磁盘IO、网络IO、进程等信息
监听:9090
安装mysqld_exporter -->获取MySQL内部的性能指标
监听:9104
之前安装的是通用node_exporter
[root@db-mysql ~]# ps aux|grep node
root 686 0.1 0.5 717952 20544 ? Ssl 09:39 0:01 /node_exporter/node_exporter --web.listen-address 0.0.0.0:9090
root 1713 0.0 0.0 112828 988 pts/0 S+ 09:55 0:00 grep --color=auto node
2.安装mysqld_exporter代理程序(agent)
2.1在db服务器上下好mysql-5.7,执行脚本onekey_install_mysql_binary_v3.sh。测试登录数据库
[root@db ~]# mysql -u数据库用户名 -p'数据库密码'
2.2创建用于获取mysqld进程信息的数据库的用户exporter
root@(none) 18:58 mysql>CREATE USER 'exporter'@'%' IDENTIFIED BY '创建exporter的密码' WITH MAX_USER_CONNECTIONS 3;
对用户exporter进行授权,授予PROCESS, REPLICATION CLIENT, SELECT 三种权限,在任何的库里的任何表上。
2.3部署mysqld_exporter
需要提前上传下载的mysqld_exporter-0.15.0.linux-amd64.tar.gz,可以用xftp上传到mysql服务器
[root@db ~]# tar xf mysqld_exporter-0.15.1.linux-amd64.tar.gz -C /usr/local 解压mysqld_exporter到/usr/local目录下
[root@db ~]# cd /usr/local/ 进入/usr/local目录下,然后将目标文件移到mysqld_exporter文件夹
[root@db local]# mv mysqld_exporter-0.15.0.linux-amd64 mysqld_exporter 将目标文件移到/usr/local/中
.my.cnf是mysqld_exporter用于登录mysqld进程的配置文件
[root@db-mysql mysqld_exporter]# ls
LICENSE mysqld_exporter NOTICE
[root@db-mysql mysqld_exporter]# vim .my.cnf
[client]
user=exporter
password=之前创建的exporter密码
2.4将mysqld_exporter做成服务
[root@db mysqld_exporter]# vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=mysqld_exporter
[Service]
Environment=DATA_SOURCE_NAME=exporter:Sanchuang123@(localhost:3306)/
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf --web.listen-address=:9104
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@db mysqld_exporter]# systemctl daemon-reload 重新加载配置文件
[root@db mysqld_exporter]# systemctl enable mysqld_exporter 设置开机启动服务
[root@db mysqld_exporter]# systemctl restart mysqld_exporter 重启服务
[root@db-mysql mysqld_exporter]# netstat -anplt|grep exporter 查看端口信息
tcp6 0 0 :::9090 :::* LISTEN 686/node_exporter
tcp6 0 0 192.168.203.147:9090 192.168.203.145:57370 ESTABLISHED 686/node_exporter
[root@db-mysql mysqld_exporter]# ps aux|grep exporter 查看进程信息
root 686 0.1 0.5 717952 22428 ? Ssl 09:39 0:03 /node_exporter/node_exporter --web.listen-address 0.0.0.0:9090
root 1834 1.5 0.2 1235704 8016 ? Ssl 10:20 0:00 /usr/local/mysqld_exporter/mysqld_exporter
2.5在Prometheus.yml中添加mysqld_exporter的配置
[root@nfs-ansible-prom prom]# vim /prom/prometheus/prometheus.yml
- job_name: "db_mysqld_exporter"
static_configs:
- targets: ["192.168.203.147:9104"]
[root@nfs-ansible-prom prom]# systemctl restart prometheus 重启服务
登录Prometheus查看是否控制到mysqld