Prometheus and Grafana

服务监控工具

基于 Prometheus + Grafana 搭建的监控平台

Prometheus 是一种可以使用拉动机制监控微服务和应用程序指标的工具。它支持Prom Query语言,用于搜索指标和创建自定义指标。

Grafana 是一个用于分析和检测的开放平台

blackbox_exporter 是 Prometheus 官方提供的 exporter 之一,黑盒测试工具,支持 HTTP, HTTPS, DNS, TCP, ICMP的监控数据采集

node_exporter 是官方提供的 exporter 之一,用于收集主机资源负载信息,如CPU 内存 磁盘 网络等信息。

安装 Grafana

详细安装过程见官方文档http://docs.grafana.org/installation/debian/

1
2
3
4
5
wget https://dl.grafana.com/oss/release/grafana_5.4.2_amd64.deb
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_5.4.2_amd64.deb

sudo service grafana-server start

安装 Grafana 插件

官网选择想要的插件,这里推荐安装几个常用的插件

1
2
3
4
5
grafana-cli plugins install grafana-piechart-panel
grafana-cli plugins install raintank-worldping-app

# 插件重启生效
sudo service grafana-server restart

安装 node_exporter

1
2
3
wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
tar zxvf node_exporter-0.17.0.linux-amd64.tar.gz
./node_exporter-0.17.0.linux-amd64/node_exporter

安全性

大多数 PrometheusGrafana 服务是安装在内网或私有网络的,加上 basic auth 认证可以有效的防止大多数攻击。

node_exporter 服务是默认开启在 http://example.com:9100/metrics,而大多数监控点是在外网的,通过Google, Zoomeye, Shodan 等搜索引擎进行搜索,可以看到有非常多的 /metrics 页面暴露在外网。这会有潜在安全隐患吗?答案是肯定的。

事实上 node_exporter 是简单的只读目标,因此没有太多可利用的。此外,从安全角度来看,大多数指标都无趣,但也有例外。

如果你不想有被看到服务器运行状况的风险,通常建议使用简单的防火墙规则来阻止公共互联网访问,并且通过反向代理(例如nginx)来添加TLS和某种身份验证。Prometheus服务器可以支持SSL / x509证书和基本身份验证。

如果我的文章对你有很大帮助 那么不妨?
0%