服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志

一 Prometheus 入门

1.1 入门介绍

运维体系~指标监控

先来一张图,说明一下Prometheus监控相关的软件和知识点。

1: 首先要安装:Prometheus, 负责收集各种监控指标,也包括自己定监控

2: 接着安装Grafana全面瓦解,负责展示监控指标

3:接着安装各种收集插件(导出器)exporter

4: 安装告警工具 alarmManager

d8b3014c65a9a483f5d03ee9398d91da.png

新增指标步骤:

安装配置exporter、到premetheus中进行配置、grafana新增图表

1.2 相关软件、端口说明

1.2.1 端口说明

软件

端口

作用

安装形式

地位

核心

Prometheus

9090

收集器,负责收集导出器exportor的数据

二进制、docker、rancher应用商店安装,下载地址: Prometheus.io, 有官方导出器,也有第三方只要按照 Prometheus的格式 暴露对应的指标 即可

Prometheus、alertmanager、node_exporter、mysqld_exporter 都在一个官网上面

配置文件持久化, prometheus.yml

Grafana

3000

展示Prometheus的数据

专业展示数据,数据源可以是:Prometheus,Elasticsearch、Mysql、PostgreSql、InfluxDB(时序数据库)、json自定义 等各种插件支持;可以界面配置数据源,https://grafana.com/、可视化工具Grafana:简介及安装

专业展示

1.2.2 导出器exporter说明

Exporter是Prometheus的一类数据采集组件的总称。

它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。

与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取,

默认的抓取地址为http://CURRENT_IP:9100/metrics

导出器名称

作用

安装方式

下载地址

安装形式

暴露端点

Node exporter

类似zabbix-agent收集服务器自身的mem、cpu、network等服务器本身的数据

prometheus官方提供、维护

官网直接搜索:node_exporter 、参考地址 容器监控实践—node-exporter

二进制安装、docker安装、k8s安装;需要在每台主机上面都安装

host:9100/metrics,如果服务器端口不开发,可以映射到项目根路径,eg: https://ngniot.bgysmartcity.com/metrics

-cAdvisor(Container Advisor )

收集docker容器的指标和性能

google开源 GO开发

docker、二进制都行

host:8080/metrics

mysql_exporter

收集数据库的

docker、二进制都行

host:9104/metrics

mongodb_exporter

收集

docker、二进制都行

host:9001/metrics

1.3 简单介绍

由于安装牵扯的软件和导出器比较多,

prometheus、Grafana、alertmanager、node_exporter、mysqld_exporter 等等,

我们先使用 rancher1 应用商店自带的 prometheus

默认操作,开发3000和9090里面就可以访问了

1.3.1 Grafana 使用事项

默认登录需要密码,没有密码,随便输入的账号和密码,就是初始化账号密码

设置数据源,默认已经添加了数据源 http://prometheus:9090,可以添加新的数据源,可以跨服务器

默认不用做啥配置,就可以看到 node-exporter【服务器主机信息】、prometheus-rancher-exporter【rancher简要信息】

每个图标需要自定义 promSQL 来展示数据

官方有很多模板,可以导入fe496672005aab734ba0ecb7578d15cf.png

6: 上官网搜索自己需要的展示模板c8bd955638584f642959f1759be8f990.png

1.3.2 prometheus 使用说明

prometheus数据来源说明

1:基于 http pull 方式采集, 被采集端只要 暴露http metrics 接口, prometheus主动定时来采集

2:对于非常规数据,比如定时器的结果数据,定时来去可能取不到,这里 借助:pushGateway 收集采集数据

3:通过服务发现或者静态配置发现目标: 比如要监控10个服务就可以静态配置,如果要监控1000个服务,就只能 把服务器注册到 注册中心(如:Consul), prometheus 从注册中心动态取。

33799b581ec37104c67c2c6f4e324f42.png

e2304ebfedfa7b2d26e1a9519fa8a032.png

1.3.3 PromSQL (prometheus) 的使用

PromSQL可以类似sql一样对收集到的相关指标数据进行统计分析和处理

d798fc4d9b84c20cb7527efa8f9427b4.png

a5dec704b9f3c8d35444ccbdb4abe261.png

21c6155ca47e8688e53b9cde0fa7d7ed.png

#按照每台服务器,查看最近5分钟的cpu空率

100 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100

#内存使用

100 - (node_memory_MemFree_bytes + node_memory_Cached_bytes + node_memory_Buffers_bytes ) / node_memory_MemTotal_bytes * 100

#监控磁盘占用率,如果没有数据,可以去掉 mountpoint 参数或者修改该参数

100 - ( node_filesystem_free_bytes{mountpoint="/.r", fstype =~ "ext4|xfs"} / node_filesystem_size_bytes{mountpoint = "/.r", fstype =~ "ext4|xfs"} * 100)

1.3.4 prometheus 配置文件说明

当新增了 exporter 都要在 prometheus 里面进行配置,新增配置之后service-discovery 和 targets 里面就能看到新增的保留点。

job: 是一一类指标

targets:是一类指标下面的多台机器

直接使用rancher 应用商店的 好处,prometheus 配置文件就不用关心了基本上都配置完美了

配置文件实例,可以对照http://ityun.ltd:9090/config 对着看差异

aec4a5ca787e87476d6500c05d7578ab.png

2b61a7a42dec64201cbbf866c4ea67db.png

参考:Prometheus 配置文件详解

编辑 prometheus.yml配置文件

检查配置文件:./promtool check config promethues.yml

配置检查没有问题,重载配置kill -hup 4100

重载完成,可以进入到 prometheus管理界面查看配置和监控数据

服务发现,当需要监控的机器是动态扩容或者所容的时候,服务发现就非常有用,支持的方式有:

e9e083ddb7d8c894458f90d18eb051f0.png

e41dfc81303910032cb349b1fac6bb63.png

1.4 安装promethues

1.4.1 二进制安装部署

官网进行下载,prometheus download, 下载:wget https://github.com/prometheus/prometheus/releases/download/v2.20.0-rc.1/prometheus-2.20.0-rc.1.linux-386.tar.gz、解压到**/usr/local/promethues/promethues**:tar zxvf *.gz

最好是参见最新的官方文档:prometheus docs getting_started

重要的启动选项,./prometheus --help, 一个是:配置文件指定--config.file="prometheus.yml"、监控端口--web.listen-address=" 0.0.0.0:9090"、数据存储目录 --storeage.tsdb.path=" data/"、数据存储保留时间默认15D=--storage.tsdb.retention=15d

配置为系统服务

#1: systemd,先copy一个模板进行修改

cd /usr/lib/systemd/system

# 2: copy一个配置文件 service

cp sshd.service prometheus.service

# 3: 修改配置文件

[Unit]

Description=prometheus.io

After=network.target

[Service]

Restart=on-failure

ExecStart=/usr/local/prometheus/promethues/promethues --config.file=/usr/local/prometheus/promethues/promethues/promethues.yml //自已的tomcat目录

ExecReload=/bin/kill -s HUP $MAINPID

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

#4: #在命令执行,重新加载service配置

systemctl daemon-reload

#5 启动测试

systemctl start prometheus

#6 查看进程执行情况

ps -ef |grep prometheus

1.4.2 rancher部署

564958ff7971ae9b10fc2562ff71583b.png

映射配置文件:/usr/local/docker_volume/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml

125c7fd4179233ac913b161c46357c54.png

1.4.3 docer 部署

看官网文档: prometheus installation 搜索 Using Docker

执行docker运行命令

#执行启动命令,挂载卷地址,/usr/local/docker_volume/prometheus/prometheus.yml

docker run -d \

-p 9090:9090 \

-v /usr/local/docker_volume/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \

-v /usr/local/docker_volume/prometheus/data:/prometheus\

prom/prometheus

二 导出器和可视化图表

2.1 node exporter 服务器资源导出器

node导出器,负责导出 服务器自身的cpu、内存、网络、平均负载等。

使用展示模板,特别方便不用自己写PromSQL

1 Node Exporter for Prometheus Dashboard CN v20200628

官方Grafana模板地址:1 Node Exporter for Prometheus Dashboard CN v20200628

1fa9940b4dc56dbe364f2695dee18be2.png

c7d40c0ab050e395c7cf3ec6d007d84a.png

2.2 cadvisor 容器导出器

cadvisor是谷歌开发的容器导出器,可以监控容器的各项指标,可以手工安装

Grafana的显示cadvisor数据模板

Docker and system monitoring 893 - 推荐使用

80407d2133e34645f00f036a7f6163cd.png

2.3 Rancher 导出器

我们监听rancher 的指标,这个 rancher promethues自身就有的exporter

导出器名称prometheus-rancher-exporter 、infinityworks/prometheus-rancher-exporter:v0.22.52

可视化模板 Rancher的 promethues数据源模板 1674

可视化模板 Ranche2 - 8721

2.4 mysql_exporter 导出器

mysql_exporter,下载安装到自己需要监控的mysql主机,

创建用户授权一个账号,具体查看github; 可以自己配置采集信息,具体查看:

./mysql_exporter --help

eg: mysql最大连接数、当前连接数、innodb利用率、读写流量、查询速度

导出器 mysql_exporter 下载地址:prometheus mysqld_exporter

grafan图表模板 mysql grafana 的 promethues数据源模板 - 7362

07c039dabcf6189535f23df6e3c9af2c.png

5e770e8c32e2cf1dfc223196361b3faf.png

2.4.1 mysql_exporter详细安装步骤

下载 包到本机 /usrl/local/promethues/exporter/mysql_exporter, 最新版本到官网下载,见:【mysql_exporter 】download

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-386.tar.gz,官网:下载特别慢,可以从第三方下载,见grafana-prometheus-mysqld-node_exporter.rar

解压:tar -zxvf *.gz

查看启动选项:``

进入mysql里面创建一个mysql用户&授权,具体搜索:Required Grants在github mysqld_exporter

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'exporter123pwdxx.' WITH MAX_USER_CONNECTIONS 3; #创建一个新用户,只允许localhost有权限,也可以变成%; & 限制最大连接数是3; 如果报错,删除 用户连接数限制。

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost'; #授权

在当前目录创建一个my.cnf文件,通过该文件,就可以每次免密使用。touch my.cnf,查看设置选项:./mysqld_exporter --help

[client]

user=exporter

password=exporter123pwdxx.

centos主机上面启动&指定配置文件:./mysqld_exporter --config.my-cnf="./my.cnf",启动完成验证:http://localhost:9104/metrics, 后台运行:nohup ./mysqld_exporter --config.my-cnf="./my.cnf" &

配置完毕,我们回到promethes配置文件中进行配置,vi prometheus.yml

如果9104端口无法对外开放,可以进行映射,nginx配置如下:

location /metrics { #Node exporter metrics 监控

proxy_pass http://localhost:9104;

}

2.4.2 MySQL 监控指标

c49d68012b571564d59c7a4b43e40d84.png

2.5 mongodb_exporter 导出器

mongodb_exporter,下载安装到自己需要监控的MongoDB主

这个插件手工安装还有点麻烦,需要手工安装go、安装glide,然后才能安装exporter。

参考,文档非常详细、或者直接看github:prometheus监控mongo

使用的插件是:dcu/mongodb_exporter

使用的展示json是 2583 :https://grafana.com/dashboards/2583

使用的dcu/mongodb_exporter 对应的docker 镜像是:targetprocess/mongodb_exporter

需要给指定MongoDB账号,监控的权限

# E0727 04:19:12.553163 1 oplog_status.go:127] Failed to get local.oplog_rs collection stats.

# E0727 04:19:42.490771 1 server_status.go:173] Failed to get server status.

# E0727 04:19:42.522262 1 replset_status.go:231] Failed to get replSet status.

# Prometheus Mongodb Exporter - Correct DB User Permissions

#When you see the error Failed to get local.oplog_rs collection stats. in your mongodb exporter logs, make sure the DB user account you use has the right permissions.

db.getSiblingDB("admin").createUser({

user: "mongodb_exporter",

pwd: "mongodb_exporter_pwd.",

roles: [

{ role: "clusterMonitor", db: "admin" },

{ role: "read", db: "local" }

]

})

docker run -d \

-p 9001:9001 \

--mongodb.uri="mongodb://iotMongoUserX:.123aB.iotMongoUserXpWD@39.198.173.142:37071" \

targetprocess/mongodb_exporter

启动参数:--mongodb.uri=mongodb://iotMongoUserX:.123aB.iotMongoUserXpWD@39.198.173.142:37071

cc50f23cc4547df058ff866c3b2c901c.png

如何查看启动参数,进入容器内部find / -name '*exporter*'查找安装目录, 执行cd /bin , ./mongodb_exporter --help

1fbad5035b6e7670a10ad771ddbebac9.png

三 告警alartmanager

前面我们讲解了监控数据的可视化,但是数据量很多,指标很多,我们不可能一直盯着屏幕。因此我们需要对数据进行巡检和告警处理。

告警也有一些高级使用步骤:分组、抑制、静默等

3.1 使用步骤

安装部署 alartmanager, 通过官网或者github,官网同:promethues

配置Promethues和alertmanager通信

在promethues中配置告警规则

在alartmanager中配置接收者

b5c3d0949ec6149e297b065375cb17a1.png

三 告警alartmanager

前面我们讲解了监控数据的可视化,但是数据量很多,指标很多,我们不可能一直盯着屏幕。因此我们需要对数据进行巡检和告警处理。

告警也有一些高级使用步骤:分组、抑制、静默等

3.1 使用步骤

安装部署 alartmanager, 通过官网或者github,官网同:promethues

配置Promethues和alertmanager通信

在promethues中配置告警规则

在alartmanager中配置接收者

b5c3d0949ec6149e297b065375cb17a1.png

3.2 配置alartmanager和premethues通信

alartmanager.yml

route 告警路由 分配 、receivers: 接收者、inhibit_rules: 抑制配置、

./amtool check-config alartmanger.yml检查配置语法是否正确

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

限时秒杀┃月销10000+件,风靡全国的steam科学实验套装

▲数据汪特别推荐点击上图进入玩酷屋之前小木有推荐过“彩虹实验”,这款是可以让孩子在探索中能够独立思考,主动地构建知识库,培养创造力。(传送门)让孩子们在家开展科学游戏,既能提升动手能力,…

面向.NET开发人员的Dapr——入门

目录:面向.NET开发人员的Dapr——前言面向.NET开发人员的Dapr——分布式世界面向.NET开发人员的Dapr——俯瞰DaprGet started with DaprDapr 入门In the first two chapters, you learned basic concepts about Dapr. Its time to take it for a test drive. This c…

比乐高还要好玩,50种奇妙装置玩法,将STEM教育一网打尽

▲数据汪特别推荐点击上图进入玩酷屋致砖《小小机器人》套装全新首发电动机械的完美结合先来看看视频过过眼瘾吧来自美国STEAM教育让孩子跨学科学知识积木向来是STEAM教育很重要的一部分,因为它涉及到了多种学科:要搭建得稳固——这是工程学;…

capslock键英语怎么读_刚开始读英文原版书该怎么做?商务英语专业有前途吗?...

是的,看我的朋友圈也能学英文#26从最近的朋友圈和微博中选了一些内容,分享给大家。1. 如何开始读英文原版书?关于读英文原版书,我给出一个简单粗暴的开始和进阶方案。启动方案:首先找一本你特别感兴趣的书,…

【12图】你管这破玩意叫Pulsar

这两年pulsar发展比较快,有好多大公司引入了pulsar,相关的资料和课程也多了,今天一起来了解一下pulsar这款中间件。下图是几款消息中间件的历史:2012年pulsar在Yahoo内部开发,2016年开源并捐献给Apache,201…

每日一笑 | 为什么英语老师让我们养成背单词的习惯?

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

把C#.NET程序移植到DB2上的经验浅谈(C#连接DB2可以用IBM.Data.DB2.dll)

感谢博客园不再封杀,差点儿搬家的念头都产生了,博客园还是有大胸怀,继续留在博客园写口水文应该没错,娱乐自己、娱乐大家,给枯燥的编程生活增加一点儿笑料,也给大家充当个开心果,让大家高兴一下…

postgis数据库优化_国内首个 Serverless 数据库来了,技术架构全揭秘!

头图 | CSDN 下载自东方 IC本文为企业投稿省却成本,缩短产品上市时间,减少运维与开发团队之间的摩擦是 Serverless 最核心的所在,从 AWS 发布「Lambda」让「Serverless」越来越多地为开发者所知到今天,已经过去了 6 年的时光&…

丰富自己, 比取悦他人更有力量

如果有那么一天,你不再记得,我也不再记得,时光一定会代替我们记得。丰富自己, 比取悦他人更有力量!下面给大家推荐几个优秀公众号它们每天更新有态度、有干货的原创文字坚持看一段时间 颜值和人生都不一样了【关注方式…

WPF Grid动态显示或隐藏一列的一种方法

项目中有一个需求,需要根据用户的设置动态显示一列,研究了一波后,发现,Grid并没有这个功能,于是通过绑定宽度 的方法,实现的需求。。思路:将需要隐藏的列宽度 绑定到一个属性上,隐藏…

.Net Core with 微服务 - Seq 日志聚合

上一次我们介绍并演示了如果使用 Consul 做为我们微服务的注册中心,来实现服务的注册与发现。那么本次我们讲会演示如何做日志聚合。日志聚合比较常用的有 ELK 等,但是这次我想要介绍的是一款比较小众的日志聚合工具 - Seq 。日志聚合日志是我们写程序离…

苹果白屏一直显示苹果_最新消息显示:苹果还要发新品

距离2020年结束已经进入了倒计时阶段,但最新消息显示苹果可能还会在这个最后的时间节点上召开一场新品发布会。今日,有外媒援引一份苹果内部备忘录报道,称苹果通过内部备忘录向服务提供商发送通知,计划在美国太平洋标准时间 12月8…

“探月计划”来袭,美国米德天文望远镜助孩子观月赏月

▲数据汪特别推荐点击上图进入玩酷屋孩子对于未知的世界充满了好奇,尤其是对于月亮,总是有问不完的问题。例如月亮上是怎么样的?怎么很多人说十五的月亮十六圆?月亮有动物吗?不是说有月兔吗?月亮怎么有时是…

为什么async/await方法不能有lock或Monitor

相信有不少朋友知道async/await有lock语法的情况一般都会编译错误,这个时候可以通过Monitor来解决编译错误的问题;虽然这样解决的编译错误但本质问题还是没有解决。其实并不是async/await方法不能用lock或Monitor,而是在lock或Monitor的作用域…

每日一笑 | 程序员和产品经理打架了,怎么办?

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

新建项目EasyUiAutotest,安装Appium-Python-Client

一、前置说明 Appium-Python-Client 是 Appium 的 Python 客户端库,它提供了一系列的类和方法,用于与 Appium 服务器进行通信,并执行各种移动应用测试操作,包括启动应用、模拟用户输入、点击等操作。 二、操作步骤 1. 启动Pych…

VS Code + ML.NET 玩转交互式机器学习

在上一篇文章中,我们介绍了 .NET Interactive Notbook,可以进行代码实时运行和交互式展示。这对于ML.NET来说非常棒,可以运用到许多场景,比如数据探索、绘制数据图表、编制教学课件等。下面,我们就用出租车费预测&…

ts定义数组类型_ts基本数据类型

typescript基础数据类型布尔值 示例代码最基本的数据类型就是简单的true/false值,在JavaScript和TypeScript里叫做boolean(其它语言中也一样)。let a: boolean trueconsole.log(a)let b: boolean falseconsole.log(b)let c: booleanconsole.log(c)执行结果truefal…

神还原女神照片!GAN为百年旧照上色

全世界只有3.14 % 的人关注了数据与算法之美如何把女神的黑白照片变成彩照?今日,数据汪发现新加坡 GovTech 数据科学与人工智能部门在 Medium 上介绍了一个为百年旧照上色的项目。这个项目名为 Colourise.sg,最初是该团队(成员包括…

cacti+nagios 整合遇到的问题

cacti安装成功了,下载一个npc插件来套用nagios,nagios要用ndoutils和cacti连接。主要安装ndoutils出现的问题。启动ndoutils时出错:/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg错误提示:Support for th…