基础环境
操作系统:CentOS 7.7
MySQL:5.7
wget https://studygolang.com/dl/golang/go1.13.5.linux-amd64.tar.gz #下载go安装包
tar -C /usr/local -zxvf go1.13.5.linux-amd64.tar.gz #解压到/usr/local目录下
vim /etc/profile #打开环境变量配置文件,末尾写入如下内容(位置根据实际的存放位置为准)
export GO_HOME=/usr/local/go
export PATH=$GO_HOME/bin:$PATH
#添加完成后:wq保存退出
source /etc/profile # 重启环境变量
go version #查看版本号验证是否安装成功
下载Prometheus安装包 传送门
下载安装Prometheus及环境配置
确定要下载的安装包后,右键复制链接地址,在终端使用wget进行下载,操作命令如下:
mkdir -p /software/installs #安装包安装目录,根据自己习惯设定
mkdir -p /software/pkgs #安装包存储目录,根据自己习惯设定
cd /software/pkgs
wget https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-amd64.tar.gz #下载Prometheus安装包
#创建prometheus用户
groupadd prometheus
useradd -g prometheus prometheus -d /software/installs/prometheus
cd /software/pkgs
tar -zxvf prometheus-2.14.0.linux-amd64.tar.gz -C /software/installs/ #解压包至指定目录,根据自己习惯
mv /software/installs/prometheus-2.14.0.linux-amd64 /software/installs/prometheus
cd /software/installs/prometheus #进入解压后的文件
mkdir {data,cfg,logs,bin} -p
mv prometheus promtool bin/
mv prometheus.yml cfg/
chown -R prometheus.prometheus *
#设置环境变量
vim /etc/profile
#末尾加入如下内容
export PROMETHEUS_HOME=/software/installs/prometheus
export PATH=$PROMETHEUS_HOME/bin:$PATH
#添加后确认无误:wq保存并退出
source /etc/profile #重新加载环境变量
创建prometheus.service 的 systemd unit 文件
vim /etc/systemd/system/prometheus.service
#加入如下内容
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/software/installs/prometheus/bin/prometheus --config.file=/software/installs/prometheus/cfg/prometheus.yml --storage.tsdb.path=/software/installs/prometheus/data #这里是重点,注意每个目录与上面保持一致
Restart=on-failure
[Install]
WantedBy=multi-user.target
#完成且检查无误后:wq保存并退出
prometheus.yml配置文件
#末尾处加入如下内容
labels:
instance: prometheus
- job_name: node
static_configs:
- targets: ['localhost:9100'] #博主的node_exporter安装在本地,如果安装在其他机器使用IP即可,9100是node_exporter的端口号
labels:
instance: server1 #名称,根据自己爱好取就行了
- job_name: mysql
static_configs:
- targets: ['localhost:9104'] #博主的mysqld_exporter安装在本地,如果安装在其他机器使用IP即可,9104是mysqld_exporter的端口号
labels:
instance: db1 #名称,根据自己爱好取就行了
- job_name: redis
static_configs:
- targets: ['localhost:9121'] #博主的redis_exporter安装在本地,如果安装在其他机器使用IP即可,9121是redis_exporter的端口号
labels:
instance: redis1 #名称,根据自己爱好取就行了
#添加完成后:wq保存退出
启动prometheus服务
systemctl daemon-reload
systemctl enable prometheus.service
systemctl start prometheus.service
这里遇到了重启失败的情况,经过多次尝试终于找到问题,由于是yml格式,对缩进格式要求非常严格,要保证添加的配置-job_name和原来已有的保持同级,处理过程为:
检查prometheus.service文件配置目录是否正确,确认没有问题
执行prometheus --config.file=/software/installs/prometheus/cfg/prometheus.yml
后看到启动prometheus服务详情信息发现其格式有误,这里真的很难发现问题。
图片中的错误信息为:
level=error ts=2019-12-20T07:22:15.646Z caller=main.go:736 err=“error loading config from “/software/installs/prometheus/cfg/prometheus.yml”: couldn’t load configuration (–config.file=”/software/installs/prometheus/cfg/prometheus.yml"): parsing YAML file /software/installs/prometheus/cfg/prometheus.yml: yaml: line 40: did not find expected key"
格式问题处理完成后,再使用上述命令重启prometheus服务就没有问题了。
具体格式如下,红框内缩进格式一定要保持一致:
查看prometheus运行状态
systemctl status prometheus.service
Prometheus自带有简单的UI, http://ip:9090/targets
如果访问不了,且使用的是阿里云服务器,请到阿里云控制台安全组开放9090端口,开启9090端口后访问结果如下:
node_exporter也是需要go的环境,安装在被监控的设备上(本文是都安装在同一台机器)
下载node_exporter安装包 传送门
下载安装node_exporter及环境配置
确定要下载的安装包后,右键复制链接地址,在终端使用wget进行下载,操作命令如下:
cd /software/pkgs
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
#解压到prometheus目录下
tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /software/installs/prometheus/
mv /software/installs/prometheus/node_exporter-0.18.1.linux-amd64 /software/installs/prometheus/node_exporter #重命名
cd /software/installs/prometheus/node_exporter #进入解压后的文件
mkdir bin -p
mv node_exporter bin/
chown -R prometheus.prometheus /software/installs/prometheus/node_exporter #改变node_exporter所属用户及用户组
#设置环境变量
vim /etc/profile
#末尾加入如下内容
export NODE_EXPORTER_HOME=/software/installs/prometheus/node_exporter
export PATH=$NODE_EXPORTER_HOME/bin:$PATH
#添加后确认无误:wq保存并退出
source /etc/profile #重新加载环境变量
创建node_exporter.service的 systemd unit 文件
vim /usr/lib/systemd/system/node_exporter.service
#加入如下内容
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/software/installs/prometheus/node_exporter/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
#完成且检查无误后:wq保存并退出
启动node_exporter服务
systemctl daemon-reload
systemctl enable node_exporter.service
systemctl start node_exporter.service
查看node_exporter运行状态
systemctl status node_exporter.service
如果访问http://ip:9090/targets看不到node服务节点,且使用的是阿里云服务器,请到阿里云控制台安全组开放9100端口。
注意事项
如果不想使用.service文件处理服务启动,或找不到添加启动服务文件的目录,可以使用如下方式启动并设置后台运行:
#启动服务并设置后台运行
cd /software/installs/prometheus/node_exporter /bin
nohup node_exporter & #启动node_pxporter并后台运行,推荐cd到目录下再运行,这样nohup的日志就会存在当前目录,如果在系统根目录下运行,所有的nohup.out日志文件会混淆
ps -ef | grep mysqld_exporter #检查进程的方式查看是否运行成功,如果没有运行成功就去掉nohup直接运行查看一下错误原因
mysqld_exporter也是需要go的环境,安装在被监控的设备上(本文是都安装在同一台机器)
下载mysqld_exporter安装包 传送门
下载安装mysqld_exporter及环境配置
确定要下载的安装包后,右键复制链接地址,在终端使用wget进行下载,操作命令如下:
cd /software/pkgs
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
#解压到prometheus目录下
tar zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /software/installs/prometheus
mv /software/installs/prometheus/mysqld_exporter-0.12.1.linux-amd64 /software/installs/prometheus/mysqld_exporter #重命名
cd /software/installs/prometheus/mysqld_exporter #进入解压后的文件
mkdir {bin,cfg} -p
mv mysqld_exporter bin/
chown -R prometheus.prometheus /software/installs/prometheus/mysqld_exporter #改变mysqld_exporter所属用户及用户组
#设置环境变量
vim /etc/profile
#末尾加入如下内容
export MYSQLD_EXPORTER_HOME=/software/installs/prometheus/mysqld_exporter
export PATH=$MYSQLD_EXPORTER_HOME/bin:$PATH
#添加后确认无误:wq保存并退出
source /etc/profile #重新加载环境变量
创建mysqld_exporter.service的 systemd unit 文件
vim /usr/lib/systemd/system/mysqld_exporter.service
#加入如下内容
[Unit]
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/software/installs/prometheus/mysqld_exporter/bin/mysqld_exporter --config.my-cnf=/software/installs/prometheus/mysqld_exporter/cfg/.my.cnf
Restart=on-failure
[Install]
WantedBy=multi-user.target
#完成且检查无误后:wq保存并退出
添加mysqld_exporter服务的mysql用户
mysqld_exporter需要连接到Mysql,所以需要Mysql的权限,我们先为它创建用户并赋予所需的权限。
mysql -uroot -p密码
mysql> GRANT REPLICATION CLIENT,PROCESS ON *.* TO 'mysql_monitor'@'localhost' identified by 'mysql_monitor';
mysql> GRANT SELECT ON *.* TO 'mysql_monitor'@'localhost';
创建.my.cnf文件
vim /software/installs/prometheus/mysqld_exporter/cfg/.my.cnf
#加入如下内容
[client]
user=mysql_monitor
password=mysql_monitor
#添加完成后:wq保存并退出
启动mysqld_exporter服务
systemctl daemon-reload
systemctl enable mysqld_exporter.service
systemctl start mysqld_exporter.service
查看mysqld_exporter运行状态
systemctl status mysqld_exporter.service
如果访问http://ip:9090/targets看不到mysql服务节点,且使用的是阿里云服务器,请到阿里云控制台安全组开放9104端口。
注意事项
如果不想使用.service文件处理服务启动,或找不到添加启动服务文件的目录,可以使用如下方式启动并设置后台运行:
#启动服务并设置后台运行
cd /software/installs/prometheus/mysql_exporter/bin
nohup mysqld_exporter -config.my-cnf=../cfg/.my.cnf & ##启动mysqld_exporter并后台运行,推荐cd到目录下再运行,这样nohup的日志就会存在当前目录,如果在系统根目录下运行,所有的nohup.out日志文件会混淆
ps -ef | grep mysqld_exporter #检查进程的方式查看是否运行成功,如果没有运行成功就去掉nohup直接运行查看一下错误原因
下载redis_exporter安装包 传送门
下载安装redis_exporter及环境配置
确定要下载的安装包后,右键复制链接地址,在终端使用wget进行下载,操作命令如下:
cd /software/pkgs
wget https://github.com/oliver006/redis_exporter/releases/download/v1.3.5/redis_exporter-v1.3.5.linux-amd64.tar.gz
#解压到prometheus目录下
tar zxvf redis_exporter-v1.3.5.linux-amd64.tar.gz -C /software/installs/prometheus/
mv /software/installs/prometheus/redis_exporter-v1.3.5.linux-amd64 /software/installs/prometheus/redis_exporter #重命名
cd /software/installs/prometheus/redis_exporter #进入解压后的文件
mkdir {bin,cfg} -p
mv redis_exporter bin/
chown -R prometheus.prometheus /software/installs/prometheus/redis_exporter #改变redis_exporter所属用户及用户组
#设置环境变量
vim /etc/profile
#末尾加入如下内容
export REDIS_EXPORTER_HOME=/software/installs/prometheus/redis_exporter
export PATH=$REDIS_EXPORTER_HOME/bin:$PATH
#添加后确认无误:wq保存并退出
source /etc/profile #重新加载环境变量
创建redis_exporter.service的 systemd unit 文件
vim /usr/lib/systemd/system/redis_exporter.service
#加入如下内容
[Unit]
Description=redis_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/software/installs/prometheus/redis_exporter/bin/redis_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
#完成且检查无误后:wq保存并退出
启动mysqld_exporter服务
systemctl daemon-reload
systemctl enable redis_exporter.service
systemctl start redis_exporter.service
查看mysqld_exporter运行状态
systemctl status redis_exporter.service
如果访问http://ip:9090/targets看不到redis服务节点,且使用的是阿里云服务器,请到阿里云控制台安全组开放9121端口。
注意事项
如果不想使用.service文件处理服务启动,或找不到添加启动服务文件的目录,可以使用如下方式启动并设置后台运行:
#启动服务并设置后台运行
cd /software/installs/prometheus/redis_exporter/bin
nohup ./redis_exporter exporter redis://localhost:6379 & #启动redis_exporter并后台运行,推荐cd到目录下再运行,这样nohup的日志就会存在当前目录,如果在系统根目录下运行,所有的nohup.out日志文件会混淆
ps -ef | grep redis_exporter #检查进程的方式查看是否运行成功,如果没有运行成功就去掉nohup直接运行查看一下错误原因
下载Grafana安装包 传送门
下载安装Grafana及环境配置
确定要下载的安装包后,右键复制链接地址,在终端使用wget进行下载,操作命令如下:
cd /software/pkgs
wget https://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpm
#安装grafana,无需指定安装目录,默认即可,否则可能会由于依赖等问题导致安装失败
yum localinstall grafana-6.5.2-1.x86_64.rpm
设置grafana服务开机自启动及开启服务
systemctl daemon-reload
systemctl enable grafana-server.service
systemctl start grafana-server.service
查看mysqld_exporter运行状态
systemctl status grafana-server.service
登录grafana图形化界面
访问grafana网页: http://ip:3000/login ,默认用户名“admin”默认密码“admin”,登录后重置密码。
如果访问http://ip:3000/login失败,且使用的是阿里云服务器,请到阿里云控制台安全组开放3000端口。
不知道是我操作的问题还是其他原因,登录后修改密码提示未认证,修改密码后登录不跳转,我强制刷新之后又自动登录了,疑惑!
导入Prometheus仪表版,Dashboards–Manage–import。方式同上
在 Granfana.com-Dashboard中填写7362,点击load即可。(https://grafana.com/dashboards 中可以直接搜索MySQL Overview,copy ID to Clipboard,grafana官网提供了大量的仪表板模板可以使用)。方式同上
修改仪表版名称和选择“prometheus”为Prometheus即可(如果这里提示没有数据库,就是前面的data sources没有添加好需要重新检查)
导入Prometheus仪表版,Dashboards–Manage–import
在 Granfana.com-Dashboard中填写2751,点击load即可。(https://grafana.com/dashboards 中可以直接搜索Prometheus Redis,copy ID to Clipboard,grafana官网提供了大量的仪表板模板可以使用)
修改仪表版名称和选择“prom”为Prometheus即可(如果这里提示没有数据库,就是前面的data sources没有添加好需要重新检查)
第一种:使用grafana自带的报警功能
vim /etc/grafana/grafana.ini
# 修改为自己grafana服务的访问地址
domain = 39.98.134.170
root_url = http://ip:3000
修改完成后,保存并退出,然后重启grafana服务:systemctl daemon-reload
systemctl restart grafana-server
如果钉钉收不到报警消息,关闭发送图片开关试试。vim /usr/share/grafana/conf/grafana.ini
systemctl daemon-reload
systemctl restart grafana-server
去grafana添加邮件报警
添加完成后,点击“send test”,就会接收到报警测试邮件:
第二种:使用alertmanager软件报警通知
后期添加
参考资料:
https://blog.csdn.net/baidu_36943075/article/details/91829364
https://blog.csdn.net/yaodunlin/article/details/89159500
https://blog.csdn.net/xiegh2014/article/details/84936174