riemann的安装和使用
Riemann monitors distributed systems.
具体介绍就不多说了,一个分布式的监控系统。可以接收各种event上报,然后通过强大的脚本和插件,展示曲线,柱状,饼图等来对系统进行监控。
一、riemann安装
这里主要说ubuntu的安装:
首先,需要java、ruby环境:
sudo apt-get -y install default-jre ruby-dev build-essential
然后下载riemann的包:
wget https://aphyr.com/riemann/riemann_0.2.8_all.deb
然后直接安装就OK了:
sudo dpkg -i riemann_0.2.8_all.deb
采用命令就可以启动服务了:
sudo service riemann start
二、riemann配置
配置文件在
/etc/riemann/riemann.config
默认配置如下
; -*- mode: clojure; -*-
; vim: filetype=clojure (logging/init {:file "/var/log/riemann/riemann.log"}) ; Listen on the local interface over TCP (), UDP (), and websockets
; ()
(let [host "127.0.0.1"]
(tcp-server {:host host})
(udp-server {:host host})
(ws-server {:host host})) ; Expire old events from the index every seconds.
(periodically-expire ) (let [index (index)]
; Inbound events will be passed to these streams:
(streams
(default :ttl
; Index all events immediately.
index ; Log expired events.
(expired
(fn [event] (info "expired" event))))))
可以使用go的client进行event的发送:
package main import (
"github.com/bigdatadev/goryman"
//"fmt"
"time"
"math/rand"
) func main(){
c := goryman.NewGorymanClient("localhost:5555")
err := c.Connect()
if err != nil {
panic(err)
} defer c.Close() for {
rd := rand.New(rand.NewSource(time.Now().UnixNano())) err = c.SendEvent(&goryman.Event{
Host : "box1",
Service: "foo",
Metric: rd.Intn(),
Tags: []string{"meter","dev"},
})
if err != nil {
panic(err)
} rd = rand.New(rand.NewSource(time.Now().UnixNano())) err = c.SendEvent(&goryman.Event{
Host : "box2",
Service: "bar",
Metric: rd.Intn(),
Tags: []string{"meter","dev"},
})
if err != nil {
panic(err)
}
}
}
三、把riemann数据使用graphite来进行画图
由于riemann本身提供的数据图形化比较难弄,但是它可以方便的只想graphite进行处理。
所以,我们装一下graphite。
#安装启动graphite
pip install carbonpip install whisperpip install graphite-web
pip install Django
pip install django-tagging
#默认安装路径在 /opt/graphite/目录下 #初始化配置
PYTHONPATH=`pwd`/webapp:`pwd`/whisper python ./webapp/graphite/manage.py syncdbecho DEBUG = True > webapp/graphite/local_settings.py #启动web服务,web访问界面
PYTHONPATH=`pwd`/whisper ./bin/run-graphite-devel-server.py --libs=`pwd`/webapp/ /opt/graphite/ #启动接收数据的后台进程
puchd config cp carbon/conf/carbon.conf.example carbon/conf/carbon.confPYTHONPATH=`pwd`/whisper ./carbon/bin/carbon-cache.py --debug start
在riemann的配置中增加一行:
; -*- mode: clojure; -*-
; vim: filetype=clojure (logging/init {:file "/var/log/riemann/riemann.log"}) ; Listen on the local interface over TCP (), UDP (), and websockets
; ()
(let [host "127.0.0.1"]
(tcp-server {:host host})
(udp-server {:host host})
(ws-server {:host host})) ; Expire old events from the index every seconds.
(periodically-expire ) (let [index (index)]
; Inbound events will be passed to these streams:
(streams
(default :ttl
; Index all events immediately.
index ; Log expired events.
(expired
(fn [event] (info "expired" event)))))) #定义graph绘图的host,这里是部署在一台机器上面的
(def graph (graphite {:host "localhost"})) ;所有的event数据都发给graph进行绘图 (streams graph)
然后启动go的test程序进行发送数据,就能在graphite上面看到数据了:
总结:
riemann非常灵活,但灵活的同时是学习成本的增加。你必须要学会他的配置,而且要熟悉对应的配置语言的语法和函数(当然学会之后,就非常流弊了)。
具体可以参考它官网的howto介绍。 这里就浅尝辄止了,后面项目有需要再好好研究。
参考连接:
http://kartar.net/2014/12/an-introduction-to-riemann/
#如何配置
http://labs.amara.org/2012-07-16-metrics.html#riemann
#streams配置最重要
http://riemann.io/howto.html#running-riemann
riemann的安装和使用的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- gentoo 安装
加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- 【原】nodejs全局安装和本地安装的区别
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
- tLinux 2.2下安装Mono 4.8
Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...
随机推荐
- python学习笔记(10)--爬虫下载煎蛋图片
说明: 1. 有很多细节需要注意! 2. str是保留字,不要作为变量名 3. 保存为txt报错,encoding=utf-8 4. 403错误,添加headers的方法 5. 正则match只能从开 ...
- java常用操作
1.properties文件中文转换 在cmd中进入到文件所在目录执行(其他操作请见命令帮助):native2ascii -reverse messages_zh_CN.properties b.t ...
- Unix系统编程()发送信号的其他方式:raise和killpg
有时,进程需要向自身发送信号,raise 函数就执行了这一任务. #include <signal.h> int raise(int sig); 在单线程程序中,调用raise相当于对ki ...
- MyBatis Geneator详解<转>
MyBatis Geneator中文文档地址: http://generator.sturgeon.mopaas.com/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的 ...
- Unix网络编程中的五种I/O模型_转
转自:Unix网络编程中的的五种I/O模型 下面主要是把unp第六章介绍的五种I/O模型. 1. 阻塞I/O模型 例如UDP函数recvfrom的内核到应用层.应用层到内核的调用过程是这样的:首先把描 ...
- keepalived管理LVS文件详解
#全局设置,只设置一个 全局路由就可以,全局路由不能重复唯一标识. global_defs { router_id LVS_01 #全局路由ID,唯一不能重复 } #实例 vrrp_instance ...
- SQL Server 数据库同步,订阅、发布、复制、跨服务器
随便说两句 折腾了一周,也算把数据库同步弄好了.首先局域网内搭建好,进行各种测试,弄的时候各种问题,弄好以后感觉还是挺简单的.本地测试好了,又在服务器进行测试,主要的难点就是跨网段同步,最后也解决了, ...
- 树莓派安装centos 7系统
1,格式化 https://www.sdcard.org/downloads/formatter_4/eula_windows/ 2,烧录,Win32DiskImager https://source ...
- 树形dp - BNU 39572 Usoperanto
Usoperanto Problem's Link Mean: 给定n个单词,每个单词可以作为形容词来修饰其他单词. 如果当前单词Wi修饰Wj,那么这个修饰的代价是:Wi~Wj之间的单词的总长度. 你 ...
- MapReduce的InputFormat过程的学习
转自:http://blog.csdn.net/androidlushangderen/article/details/41114259 昨天经过几个小时的学习,把MapReduce的第一个阶段的过程 ...