一、安装概览
- 安装go 语言环境
- 在监控服务器上安装prometheus
- 在被监控环境上安装export
- 安装grafana
二、安装go语言环境
golang的官方下载和安装介绍: https://golang.org/doc/install
备用下载地址:go1.16.linux-amd64.tar.gz
wget https://dl.google.com/go/go1.16.linux-amd64.tar.gz
tar -C /opt/app -xzf go1.16.linux-amd64.tar.gz
echo 'export PATH=$PATH:/opt/app/go/bin' >> /etc/profile.d/go.sh
source /etc/profile
验证一下是否成功,用go version
来验证
三、在监控服务器上安装prometheus
下载对应系统版本:https://prometheus.io/download/
备用下载地址:prometheus-2.25.0.linux-amd64.tar.gz
下载后上传到部署服务器,在服务器上执行解压命令。
tar zxvf prometheus-2.25.0.linux-amd64.tar.gz -C /opt/app/
#为了以后方便,做一个软连接(也可以直接重命名)
ln -s /opt/app/prometheus-2.25.0.linux-amd64 /opt/app/Prometheus
配置监控的配置文件:prometheus.yml
因为是初探prometheus 所以此处暂时未修改,下面增加监控会修改此文件。

启动
—storage.tsdb.path=”/opt/data/prometheus” 指定存储的根路径
–web.listen-address=0.0.0.0:9190 指定监听端口 (默认端口9090)
–config.file=/opt/app/Prometheus/prometheus.yml 指定配置文件
直接启动命令:nohup /opt/app/Prometheus/prometheus --config.file=/opt/app/Prometheus/prometheus.yml &
systemd启动脚本编写:
#编写启动脚本
vim /opt/app/Prometheus/start.sh
#添加以下代码
#!/bin/bash
source /etc/profile
/opt/app/Prometheus/prometheus --config.file=/opt/app/Prometheus/prometheus.yml --web.listen-address=0.0.0.0:9190 > /opt/app/Prometheus/prometheus.log 2>&1
#保存后赋予执行权限
chmod +x /opt/app/Prometheus/start.sh
#编辑systemd启动脚本
vim /usr/lib/systemd/system/prometheus.service
#添加以下代码
[Unit]
Description=Prometheus.service
After=network.service
[Service]
Type=simple
ExecStart=/opt/app/Prometheus/start.sh
KillMode=mixed
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
按照此文档配置的 会修改为:9190
systemd启动脚本支持 start/stop/restart 暂不支持reload
验证:
浏览器打开IP:9190端口即可打开普罗米修斯自带的监控页面

四、安装常用监控exporter
下载地址:https://github.com/prometheus/node_exporter/releases/download/v1.1.1/node_exporter-1.1.1.linux-amd64.tar.gz
备用下载地址:node_exporter-1.1.1.linux-amd64.tar.gz
解压并创建软连接
tar zxvf /opt/app/node_exporter-1.1.1.linux-amd64.tar.gz -C /opt/app/
ln -s /opt/app/node_exporter-1.1.1.linux-amd64 /opt/app/node_exporter
直接启动方式
cd /opt/app/node_exporter-1.1.1.linux-amd64
nohup /opt/app/node_exporter-1.1.1.linux-amd64/node_exporter &
systemd脚本启动
#编写启动脚本
vim /opt/app/node_exporter/start.sh
#添加以下代码 --web.listen-address 指定端口 默认为9100 本文档修改为9101
#!/bin/bash
source /etc/profile
/opt/app/node_exporter/node_exporter --web.listen-address=0.0.0.0:9101 > /opt/app/node_exporter/node_exporter.log 2>&1
#保存后赋予执行权限
chmod +x /opt/app/node_exporter/start.sh
#编辑systemd启动脚本
vim /usr/lib/systemd/system/node_exporter.service
#添加以下代码
[Unit]
Description=node_exporter.service
After=network.service
[Service]
Type=simple
ExecStart=/opt/app/node_exporter/start.sh
KillMode=mixed
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
也支持 stop status restart
修改prometheus配置文件添加监控项,默认node_exporter端口为9100 本文档已修改为9101
vim /opt/app/Prometheus/prometheus.yml
文章最后添加以下代码
- job_name: "linux"
static_configs:
- targets: ['172.15.35.23:9101']
labels:
instance: node1
2、targets:值可以有多个,以英文逗号分割 例如 :[‘172.15.35.23:9101′,’172.15.35.24:9101′,’172.15.35.25:9101’]
3、 labels: instance: node1 根据实际需求更改 ,也可以删除不写

重启prometheus验证效果
pkill prometheus
cd /opt/app/Prometheus/
nohup /opt/app/Prometheus/prometheus --config.file=/opt/app/Prometheus/prometheus.yml &
#使用systemd启动使用以下方式
systemctl restart prometheus.service
打开prometheus自带的监控页面,Status -> Targets 查看:

五、监控mysql(mysqld-exporter)
解压
tar zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /opt/app/
创建配置文件 (port= 数据库端口,user=数据库用户,password=数据库登录密码)
vim /opt/app/mysqld_exporter-0.12.1.linux-amd64/.my.cnf
添加以下代码
[client]
port=3306
user=root
password=qwe123
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
启动
nohup /opt/app/mysqld_exporter-0.12.1.linux-amd64/mysqld_exporter --config.my-cnf=/opt/app/mysqld_exporter-0.12.1.linux-amd64/.my.conf &
修改prometheus配置文件添加监控项,默认msyqld_exporter端口为9104
vim /opt/app/Prometheus/prometheus.yml
文章最后添加以下代码
- job_name: "mysql"
static_configs:
- targets: ['172.15.35.23:9104']

重启prometheus验证效果
pkill prometheus
cd /opt/app/Prometheus/
nohup /opt/app/Prometheus/prometheus --config.file=/opt/app/Prometheus/prometheus.yml &
六、安装grafana
prometheus默认的页面可能没有那么直观,我们可以安装grafana使监控看起来更直观
下载地址:https://grafana.com/grafana/download
wget https://dl.grafana.com/oss/release/grafana-7.4.3-1.x86_64.rpm
rpm -ivh grafana-7.4.3-1.x86_64.rpm
把grafana加入到系统服务,将服务启动
/sbin/chkconfig --add grafana-server
service grafana-server start
初始用户名和密码都是admin
修改默认端口
vim /etc/grafana/grafana.ini
#去掉 http_port 前的;(分号)并将端口修改
;http_port = 3000
http_port = 3003

添加Prometheus数据源
Configuration -> Data Sources ->add data source -> Prometheus

新增Dashboard
离线8919Dashboard 下载地址:node-exporter-for-prometheus-dashboard-cn-8919-v20201010_rev24.json
离线可以选择上传Dashboard json文件
请不要使用 Import via panel json 会导致中文乱码,慎用
Create -> import

从 https://grafana.com/grafana/dashboards 搜索 相应 dashboards的id如8919,然后load。
选择 Prometheus数据源,最后import

查看Dashboard
Dashboards ->Manage

mysql展示图表 建议选择7362