一、普罗米修斯介绍
在古希腊神话中普罗米修斯曾与智慧女神雅典娜共同创造了人类,普罗米修斯负责用泥土雕塑出人的形状,雅典娜则为泥人灌注灵魂,并教会了人类很多知识。普罗米修斯还反抗宙斯,将火种带到人间。在软件开发领域,普罗米修斯是一款开源的监控神器。
Prometheus架构:
prometheus是一个用Go编写的时序数据库,可以支持多种语言客户端,架构如下:
Prometheus安装过程:
- 安装go 语言环境
- 在监控服务器上安装prometheus
- 在被监控环境上安装export
- 安装grafana
1、安装go语言环境
由于Prometheus 是用golang开发的,所以首先安装一个go环境,Go语言是跨平台,支持Windows、Linux、Mac OS X等系统,还提供有源码,可编译安装。
Linux :https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
#解压
tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
#配置环境变量
vi /etc/profile
#在文件的最后添加如下内容:
export PATH=$PATH:/usr/local/go/bin
#使环境变量生效
source /etc/profile
#检验安装是否成功,查看版本信息
go version
2、在监控服务器上安装prometheus
开始安装prometheus,首先先去官网下载对应系统的版本:https://prometheus.io/download/
下载后上传到部署的服务器,解压:
tar -vxf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local/
接着要配置一下监控的配置文件:prometheus.yml
#进入安装目录
cd /usr/local/prometheus-2.5.0.linux-amd64/
vi prometheus.yml
在这里添加被监控的节点ip和端口(9100),需要注意的是yaml文件的语法。
配置完成后,启动prometheus:
#启动1: 在当前目录输入命令
./prometheus
#启动2: 后台启动,并输出日志
nohup ./prometheus --config.file=prometheus.yml --web.enable-lifecycle > /opt/zhou/Prometheus/prometheus.log 2>&1 &
通过如下URL可以打开prometheus的自带监控界面: IP:9090,点击targets 跳转到监控目标,这里展现了两个监控对象。红框的表示部署的prometheus
一个显示蓝色一个显示红色,蓝色已经安装了export,其他未安装的显示为红色。
3、安装系统监控exporter
在被监控的服务器上也要安装exporter。
下载https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz
#解压
tar xvf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/
#后台运行并挂起
nohup /usr/local/node_exporter-0.16.0.linux-amd64/node_exporter &
执行后,我们回到prometheus查看监控目标,可以看到159主机也显示为蓝色了
4、安装grafana
grafana其实就是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,经常被用作基础设施的时间序列数据和应用程序分析的可视化。相当于给普罗米修斯换个好看的皮肤。
grafana下载地址:https://grafana.com/grafana/download
也可以wget联网下载
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.3-1.x86_64.rpm
sudo yum localinstall grafana-5.2.3-1.x86_64.rpm
也可以先下载再去安装
#安装
rpm -i grafana-5.2.3-1.x86_64.rpm
启动
#接着把grafana加入到系统服务,将服务启动
sudo /sbin/chkconfig --add grafana-server
#启动
sudo service grafana-server start
启动后,打开如下URL,端口采用默认的3000。账号密码默认:admin/admin
进去后会要求修改密码,然后点击add datasource,选中 Prometheus 2.0 Stats后,就可以呈现如下的监控面板了:
基本安装就是这样了。
二、一些常用监控举例
仪表盘可视化模板:grafana dashboard:https://grafana.com/dashboards
插件:grafana plugins:https://grafana.com/plugins
2.1 监控linux机器(node-exporter)
https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
(1)被监控的机器安装node-exporter
tar -xvf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/
(2)启动node-exporter
/usr/local/node_exporter-0.16.0.linux-amd64/node_exporter &
(3)普罗米修斯配置文件添加监控项
vi /usr/local/Prometheus/prometheus.yml
- job_name: 'Prometheus'
static_configs:
- targets: ['192.168.152.174:9100']
labels:
instance: Prometheus
# 重启prometheus
nohup ./prometheus --config.file=prometheus.yml --web.enable-lifecycle > /opt/zhou/Prometheus/prometheus.log 2>&1 &
可以点击导入已经画好的dashboard.json文件,也可以直接在下边复制
链接:https://pan.baidu.com/s/1DQtr5U39r0kmKzpzAzZSsA
提取码:xlb2
最后导入即可。
2.2 对数据库mysql监控
1、需要下载 MySQL 的 exporter
链接: https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz.
上传至 MySQL 服务器上,解压包
#解压
tar xvf mysqld_exporter-0.12.1.linux-amd64.tar.gz
#执行命令
export DATA_SOURCE_NAME='root:123456@(127.0.0.1:3306)/'
其中:
root 为数据库用户名
123456 为数据库密码
127.0.0.1 为数据库 IP
3306 为数据库端口号
/ 后边也可以跟数据库
2、启动 mysql exporter
进入到解压后的文件夹中,执行命令
# 启动
nohup ./mysqld_exporter &
# 监控 nohup.out日志
tail -f nohup.out
3、启动成功之后,进入prometheus.yal 配置文件中,修改 prometheus 的配置文件 prometheus.yml。
增加监控 MySQL 的 job(注意缩进格式)
- job_name: 'mysql'
static_configs:
- targets: ['192.168.152.173:9104']
4、重启 prometheus,进入 prometheus 的 UI 界面,在 status-targets 页面下,可以看
到 MySQL exporter 的状态
nohup ./prometheus --config.file=prometheus.yml --web.enable-lifecycle > /opt/zhou/Prometheus/prometheus.log 2>&1 &
5、在 Grafana 中添加 MySQL 的监控模板
在 grafana 官网模板中找到 MySQL 监控模板 Mysql Overview,id 为 8564,并导入到 Grafana 中(具体操作步骤参考上面导入 Linux 监控模板操作)
https://grafana.com/grafana/dashboards/8564/revisions
添加数据源
导入刚刚下载的仪表盘模板