[toc]

1.安装prometheus

https://prometheus.io/download/ 下载相应版本,安装到服务器上
官网提供的是二进制版,解压就能用,不需要编译

[root@server ~]# tar xf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local/ 
[root@server ~]# mv /usr/local/prometheus-2.5.0.linux- amd64/ /usr/local/prometheus 
#直接使用默认配置文件启动 
[root@server ~]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" & 
# 确认端口(9090) 
[root@server ~]# lsof -i:9090

2. prometheus界面

通过浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面

image.png

默认只监控了本机一台,点Status --》点Targets --》可以看到只监控了本机

image.png

3. 主机数据展示

通过http://服务器IP:9090/metrics可以查看到监控的数据

image.png

在web主界面可以通过关键字查询监控项

process_cpu_seconds_total

image.png

4. 监控远程Linux主机

  1. 在远程linux主机(被监控端agent1)上安装node_exporter组件
    下载地址: https://prometheus.io/download/
[root@agent1 ~]# tar xf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/ 
[root@agent1 ~]# mv /usr/local/node_exporter-0.16.0.linux- amd64/ /usr/local/node_exporter 
# 里面就一个启动命令node_exporter,可以直接使用此命令启动 
[root@agent1 ~]# ls /usr/local/node_exporter/ LICENSE node_exporter NOTICE 
[root@agent1 ~]# nohup /usr/local/node_exporter/node_exporter & 
# 确认端口(9100) 
[root@agent1 ~]# lsof -i:9100

扩展: nohup命令: 如果把启动node_exporter的终端给关闭,那么进程也会
随之关闭。nohup命令会帮你解决这个问题。

  1. 通过浏览器访问http://被监控端IP:9100/metrics就可以查看到

node_exporter在被监控端收集的监控信息

image.png

  1. 回到prometheus服务器的配置文件里添加被监控机器的配置段
在主配置文件最后加上下面三行 
[root@server ~]# vim /usr/local/prometheus/prometheus.yml 
	- job_name: 'agent1' # 取一个job名称来代 表被监控的机器 
		static_configs: 
		- targets: ['10.1.1.14:9100'] # 这里改成被监控机器 的IP,后面端口接9100 改完配置文件后,重启服务 
[root@server ~]# pkill prometheus 
[root@server ~]# lsof -i:9090 # 确认端口没有进程占 用
[root@server ~]# /usr/local/prometheus/prometheus -- config.file="/usr/local/prometheus/prometheus.yml" & [root@server ~]# lsof -i:9090 # 确认端口被占用,说 明重启成功
  1. 回到web管理界面 --》点Status --》点Targets --》可以看到多了一台监控目标

image.png

5. 监控远程MySQL

  1. 在被管理机agent1上安装mysqld_exporter组件
    下载地址: https://prometheus.io/download/
# 安装mysqld_exporter组件 
[root@agent1 ~]# tar xf mysqld_exporter-0.11.0.linux- amd64.tar.gz -C /usr/local/ 
[root@agent1 ~]# mv /usr/local/mysqld_exporter- 0.11.0.linux-amd64/ /usr/local/mysqld_exporter 
[root@agent1 ~]# ls /usr/local/mysqld_exporter/ LICENSE mysqld_exporter NOTICE 

# 安装mariadb数据库,并授权 
[root@agent1 ~]# yum install mariadb\* -y 
[root@agent1 ~]# systemctl restart mariadb 
[root@agent1 ~]# systemctl enable mariadb 
[root@agent1 ~]# mysql

MariaDB [(none)]> grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123'; (注意:授权ip为localhost,因为不是prometheus服务器来直接找mariadb 获取数据,而是prometheus服务器找mysql_exporter,mysql_exporter 再找mariadb。所以这个localhost是指的mysql_exporter的IP)

MariaDB [(none)]> flush privileges; 
MariaDB [(none)]> quit 

# 创建一个mariadb配置文件,写上连接的用户名与密码(和上面的授权的用户名 和密码要对应) 
[root@agent1 ~]# vim /usr/local/mysqld_exporter/.my.cnf 
[client] 
user=mysql_monitor 
password=123 

# 启动mysqld_exporter [root@agent1 ~]# nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf & 

# 确认端口(9104) 
[root@agent1 ~]# lsof -i:9104
  1. 回到prometheus服务器的配置文件里添加被监控的mariadb的配置段
# 在主配置文件最后再加上下面三行 
[root@server ~]# vim /usr/local/prometheus/prometheus.yml 
	- job_name: 'agent1_mariadb' # 取一个job 名称来代表被监控的mariadb 
	static_configs: 
		- targets: ['10.1.1.14:9104'] # 这里改成 被监控机器的IP,后面端口接9104 改完配置文件后,重启服务 
[root@server ~]# pkill prometheus 
[root@server ~]# lsof -i:9090 
[root@server ~]# /usr/local/prometheus/prometheus -- config.file="/usr/local/prometheus/prometheus.yml" & [root@server ~]# lsof -i:9090
  1. 回到web管理界面 --》点Status --》点Targets --》可以看到监控mariadb了

image.png

mysql_global_status_threads_connected

image.png

Q.E.D.


只有创造,才是真正的享受,只有拚搏,才是充实的生活。