利用Docker, 5分钟搞定graphite+slack alert
2015-08-11 10:15
656 查看
利用了slack的Incoming WebHooks做报警机器人, 现在slack的notify不限次数,不知道以后会不会收费
默认安装
Nginx - reverse proxies the graphite dashboard
Graphite - front-end dashboard
Carbon - back-end
Statsd - UDP based back-end proxy
更多配置可以参见github:https://registry.hub.docker.com/u/hopsoft/graphite-statsd/
我装上了collectd,监控一些机器的资源/基础报警~
完整的配置sample参见
报警途径设置
如果有方便的voip报警服务,也可以接进来~可以自己写notify plugin
下面是slack插件的写法
一个报警设置的示例(collectd收集到的CPU信息设置报警):
该框架缺点:
- 动态load config
- 没有web interface(好解决)
- 集群化
Graphite安装
sudo docker run -d \ --name graphite \ --restart=always \ -p 80:80 \ -p 2003:2003 \ -p 8125:8125/udp \ hopsoft/graphite-statsd
默认安装
Nginx - reverse proxies the graphite dashboard
Graphite - front-end dashboard
Carbon - back-end
Statsd - UDP based back-end proxy
更多配置可以参见github:https://registry.hub.docker.com/u/hopsoft/graphite-statsd/
我装上了collectd,监控一些机器的资源/基础报警~
报警组件
docker run -v /path/to/config.json:/srv/alerting/etc/config.json deliverous/graphite-beacon
完整的配置sample参见
报警途径设置
{ "critical_handlers": [ "log", "slack" ], "normal_handlers": [ "log", "smtp" ], "warning_handlers": [ "log", "slack" ] }
如果有方便的voip报警服务,也可以接进来~可以自己写notify plugin
下面是slack插件的写法
@gen.coroutine def notify(self, level, *args, **kwargs): LOGGER.debug("Handler (%s) %s", self.name, level) message = self.get_message(level, *args, **kwargs) data = dict() data['username'] = self.username data['text'] = message data['icon_emoji'] = self.emoji.get(level, ':warning:') if self.channel: data['channel'] = self.channel body = json.dumps(data) yield self.client.fetch(self.webhook, method='POST', body=body)
一个报警设置的示例(collectd收集到的CPU信息设置报警):
{ "name": "CPU", "format": "percent", "rules": [ "critical: = 10%", "warning: = 20%" ], "interval": "5minute", "no_data": "warning", "source": "graphite", "query": "aliasByNode(sumSeriesWithWildcards(viila.collectd.*.cpu-*.cpu-user, 2), 1)" }
报警展示
slack接收到报警的图:该框架缺点:
- 动态load config
- 没有web interface(好解决)
- 集群化
相关文章推荐
- docker error:service didn't start
- docker菜鸟笔记——总结1
- 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?
- 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?
- Fbric、Ansible、Docker、Chaos Monkey:DevOps工具的年中回顾
- Fbric、Ansible、Docker、Chaos Monkey:DevOps工具的年中回顾
- CentOS6下安装docker
- CentOS7.0部署Docker
- Docker:搭建开发环境(运行Eclipse等图形化界面程序)
- DockerFile
- 深刻理解Docker镜像大小
- docker安装hadoop集群
- Docker的学习--命令使用详解
- 使用Amazon免费云主机和Docker技术,快速搭建Squid服务器!
- 闲谈集群管理模式
- Debian8下搭建IVRE(docker方式)
- Why Docker is Not Yet Succeeding Widely in Production
- docker误区
- Docker初识
- docker on spark