运维监控系列(1):在Linux中运用Docker部署Prometheus+Grafana+Alertmanager企业微信机器人以及邮箱的推送。(全面部署)

 一. 前言

        这一章节主要是针对那些有Linux以及有Docker基础的小伙伴做的一个比较全面的部署,如果有不会Linux和docker的小伙伴可以先去学一下。花个1周的时间把Linux和docker入门就可以了,不需要精通。部署的步骤也比较简单,我搜索了一些文章,基本都是没有一个全面的部署,要么就是部署了前面监控部分,没有后面的Alertmanager推送机器人或者邮箱。要么就是在Linux中部署,而没有在Docker中部署。不过我还是建议在Docker中部署,它的效率和维护性都非常的高,这也是我学习Docker之后的感悟。趁热打铁,最近刚好部署完这一整套监控系统,在此也分享给大家,希望每个小伙伴都能少走一些弯路!!不过也希望每位小伙伴在部署完成之后,能重新对流程和知识点再整理一遍,毕竟温故而知新嘛!开始进入正题~~~

二.实现的技术

        1.部署中你需要用到的东西

在这里我就不做过于详细的讲解各技术的用途和功能了,毕竟要的是快速开发一套能用于工作的监控系统。

(1)Prometheus   (数据监控)       

       Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。Promethus有以下特点:

  • 支持多维数据模型:由度量名和键值对组成的时间序列数据
  • 内置时间序列数据库TSDB
  • 支持PromQL查询语言,可以完成非常复杂的查询和分析,对图表展示和告警非常有意义
  • 支持HTTP的Pull方式采集时间序列数据
  • 支持PushGateway采集瞬时任务的数据
  • 支持服务发现和静态配置两种方式发现目标
  • 支持接入Grafana

  小编:这里给大家配了张Prometheus的架构图,看不懂没关系,学到最后再回来看你就恍然大悟了!!!Prometheus主要就是用来监控各系统的指标。(重点)

(2)Node_Exporter(数据采集)

        Node Exporter 是一个开源的 Prometheus 客户端软件,用于收集和导出 Linux 系统的各种指标数据。 它可以提供关于 CPU 使用率、内存占用、网络流量等方面的数据。 而在本文中,我们将重点关注磁盘 I/O 相关的指标。

  小编:知道有这个东西就好,主要是用来采集主机数据的,要采集哪个系统的数据,就在哪个系统里部署,下面我们就直接采集阿里云的服务器数据,这个不难,只要安装部署跑通了就可以了。

 (3)Grafana(数据显示)

        Grafana是一个用Javascript写的开源的(Dashboard)可视化面板,能齐全的度量仪表盘和图形编辑器和漂亮的布局展示,并且支持Graphite、elasticsearch、zabbix等的数据可视化的实现,可以给你的数据换个皮肤,使你的数据展示更加直观和漂亮。

  小编:这个主要用于显示prometheus中所有监控的数据,也就是形成监控看板,方便我们查看各个系统的软硬件指标。也是了解即可。

 (4)Alertmanager(告警推送)

         Alertmanager是一个独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、删除重复等处理,并将它们通过路由发送给正确的接收器;告警方式可以按照不同的规则发送给不同的模块负责人,Alertmanager支持Email, Slack,等告警方式, 也可以通过webhook接入钉钉等国内IM工具。

  小编:Alertmanager主要是用来完成对Prometheus生产的警告进行推送,我们要把警告消息推送到企业微信,钉钉,邮箱等地方就需要通过Alertmanager来实现。(重点)

梳理一下流程:Prometheus监控来自----Node_Exporter采集到的主机数据----并展示到grafana形成看板-----同时Prometheus又把生产的告警推送给Alertmanager---再通过Alertmanager推送给我们的企业微信和邮箱。

(可以结合上面Prometheus的架构图进行理解,现在看不懂也没关系,慢慢来,后面部署完就能看懂这张图了)

2.开始部署

        以下都是基于Docker容器来部署的,合适有Linux和docker基础的小伙伴

1.部署Prometheus

第一步:

        在Linux系统中新建prometheus目录,编辑配置文件prometheus.yml

(这个prometheus.yml文件至关重要,也是prometheus能不能正常启动,能不能监控到数据的关键,后续如果启动不了prometheus或者

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
一、prometheus简介 Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统,通常会搭配prometheus进行监控prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。 5.Grafana监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲
好的,以下是一个基于Docker Compose的搭建PrometheusGrafanaAlertmanager、Blackbox Exporter和Node Exporter的示例: ```yaml version: "3" services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' - '--web.enable-admin-api' restart: always grafana: image: grafana/grafana container_name: grafana ports: - "3000:3000" volumes: - ./grafana:/var/lib/grafana restart: always alertmanager: image: prom/alertmanager container_name: alertmanager ports: - "9093:9093" volumes: - ./alertmanager/config.yml:/etc/alertmanager/config.yml command: - '--config.file=/etc/alertmanager/config.yml' restart: always blackbox-exporter: image: prom/blackbox-exporter container_name: blackbox-exporter ports: - "9115:9115" volumes: - ./blackbox-exporter/config.yml:/etc/blackbox-exporter/config.yml command: - '--config.file=/etc/blackbox-exporter/config.yml' restart: always node-exporter: image: prom/node-exporter container_name: node-exporter ports: - "9100:9100" restart: always ``` 需要注意的是,这里的配置文件都需要自己创建并且挂载到对应的容器。例如,prometheus.yml、config.yml和config.yml分别对应PrometheusAlertmanager和Blackbox Exporter的配置文件。同时,Grafana的数据目录也需要挂载到主机上以便数据持久化。 另外,需要注意的是这只是一个示例,具体的配置文件需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值