centos7下prometheus+grafana监控
一、简介
prometheus是由谷歌研发的一款开源的监控软件,目前已经被云计算本地基金会托管,是继k8s托管的第二个项目。
二、优势
易于管理
轻易获取服务内部状态
高效灵活的查询语句
支持本地和远程存储
采用http协议,默认pull模式拉取数据,也可以通过中间网关push数据
支持自动发现
可扩展
易集成
三、prometheus运行流程
四、监控的目的
google指出,监控分为白盒监控和黑盒监控之分。
白盒监控:通过监控内部的运行状态及指标判断可能会发生的问题,从而做出预判或对其进行优化。
黑盒监控:监控系统或服务,在发生异常时做出相应措施。
监控的目的如下:
1、根据历史监控数据,对为了做出预测
2、发生异常时,即使报警,或做出相应措施
3、根据监控报警及时定位问题根源
4、通过可视化图表展示,便于直观获取信息
一、Grafana介绍
Grafana是开源的度量分析和可视化工具,,可以通过将采集的数据查询然后可视化的展示,并实现报警。它主要有以下六大特点:
1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
二、Prometheus服务端安装
以下操作皆在监控主机(192.168.10.149)上执行。
2.0 关闭机器防火墙
# systemctl stop firewalld
# systemctl disable firewalld
2.1 安装 go 环境
由于Prometheus是由go语言开发的,所以在安装Prometheus之前需要先在监控主机上安装go环境。这里采用源码编译的方式安装。
安装包下载以后,上传至监控主机的 /usr/local 目录下。
2.1.1 解压安装包
# tar -xvf go1.13.1.linux-amd64.tar.gz
2.1.2 配置环境变量
添加/usr/loacl/go/bin目录到PATH变量中。
添加到/etc/profile 或$HOME/.profile都可以
# vim /etc/profile
// 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
// wq保存退出后source一下
# source /etc/profile
执行go version,如果现实版本号,则Go环境安装成功。
2.2 安装Prometheus
安装包下载地址:https://prometheus.io/download/#prometheus
2.2.1 安装
将下载后安装包,上传至 /usr/local 目录下
解压安装包:
# tar -xvf prometheus-2.4.0.linux-amd64.tar.gz
# mv prometheus-2.4.0.linux-amd64/ prometheus
2.2.2 启动
Prometheus的配置文件位于 /usr/local/Prometheus/prometheus.yml ,此处采用默认配置。
进入解压后的文件夹下,启动Prometheus。
# cd prometheus
# ./prometheus --config.file=/usr/local/prometheus/prometheus.yml &
后台启动
进入这个目录 /etc/systemd/system 将这个文件放进去。
2.2.3 验证
浏览器打开http://192.168.xxx.xxx:9090(IP:9090端口)即可打开普罗米修斯自带的监控页面
从官网下载 node_exporter-0.18.1.linux-amd64.tar.gz
安装到被监控主机上
tar xf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporte
启动服务
nohup ./node_exporter &
关于nohup
nohup 是 Linux 的一个常用命令,当你想要在退出账户或者关闭终端后进程仍在运行时,就可以使用 nohup 命令。
nohup 就是不挂断的意思(no hang up)。
查看端口号
ss -ntl | grep 9100
修改server端配置文件
/usr/local/Prometheus
vi prometheus.yml
依次添加agent
访问server端ip 192.168.xxx.xxx:9090
默认监控图像
Wbe查看是否成功
每在server端添加一台agent,就会在页面显示到,被监控主机。
欢迎进群讨论:QQ群294668383(有意向可以添加)