grafana

基于elk 实现nginx日志收集与数据分析。

北城以北 提交于 2019-12-21 04:01:45
一。背景 前端web服务器为nginx,采用filebeat + logstash + elasticsearch + granfa 进行数据采集与展示,对客户端ip进行地域统计,监控服务器响应时间等。 二。业务整体架构: nginx日志落地——》filebear——》logstash——》elasticsearch——》grafna(展示) 三。先上个效果图,慢慢去一步步实现 如上只是简单的几个实用的例子,实际上有多维度的数据之后还可以定制很多需要的内容,如终端ip访问数,国家、地区占比,访问前十的省份,请求方法占比,referer统计,user_agent统计,慢响应时间统计,更有世界地图坐标展示等等,只要有数据就能多维度进行展示。这里提供模板搜索位置大家可以查找参考: https://grafana.com/dashboards 四,准备条件 需要具备如下条件: 1.nginx日志落地,需要主要落地格式,以及各个字段对应的含义。 2.安装filebeat。 filebeat轻量,功能相比较logstash而言比较单一。 3.安装logstash 作为中继服务器。这里需要说明一下的是,起初设计阶段并没有计划使用filebeat,而是直接使用logstash发往elasticsearch,但是当前端机数量增加之后logstash数量也随之增加

360 基于 Prometheus的在线服务监控实践

纵然是瞬间 提交于 2019-12-20 20:39:37
转自: https://mp.weixin.qq.com/s/lcjZzjptxrUBN1999k_rXw 主题简介: Prometheus基础介绍 Prometheus打点及查询技巧 Prometheus高可用和服务发现经验 初衷 最近参与的几个项目,无一例外对监控都有极强的要求,需要对项目中各组件进行详细监控,如服务端API的请求次数、响应时间、到达率、接口错误率、分布式存储中的集群IOPS、节点在线情况、偏移量等。 比较常见的方式是写日志,将日志采集到远端进行分析和绘图,或写好本地监控脚本进行数据采集后,通过监控系统客户端push到监控系统中进行打点。基本上我们需要的都能覆盖,但仍然有一些问题在使用上不太舒服,如在大规模请求下日志采集和分析的效率比较难控制,或push打点的粒度和纬度以及查询不够灵活等。 后来在同事对《Google SRE》这本书中的一些运维思想进行一番安利后,抱着试一试的态度,开始尝试使用Prometheus做为几个项目的监控解决方案。 Prometheus的特点 多维数据模型(时序数据由 metric 名和一组K/V标签构成)。 灵活强大的查询语句(PromQL)。 不依赖存储,支持local和remote(OpenTSDB、InfluxDB等)不同模型。 采用 HTTP协议,使用Pull模式采集数据。 监控目标,可以采用服务发现或静态配置的方式。

Graphing slow counters with prometheus and grafana

本小妞迷上赌 提交于 2019-12-20 10:11:37
问题 We graph fast counters with sum(rate(my_counter_total[1m])) or with sum(irate(my_counter_total[20s])) . Where the second one is preferrable if you can always expect changes within the last couple of seconds. But how do you graph slow counters where you only have some increments every couple of minutes or even hours? Having values like 0.0013232/s is not very human friendly. Let's say I want to graph how many users sign up to our service (we expect a couple of signups per hour). What's a

采用 SpringBoot Actuator + InfluxDB + Grafana 实现小平台监控

会有一股神秘感。 提交于 2019-12-19 20:00:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 概述 SpringBoot应用对监控要求不是高,可以采用 SpringBootAdmin就可以搞定,但是如果需要长期,并且希望后期能优化应用,提高平台抗风险性时,可以使用InfluxDB保存应用的性能度量数据。 InfluxDB可以支持海量数据存储 Grafana可以显示不同维度的数据 操作步骤 SpringBoot Sample用例 生成 SpringBoot Sample 项目地址 https://start.spring.io/ 添加依赖包与配置 依赖包配置 <!---收集各种性能指标插件--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!---通过此插件直接写数据到Influx DB--> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-influx</artifactId> </dependency> Influx DB配置 management: metrics: export:

Docker容器监控

陌路散爱 提交于 2019-12-19 19:48:58
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.3.1 容器监控 利用docker compose组合应用并利用scale可以快速对容器进行扩充,而docker compose启动的服务容器都在同一台宿主机上,对于一个宿主机上运行多个容器应用时,容器的运行情况,如:CPU使用率,内存使用率,网络状态,磁盘空间等一系列随时间变化的时序数据信息,都需要进行了解,因此监控是必须的。 容器监控方案选择 对于容器的监控方案可谓多种多样,除了docker本身自带的 docker stats 命令,还有Scout,Data Dog,Sysdig Cloud,Sensu Monitoring Framework,CAdvisor等都可以对容器进行监控。 通过 docker stats 命令可以很方便的看到当前宿主机上所有容器的CPU,内存,以及网络流量等数据。但 docker stats 命令的缺点是只是统计当前宿主机的所有容器,为获取的数据是实时的,没有地方存储,也没有报警功能。 而Scout,Data Dog,Sysdig Cloud虽然都提供了教完善的服务,但是它们都是托管的服务且都是收费的,Sensu Monitoring Framework集成度较高,也免费,但是部署过于复杂,综合考虑选择CAdvisor做监控工具。 CAdvisor出自Google

How to show “33 minutes ago” on Grafana dashboard with InfluxDB?

Deadly 提交于 2019-12-18 16:49:31
问题 I have recently set up Grafana with InfluxDB. I'd like to show a panel that indicates how long it has been since an event took place. Examples: Server last reported in: 33 minutes ago Last user sign up: 17 minutes ago I can get a single metric pretty easily with the following code: SELECT time, last("duration") as last_duration FROM custom_events ORDER BY time DESC But I can't seem to get Grafana to do what I want with the time field. Any suggestions? 回答1: Since Grafana(4.6.0) this is now

[Linux] 安装grafana并且添加influxdb监控

99封情书 提交于 2019-12-18 13:34:18
安装grafana,官网提供了ubuntu的安装包,直接进行安装 wget https://dl.grafana.com/oss/release/grafana_6.5.1_amd64.deb dpkg -i grafana_6.5.1_amd64.deb update-rc.d grafana-server defaults 95 10 service grafana-server start 使用influxdb的http api添加数据和查询数据 添加数据 while true;do curl -i -XPOST 'http://127.0.0.1:8086/write?db=sinamail' --data-binary "webface,ip=10.2.2.1,httpstatus=404 prototype=\"GET /favicon.ico HTTP/1.1\" `date +%s`000000000";done 查询数据 curl -GET 'http://127.0.0.1:8086/query?pretty=true' --data-urlencode "db=sinamail" --data-urlencode "q=SELECT * FROM webface where httpstatus='404'" 添加grafana的influxdb数据源

zabbix监控服务

烈酒焚心 提交于 2019-12-18 11:51:42
zabbix介绍     Zabbix简介    Zabbix 是一个高度集成的网络监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用。具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制).Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置: Client(被监控)端: 主机通过安装 agent 方式采集数据,网络设备通过 SNMP 方式采集数据 Server (服务)端: 通过收集 SNMP 和 agent 发送的数据,写入数据库再通过 php+apache 在 web 前端展示。 Zabbix功能:   1. 支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)   2. 支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本)   3. 支持分布式,能集中展示、管理分布式的监控点   4. 扩展性强,server 提供通用接口(api 功能),可以自己开发完善各类监控(根据相关接口编写程序实现) zabbix原理图: 编写插件容易,可以自定义监控项,报警级别的设置。 数据收集:   1. 可用和性能检测   2. 支持 snmp(包括 trapping and polling ),IPMI

使用 Rancher 管理 AWS EKS 集群

拜拜、爱过 提交于 2019-12-17 20:51:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> James Sun AWS解决方案架构师。James 拥有超过 15 年的信息技术行业从业经验。加入 AWS 前,他曾在 MapR、惠普、NetApp、雅虎和 EMC 等公司担任多个高级技术职位。他拥有斯坦福大学博士学位。 本文原发于亚马逊AWS官方博客。 Rancher 是一个流行的开源企业级Kubernetes管理平台,许多组织使用它来管理混合部署的Kubernetes 集群。Rancher 支持 Amazon Elastic Container Service for Kubernetes (Amazon EKS) ,借助此功能,Rancher用户可以直接通过Rancher平台来对AWS EKS进行直接纳管。 Amazon EKS 与 Rancher 结合后,使用方便,可兼具您在 Rancher 中养成的使用习惯与期望从 AWS 获得的功能、可靠性和性能。Amazon 的托管 Kubernetes 解决方案 EKS,可以让您 在云中快速创建可扩展的 Kubernetes 实例,而Rancher拥有简洁易用的UI和针对Kubernetes的更多拓展功能,强强组合将带来企业Kubernetes使用的操作体验和性能的极大提升。 不论你是EKS和Rancher的新手用户,还是对EKS或Rancher都有所了解

Prometheus神器之监控K8s集群

北慕城南 提交于 2019-12-17 10:51:40
Prometheus 简介 Prometheus 是SoundCloud开源的一款开源软件。它的实现参考了Google内部的监控实现,与源自Google的Kubernetes结合起来非常合适。另外相比influxdb的方案,性能更加突出,而且还内置了报警功能。它针对大规模的集群环境设计了拉取式的数据采集方式,你只需要在你的应用里面实现一个 metrics 接口,然后把这个接口告诉 Prometheus 就可以完成数据采集了。 安装Prometheus 首先我们使用 ConfigMap 的形式来设置 Prometheus 的配置文件,如下 apiVersion: v1 kind: ConfigMap metadata: name: prometheus-configuration labels: app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: ingress-nginx name: prometheus-configuration namespace: ingress-nginx data: prometheus.yml: |- global: scrape_interval: 10s scrape_configs: - job_name: 'ingress-nginx-endpoints'