使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
想打造 New Relic 那样漂亮的实时监控系统我们只需要 InfluxDB/collectd/Grafana 这三个工具,这三个工具的关系是这样的:
采集数据(collectd)-> 存储数据(InfluxDB) -> 显示数据(Grafana)。
- InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据,看版本号(v0.8.8)就知道这个项目还很年轻;
- collectd 就不用介绍了吧,C 语言写的一个系统性能采集工具;
- Grafana 是纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等。
下面的安装和配置步骤在 Ubuntu 14.04 Server 64bit 版上完成。升级整个系统后重启:
$ sudo apt-get update$ sudo apt-get upgrade$ sudo reboot
安装 InfluxDB
InfluxDB 是 Go 写的,不依赖任何其他包或库,很干净。安装很容易:
$ wget https://s3.amazonaws.com/influxdb/influxdb_latest_amd64.deb$ sudo dpkg -i influxdb_latest_amd64.deb
启动 InfluxDB:
$ sudo /etc/init.d/influxdb startSetting ulimit -n 65536Starting the process influxdb [ OK ]influxdb process was started [ OK ]
启动后打开 web 管理界面 http://192.168.2.183:8083/ 默认用户名和密码是 root 和 root. InfluxDB 的 Web 管理界面端口是 8083,HTTP API 监听端口是 8086,如果需要更改这些默认设定,修改 InfluxDB 的配置文件 /opt/influxdb/current/config.toml 后重启 InfluxDB 就可以了。

InfluxDB
在刚安装好的 InfluxDB 上创建一个名为 collectd 的数据库,可以用命令行创建,也可以用 Web 管理界面操作:
$ curl "http://192.168.2.183:8086/db?u=root&p=root" -d "{\"name\": \"collectd\"}"

InfluxDB
安装 collectd
安装 collectd:
$ sudo apt-get install collectd
配置 collectd 为客户端,收集到数据后直接发给 InfluxDB:
$ sudo vi /etc/collectd/collectd.conf...LoadPlugin network...<Plugin network>Server "192.168.2.183" "25826"</Plugin>...
重启 collectd:
$ sudo /etc/init.d/collectd restart
InfluxDB 现在自带一个 collectd 插件来获取 collectd 客户端发来的数据,以前可没这么方便哦,0.8.4 版本以前只能通过 influxdb-collectd-proxy 这样的第三方程序来连接 collectd 和 InfluxDB. 如果你检查一下服务器上打开的端口就会发现 influxdb 插件启动了一个 25826 端口,如果发现 InfluxDB 数据库里没有(收集到)数据,务必检查这个 25826 端口是否正常启动了:
$ sudo netstat -tuplnActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 622/sshdtcp6 0 0 :::8086 :::* LISTEN 668/influxdbtcp6 0 0 :::22 :::* LISTEN 622/sshdtcp6 0 0 :::8090 :::* LISTEN 668/influxdbtcp6 0 0 :::8099 :::* LISTEN 668/influxdbtcp6 0 0 :::8083 :::* LISTEN 668/influxdbudp6 0 0 :::25826 :::* 668/influxdb
InfluxDB 自带的 collectd 插件默认是关闭的,需要手动配置打开 enabled = true,并填上 database = “collectd” 这一行,这里的 “collectd” 就是我们上面创建的那个数据库,更改配置后记得重启 InfluxDB:
$ sudo vi /opt/influxdb/current/config.toml$ sudo vi /opt/influxdb/shared/config.toml...# Configure the collectd api[input_plugins.collectd]enabled = true# address = "0.0.0.0" # If not set, is actually set to bind-address.# port = 25826database = "collectd"# types.db can be found in a collectd installation or on github:# https://github.com/collectd/collectd/blob/master/src/types.db# typesdb = "/usr/share/collectd/types.db" # The path to the collectd types.db file...$ sudo /etc/init.d/influxdb restartSetting ulimit -n 65536Setting ulimit -n 65536influxdb process was stopped [ OK ]Setting ulimit -n 65536Starting the process influxdb [ OK ]influxdb process was started [ OK ]
现在 InfluxDB 已经准备好接受和处理 collectd 传来的数据了。用命令行或者 Web 管理界面验证一下数据库里是否有数据:
$ curl -G 'http://192.168.2.183:8086/db/collectd/series?u=root&p=root&q=list+series&pretty=true'[{"name": "list_series_result","columns": ["time","name"],"points": [[0,"192.168.2.183/cpu-0/cpu-idle"],...]}]

InfluxDB
安装 Grafana
下载 grafana 后解压放到 web 服务器上就可用。这里省去配置 Nginx/Apache 之类的麻烦,直接用最简单的 Web 服务器 python -m SimpleHTTPServer 驱动:
$ wget http://grafanarel.s3.amazonaws.com/grafana-1.9.1.tar.gz$ tar xzvf grafana-1.9.1.tar.gz$ cd grafana-1.9.1.tar.gz$ cp config.sample.js config.js$ vi config.js...// InfluxDB example setup (the InfluxDB databases specified need to exist)datasources: {influxdb: {type: 'influxdb',url: "http://192.168.2.183:8086/db/collectd",username: 'root',password: 'root',},...},...$ sudo python -m SimpleHTTPServer
用浏览器访问 Grafana,这里的默认端口是 8000:

https://linux.cn/article-5252-1.html
使用 Grafana、collectd 和 InfluxDB 打造现代监控系统的更多相关文章
- 【监控】使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
参考资料:Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器:http://www.oschina.net/p/grafana 使用 Grafana.collectd 和 ...
- [经验交流] 试用基于 influxdb+kapacitor 的监控系统
2017年10月16日: 使用中发现kapacitor的ui过于简单,不能满足实际工作需要,现已切换到grafana --------- 两个月前试用了基于 elasticsearch + xpack ...
- collectd+logstash+influxdb+grafana构建windows服务器应用监控系统
一.背景介绍 本监控方案支持对Windows Server服务器集群的全面监控,方案提供丰富的图表展示, 以及对异常问题进行邮件的实时报警. 本系统由Collectd(操作系统数据搜集).logsta ...
- WIndows下使用Grafana+InfluxDB打造监控系统
前言 对于一个运维DBA来说,了解数据库的TPS.QPS很有必要(QPS:每秒查询数,即对数据库每秒的DML的操作数:TPS:每秒事物处理,即对数据库每秒DDL操作数),通过了解他们,可以掌握一个实 ...
- 使用cAdvisor+Influxdb+Grafana监控系统
今天准备开始研究研究当前非常流行的Grafana+Influxdb监控系统,两者都是非常轻量级的应用但是功能却异常强大,可以说Grafana在作图显示方面真的毫不逊色与Cacti. 组件介绍 cA ...
- Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql
Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql
- Windows下本机简易监控系统搭建(Telegraf+Influxdb+Grafana)
一.文件准备 1.1 文件名称 telegraf-1.2.1_windows_amd64.zip influxdb-1.2.2_windows_amd64.zip grafana-4.2.0.wind ...
- Windows下本机简易监控系统搭建(Telegraf+Influxdb+Grafana)--转
原文地址:http://www.cnblogs.com/liugh/p/6683488.html 一.文件准备 1.1 文件名称 telegraf-1.2.1_windows_amd64.zip in ...
- Telegraf+Influxdb+Grafana(Windows下本机简易监控系统搭建)
1.文件名称 telegraf-1.5.0_windows_amd64.zip influxdb-1.4.2_windows_amd64.zip grafana-4.6.3.windows-x64.z ...
随机推荐
- js动画实现透明度动画
在本次实例中,由于一般主流的浏览器对于透明度opacity最大值为1,但是在IE6最大值是100,此次例子是按主流浏览器的透明度来算的,所以定义的是小数,也可以定义为整数为单位,在运算的时候遇到主流的 ...
- Eclipse Che:下一代基于 Web 的 IDE
即使对于熟练的开发人员,想要去为一个项目贡献代码,正确的安装和配置一个集成开发环境.工作区 workspace和构建工具,都是一个十分艰难和浪费时间的任务.Codenvy 的CEO,Tyler Jew ...
- java基础-控制流语句
浏览以下内容前,请点击并阅读 声明 一般情况下,代码的执行按照从上到下的顺序,然而通过加入一些判断,循环和跳转语句,你可以有条件地执行特定的语句. 接下来分三部分介绍Java的控制流语句,他们是判断语 ...
- ural 2066. Simple Expression
2066. Simple Expression Time limit: 1.0 secondMemory limit: 64 MB You probably know that Alex is a v ...
- BZOJ4380 : [POI2015]Myjnie
将$c$离散化,设: $f[i][j][k]$为区间$[i,j]$最小值为$k$的最大收益. $g[i][j][k]$为$\max(g[i][j][k..m])$. $h[i][j]$为对于当前DP区 ...
- HDU 3333 & 离线+线段树
题意: 统计一段区间内不同数字之和.如1 1 2 3 1 统计2---5即1+2+3. SOL: 很少打过离线的题目...这种可离线可在线的题不管怎么样一般都是强行在线... 考虑这题,此前做过一个类 ...
- ios编译ASIHTTPRequest时出现 'libxml/HTMLparser.h' file not found in ASIHTTPRequest
解决方法是添加libxml2.dylib 然后在Build Settings 中的 Header Search Paths 添加: ${SDK_DIR}/usr/include/libxml2
- 使用ajax和history.pushState无刷新改变页面URL
表现 如果你使用chrome或者firefox等浏览器访问本博客.github.com.plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发 ...
- 【BZOJ】3834: [Poi2014]Solar Panels
http://www.lydsy.com/JudgeOnline/problem.php?id=3834 题意:求$max\{(i,j)\}, smin<=i<=smax, wmin< ...
- URAL 1117. Hierarchy(DP)
题目链接 这破题,根本看不懂题意啊...题意:一棵中序遍历是1 2 3 4 5...的满二叉树,从a a+1 a+2 a+3 b,总共多少步.x到y的距离为中间有多少个点.a > b没注意2Y. ...