一、概念

Prometheus

时间序列化数据库,我的理解就是将数据打上标签,以时间维度存储。

Grafana

Prometheus中存储的数据,通过Grafana很优美的展现出来。

Prometheus基础架构图详解:

 

适用场景

Prometheus在记录纯数字时间序列方面表现非常好。它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。Prometheus是为服务的可靠性而设计的,当服务出现故障时,它可以使你快速定位和诊断问题。它的搭建过程对硬件和服务没有很强的依赖关系。

Prometheus,它的价值在于可靠性,甚至在很恶劣的环境下,你都可以随时访问它和查看系统服务各种指标的统计信息。 如果你对统计数据需要100%的精确,它并不适用,例如:它不适用于实时计费系统

二、prometheus下载&&安装

官网下载(https://prometheus.io/download),支持Linux、Mac、Windows系统,很好很强大。这里的实例以linux的centos为准。我这下载的prometheus版本是2.3.2

prometheus程序包下载

alertmanager程序包下载(监控告警模块)

node_exporter程序包下载 (监控主机磁盘、内存、CPU等硬件性能指标的采集程序包)

mysqld_exporter程序包下载 ( 监控mysql各种性能指标的采集程序包)

还有其他一些组件程序包,如:blackbox_exporter,consul_exporter,graphite_exporter,haproxy_exporter,memcached_exporter,pushgateway,statsd_exporter

我这边暂时用不到,就不一一列举了。

prometheus安装

下载:

#cd /usr/local/src

#wget https://github.com/prometheus/prometheus/releases/download/v2.3.2/prometheus-2.3.2.linux-amd64.tar.gz -O prometheus.tgz     -O参数将文件名更改成prometheus.tgz

#tar xvf prometheus.tgz

#mv prometheus-2.3.2.linux-amd64 prometheus 重命名

# cat prometheus/prometheus.yml 查看配置文件

#nohup ./prometheus –storage.tsdb.retention=30d   >> /tmp/prometheus.out 2>&1 &        启动 ,数据保留30天

grafana安装

grafana是一个出图展示框架,grafana根据grafana-dashboards来进行展示,grafana-dashboards就类似于grafana的出图配置文件,根据在grafana-dashboards中的定义来确定在页面中需要展示什么指标,需要如何展示等,需要分别对这两个组件进行下载与安装。

#wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.3.linux-amd64.tar.gz –no-check-certificate  #不验证安全证书

#tar xvf  grafana-5.2.3.linux-amd64.tar.gz

# cd grafana-5.2.3/bin/

# nohup ./grafana-server >> /tmp/grafana.out 2>&1 & 后台启动

打开grafana页面(默认帐号和密码:admin/admin,默认的端口为3000,通过地址:http://ip:3000 访问),配置数据来源。

或者yum安装grafana

2、使用yum安装稳定版本的Grafana
或者在CentOS/RedHat上手工安装rpm包
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.1-1.x86_64.rpm
yum install initscripts fontconfig
rpm -Uvh grafana-4.6.1-1.x86_64.rpm
或者使用Grafana的yum仓库
在/etc/yum.repos.d/grafana.repo文件中新增如下内容:
[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
然后在使用yum命令直接安装Grafana
yum install grafana
使用yum安装后相关的软件包的一些信息:
/usr/sbin/grafana-server 主要是grafana-server的安装二进制
/etc/init.d/grafana-server grafana的启动脚本
/etc/sysconfig/grafana-server 存放默认的环境变量
/etc/grafana/grafana.ini grafana存放grafana的默认配置文件
grafana-server.service CentOS 7 的服务管理操作
/var/log/grafana/grafana.log 默认配置中日志存放路径
/var/lib/grafana/grafana.db 默认的sqlite3存放文件
启动服务:
service grafana-server start

登录后选择add data source

指定prometheus地址,这里我们把grafana装在了同一台机器,直接使用localhost的地址配置即可,注意的是Name要填Prometheus ,如下图:

在grafana中导入grafana-dashboards

先下载grafana-dashboards,下载地址:https://github.com/percona/grafana-dashboards/releases

#wgt https://github.com/percona/grafana-dashboards/archive/v1.14.0.tar.gz

#mv  v1.14.0 v1.14.0.tgz

#tar xvf v1.14.0.tgz

在web界面先点击Home,再点击import dashboards,在点击upload.json file。上传json文件,json文件就在上面解压的 v1.14.0.tgz中。

# cd grafana-dashboards-1.14.0/dashboards/

里面有很多json文件,你的需求导入。我这边监控主机及Mysql。只用到了下面这些json文件,将这些文件导入进去

CPU_Utilization_Details_Cores.json
Disk_Performance.json
Disk_Space.json
MySQL_InnoDB_Metrics.json
MySQL_InnoDB_Metrics_Advanced.json
MySQL_Overview.json
MySQL_Performance_Schema.json
MySQL_Replication.json
MySQL_Table_Statistics.json
Summary_Dashboard.json
System_Overview.json

一直import完这些json包。

三、监控节点部署

添加主机监控

下载&&解压node_exporter压缩包

#wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz -O node_exporter.tgz

#tar xvf node_exporter.tgz

#cd node_exporter-0.16.0.linux-amd64/

#nohup ./node_exporter >> /tmp/node.out 2>&1 & 启动节点

配置prometheus主机监控配置列表文件

#cat /usr/local/src/prometheus/prometheus.yml

# cat prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
alertmanagers:
– static_configs:
– targets:
# – alertmanager:9093

# Load rules once and periodically evaluate them according to the global ‘evaluation_interval’.
rule_files:
# – “first_rules.yml”
# – “second_rules.yml”

# A scrape configuration containing exactly one endpoint to scrape:
# Here it’s Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
– job_name: ‘prometheus’

# metrics_path defaults to ‘/metrics’
# scheme defaults to ‘http’.

static_configs:
– targets: [‘192.168.40.4:9090’]
– job_name: ‘node_localhost’
static_configs:
– targets: [‘192.168.40.4:9100’]

# nohup ./prometheus –storage.tsdb.retention=30d   >> /tmp/prometheus.out 2>&1 &  启动prometheus

在浏览其中访问192.168.40.4:9090

#nohup ./grafana-server >> /tmp/grafana.out 2>&1 & 启动grafana

 

为Kubernetes v1.5.2版本安装dashboard图形界面

一、前言 dashboard是一个图形化管理界面,由于我这边的Kubernetes v1.5.2比较老,按官网的安装方法没有效果,现在试试手动安装,使用下面2个yaml文件安装 ...

阅读全文

k8s简单部署

K8s中文手册地址:https://www.kuboard.cn/learning/k8s-basics/kubernetes-basics.html#kubernetes%E5%8A%9F%E8%83%BD   这边安装的Kubernetes v1.5.2 比较...

阅读全文

centos7上openvpn搭建详细教程

写在前面的前言: 因为工作需要安全连接公司的内网机器。对比了几个vpn的配置及工作模式。安全性:openvpn>l2tp/ipsec>pptp ,当然还有ss+代理的模式。...

阅读全文

欢迎留言