普罗米修斯原理架构图
一、环境准备
1、时间同步
systemctl restart ntpd
systemctl enable ntpd
2、关闭防火墙,selinux
systemctl stop firewalld
systemctl disable firewalld
iptables -F
二、安装prometheus
1、下载安装包
从 https://prometheus.io/download/ 下载相应版本,安装到服务器上,官网提供的是二进制版,解压就能用,不需要编译
tar xf 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" &
确认端口(9090)
lsof -i:9090
prometheus界面
通过浏览器访问 http://服务器IP:9090 就可以访问到prometheus的主界面
默认只监控了本机一台,点Status -> 点Targets -> 可以看到只监控了本机
通过 http://服务器IP:9090/metrics 可以查看到监控的数据
在web主界面可以通过关键字查询监控项
2、监控远程linux主机
在远程linux主机(被监控端)上安装node_exporter组件,下载地址: https://prometheus.io/download/
tar xf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter
里面就一个启动命令node_exporter,可以直接使用此命令启动
ls /usr/local/node_exporter/
nohup /usr/local/node_exporter/node_exporter &
确认端口(9100)
lsof -i:9100
通过浏览器访问 http://被监控端IP:9100/metrics 就可以查看到node_exporter在被监控端收集的监控信息
回到prometheus服务器的配置文件里添加被监控机器的配置段
vim /usr/local/prometheus/prometheus.yml
点击查看代码
#在主配置文件最后加上下面三行
- job_name: 'agent1' # 取一个job名称来代表被监控的机器
static_configs:
- targets: ['10.1.1.14:9100'] # 这里改成被监控机器的IP,后面端口接9100
改完配置文件后,重启服务
pkill prometheus
lsof -i:9090
#确认端口没有进程占用
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
lsof -i:9090
#确认端口被占用,说明重启成功
回到web管理界面 -> 点Status -> 点Targets -> 可以看到多了一台监控目标
3、监控远程mysql
在被监控端上安装mysqld_exporter组件,下载地址: https://prometheus.io/download/
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/
链接进入数据库 mysql -u用户名 -p密码
mysql[none]> grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123';
(注意:授权ip为localhost,因为不是prometheus服务器来直接找mysql获取数据,而是prometheus服务器找mysql_exporter,mysql_exporter再找mysql,所以这个localhost是指的mysql_exporter的IP)
mysql[none]> flush privileges;
mysql[none]> exit
创建一个mysql配置文件,写上连接的用户名与密码(和上面的授权的用户名和密码要对应)
vim /usr/local/mysqld_exporter/.my.cnf
点击查看代码
[client]
user=mysql_monitor
password=123
启动mysqld_exporter
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
确认端口(9104)
lsof -i:9104
回到prometheus服务器的配置文件里添加被监控的mysql的配置段
vim /usr/local/prometheus/prometheus.yml
点击查看代码
#在主配置文件最后再加上下面三行
- job_name: 'agent1_mysql' # 取一个job名称来代表被监控的mysql
static_configs:
- targets: ['10.1.1.14:9104'] # 这里改成被监控机器的IP,后面端口接9104
改完配置文件后,重启服务
pkill prometheus
lsof -i:9090
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
lsof -i:9090
回到web管理界面 -> 点Status -> 点Targets -> 可以看到监控mysql了
二、安装grafana
下载grafana包
下载地址:https://grafana.com/grafana/download
这里选择的rpm包,下载后直接rpm -ivh安装就OK
rpm -ivh /root/Desktop/grafana-5.3.4-1.x86_64.rpm
systemctl start grafana-server
systemctl enable grafana-server
确认端口(3000)
lsof -i:3000
通过浏览器访问 http://grafana服务器IP:3000 就到了登录界面,使用默认的admin用户,admin密码就可以登陆了
下面我们把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得到prometheus的数据。
然后为添加好的数据源做图形显示
在prometheus页面查询想要监控的键值,复制到grafana的对应位置
保存
最后在dashboard可以查看到
grafana图形显示mysql监控数据
在grafana图形界面导入相关json文件
点import导入后,报prometheus数据源找不到,因为这些json文件里默认要找的就是叫Prometheus的数据源,但我们前面建立的数据源却是叫prometheus_data,那么请自行把原来的prometheus_data源改名为Prometheus即可(注意:第一个字母P是大写),然后再回去刷新,就有数据了(如下图所示)
过段时间再看,就会有数据了(如下图所示)