背景:
监控对it运维来说到底有多重要?“因为你是我的眼,让我看见这世界就在我眼前”,这是一首耳熟能详的歌曲《你是我的眼》 。监控,对于it运维工程师来说就是眼睛,如果没有监控,it运维工作就无从谈起;如果没有监控,it运维工程师就成了盲人 。
一个良好的监控系统可以快速地发现并定位问题,减少宕机时间,提高故障处理速度,减轻it运维工作压力,甚至可以促进家庭和谐 。
技术选型调研:
有与 社区强力支持,尽快告警功能简单,但是开源社区异常火爆,作为CNCF第二开源项目(第一开源项目 Borg的开源版本),的开源版本(用于监控Borg),未来发展前景看好
TICK 由公司支持,高可用、水平扩展、高级备份恢复等功能需要企业 。
Open-最初为小米公司开发,采用多模块架构,初始部署比较复杂,监控功能相对完善,不过目前有开源社区人员维护,版本迭代无法保证,且国际化不够 。
传统企业级监控方案,由公司支持 。监控功能全面,缺点在于存储限制与不支持水平扩展 。
综上所述,我们选择!
简介:
(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由公司开发的 。随着发展,越来越多公司和组织接受采用,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作 。SRE的书内也曾提到跟他们监控系统相似的实现是 。现在最常见的容器管理系统中,通常会搭配进行监控 。
基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程 。这样做非常适合虚拟化环境比如VM或者。
应该是为数不多的适合、Mesos、环境的监控系统之一 。
输出被监控组件信息的HTTP接口被叫做。目前互联网公司常用的组件大部分都有可以直接使用,比如、、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等),具体支持的源看: 。
与其他监控系统相比,的主要特点是:
架构预览:
开始安装:
注意??本文所有操作使用, 请参考安装及简单命令
docker pull prom/node-exporterdocker pull prom/prometheusdocker pull grafana/grafana
可查看下载的镜像:
其中 – 用于机器系统数据收集
docker run -d -p 9100:9100 -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/rootfs:ro prom/node-exporter
查看运行状态:
:9100/
vi /opt/prometheus/prometheus.ymlglobal:scrape_interval:60sevaluation_interval: 60sscrape_configs:- job_name: prometheusstatic_configs:- targets: ['121.41.18.234:9090']labels:instance: prometheus- job_name: linuxstatic_configs:- targets: ['121.41.18.234:9100']labels:instance: localhost
运行:
docker run-d -p 9090:9090 -v /opt/prometheus:/etc/prometheus prom/prometheus
:9090/graph
chmod 777 /data/
docker run -d -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana
至此,简单的监控已经完成了,图形界面的设置可自行百度,网上有很多 。
系统默认推荐11074
docker run -d --name mysql_exporter --restart always -p 9104:9104 -e DATA_SOURCE_NAME="root:yunkun920801@(121.41.19.237:3306)/" prom/mysqld-exporter
mysql(推荐7362、12650)
钉钉报警:
首先钉钉建立一个群聊,然后通过智能群助手新建机器人获取
docker run -d --restart always -p 8060:8060 timonwong/prometheus-webhook-dingtalk:v0.3.0 --ding.profile="webhook1=刚才的webhook"