普罗米修斯运维,Prometheus 安装部署与配置解析,收藏这篇就够了

Prometheus 是一个开源的系统监控 ,它通过 HTTP 协议或取系统指标数据 并将这些数据存储在本地的时间序列数据库中。Prometheus 内置 PromQL方便查询存储指标数据,支持创建图表和警报规则。

  • Prometheus Server

    :负责指标抓取、存储、查询及告警触发。

  • Exporter

    :暴露被监控服务的指标接口(如 Node Exporter,MySQL Exporter等)。

1. 安装 Prometheus

软件下载地址: 

https://prometheus.io/download/

1.1 下载 Prometheus

我用的版本比较老这里仅作参考, 建议下载新版本二进制包

# 下载 Prometheuswget https://github.com/prometheus/prometheus/releases/download/v2.3.0/prometheus-2.3.0.linux-amd64.tar.gz# 解压文件tar -zxvf prometheus-2.3.0.linux-amd64.tar.gzcd prometheus-2.3.0.linux-amd64

1.2 目录结构

解压后的目录包含以下主要文件和目录:

  • prometheus

    :启动执行文件

  • promtool

    : 命令行工具,用于验证配置文件和规则

  • prometheus.yml

    : 主配置文件

  • rules&target

    : 需要手动创建存放告警规则文件和监控node的配置文件

    ll rules/

    ll target/node/

  • consoles/

    : 存放 Web 控制台模板

1.3 启动 Prometheus

# 启动 Prometheusnohup ./prometheus --config.file=prometheus.yml \--web.enable-lifecycle \--web.listen-address=192.168.1.139:8001 &

Prometheus 默认端口9090我这里用的是8001,浏览器访问地址

http://192.168.1.139:8001

2、Node Exporter 安装(监控主机)

下载地址:​​​​​​​

cd /opt/soft/#解压 tar -zxvf  node_exporter-1.3.1.linux-amd64.tar.gz#进入安装目录 cd /opt/soft/node_exporter-1.3.1.linux-amd64#启动 (collector.textfile.directory 存放自定义指标数据最后会有使用说明)nohup ./node_exporter --collector.textfile.directory=./key &

访问 http://127.0.0.1:9100/metrics,若返回类似以下内容,说明 Node Exporter 已正常工作:​​​​​​​

# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.# TYPE go_gc_duration_seconds summarygo_gc_duration_seconds{quantile="0"} 1.6425e-05go_gc_duration_seconds{quantile="0.25"} 3.4856e-05go_gc_duration_seconds{quantile="0.5"} 5.8672e-05go_gc_duration_seconds{quantile="0.75"} 8.4572e-05go_gc_duration_seconds{quantile="1"} 0.000452457go_gc_duration_seconds_sum 12.595550358go_gc_duration_seconds_count 185069# HELP go_goroutines Number of goroutines that currently exist.# TYPE go_goroutines gaugego_goroutines 7# HELP go_info Information about the Go environment.

下面我们开始解析配置和使用Prometheus

3. 配置 Prometheus

Prometheus 的配置文件是 YAML 格式的

3.1  配置解析

  全局配置​​​​​​​

# my global configglobal:  scrape_interval:     15s # 抓取(scrape)间隔时间, 默认是1分钟  evaluation_interval: 15s # 规则评估间隔默认也是 1 分钟

Alertmanager配置​​​​​​​

# Alertmanager configurationalerting:  alertmanagers:  - static_configs:    - targets:      - 127.0.0.1:9093 #这里配置Alertmanager的地址

3.2 规则配置
rule files是支持自定义的,为了清晰区分不同的告警规则,可以不同的规则文件
作用:定义触发报警的规则条件,prometheus 会加载rules下的所有规则文件里定义的规则条件​​​​​​​

# 加载规则一次,并根据全局“evaluation_interval”定期对其进行评估rule_files:    - /data/prometheus-2.3.0.linux-amd64/rules/*.rules     - /data/prometheus-2.3.0.linux-amd64/rules/*.yml#*.yml、*.rules代表所有此后缀的文件如1.rules、2.rules


3.3 端点以及被监控的node_export配置
为了方便维护,可以以不同的项目,或者按业务类型,创建不同的目录为每个应用创建单独的配置文件


#需要注意下metrics_path,node_export默认是/metrics可以不写,这里例子监控的是java后端,java接入prometheus指标端点是

/actuator/prometheus

所以就配置的/actuator/prometheus 

# 获取指标数据就这样访问

“http://127.0.0.1:8080/actuator/prometheus”

​​​​​​​

- job_name: 'application'  #这个任务下的指标都会自动加一个标签 `job="application"`      metrics_path: /actuator/prometheus  #file_sd_configs文件服务发现"机制来动态发现监控目标  #优点:新增或者关闭监控目标不用重启Prometheus      file_sd_configs:   - files: #定义被监控的node_export配置文件存放路径    - "/data/app/monitor/prometheus-2.3.0.linux-amd64/target/app/*.json"    refresh_interval: 6s # 文件发现服务刷新时间

3.4 以下是一份完整的配置文件​​​​​​​

global:  scrape_interval:     15s   evaluation_interval: 15s

alerting:  alertmanagers:  - static_configs:    - targets:      - 127.0.0.1:9093
rule_files:    - /data/prometheus-2.3.0.linux-amd64/rules/*.rules     - /data/prometheus-2.3.0.linux-amd64/rules/*.ymlscrape_configs:  #prometheus自己  - job_name: 'prometheus'
    static_configs:    - targets: ['192.168.1.139:8001']      labels:          instance: prometheus  - job_name: 'node' #存放node-export的配置    file_sd_configs:    - files:      - "/data/prometheus-2.3.0.linux-amd64/target/node/*.json"      refresh_interval: 6s  - job_name: 'application' #后端业务应用的配置     metrics_path: /actuator/prometheus    file_sd_configs:    - files:      - "/data/prometheus-2.3.0.linux-amd64/target/application/*.json"      refresh_interval: 6s

3.5 在服务端增加被监控端的配置文件​​​​​​​

#targets 目标主机地址#labels 监控目标主机的标签,结合altermannger通知模版这些标签可以展示到告警通知的内容里 [root@test node]# cat 192.168.1.139.json[  {    "targets":  ["192.168.1.139:9100"],     "labels": {        "env": "test",        "servicename": "测试",        "hostname": "测试机"  }}]创建好后将文件放在/data/prometheus-2.3.0.linux-amd64/target/application/下,prometheus定时扫描会自动加载被监控端的配置

访问http://192.168.1.139:8001, 看到192.168.1.139:9100已经加过来了

3.6 规则文件(这是一个自定义的规则例子结合脚本实现的监控)​​​​​​​

[root@test rules]# cat zidingyi.rules groups: # 规则组- name: port # 规则组的名称  - alert: nexus(私服) #告警名称    expr: nexus == 0   # for: 1m #持续多久后发送 # 不设置持续时间,默认为0会直接 Inactive 状态转换成 Firing状态,然后触发警报    labels:      severity: "紧急"    annotations: #信息      summary: "端口不通"      description: "模版测试收到请忽略"#将文件zidingyi.rules放到/data/prometheus-2.3.0.linux-amd64/rules/#路径下

这里我们就以监控nexus为例子在

在node_exporter端自定义脚本​​​​​​​

cat /opt/soft/node_exporter-1.3.1.linux-amd64/key/key_runner.sh#!/bin/bashecho "nexus" `netstat -tunlp|grep 8082|wc -l` #当8082不存在时会打印0  #我们监控规则里定义 expr: nexus == 0 时发送通知

增加crontab定时任务

*/1 * * * *  /bin/bash /opt/soft/node_exporter-1.3.1.linux-amd64/key/key_runner.sh >/opt/soft/node_exporter-1.3.1.linux-amd64/key/key.prom

这里需注意我们用脚本自定义指标数据写入key.prom, 格式是

​​​​​​​

nexus 1 或者 nexus 0 #告警规则里会根据0 1区分是否发送通知 

node_export会收集启动时要指定collector.textfile.directory   注​:本文内容为技术经验总结​仅供参考。实际部署时,请结合自身业务场景、环境特性及安全要求调整配置,操作前建议备份关键数据并在测试环境验证

35岁+运维人员的发展与出路

经常有人问我:干网工、干运维多年遇瓶颈,想学点新技术给自己涨涨“身价”,应该怎么选择?

聪明人早已经用脚投票:近年来,越来越多运维的朋友寻找新的职业发展机会,将目光聚焦到了网络安全产业。

1、为什么我建议你学习网络安全?

有一种技术人才:华为阿里平安等大厂抢着要,甚至高薪难求——白帽黑客。白帽黑客,就是网络安全卫士,他们“低调”行事,同时“身价”不菲。

根据腾讯安全发布的《互联网安全报告》,目前中国**网络安全岗位缺口已达70万,缺口高达95%。**而与网络安全人才需求量逐年递增局面相反的是,每年高校安全专业培养人才仅有3万余人,很多企业却一“将”难求,网络安全人才供应严重匮乏。

这种供求不平衡直接反映在安全工程师的薪资上,简单来说就是:竞争压力小,薪资还很高。

而且安全行业就业非常灵活,既可以就职一家公司从事信息安全维护和研究,也可以当作兼职或成为自由职业者,给SRC平台提交漏洞获取奖金等等。

随着国家和政府的强监管需求,一线城市安全行业近年来已经发展的相当成熟工作机会非常多,二三线城市安全也在逐步得到重视未来将有巨大缺口。

作为运维人员,这几年对于安全的技能要求也将不断提高,现阶段做好未来2到3年的技术储备,有非常大的必要性

2、运维转型成为网络安全工程师,是不是很容易?

运维转安全,因为本身有很好的Linux基础,相对于其他人来说,确实有一定的优势,入门会快一些。
系统管理经验
运维对服务器、网络架构的深度理解,可直接迁移到安全防护场景。例如,熟悉Linux/Windows系统漏洞修补、权限管控,能快速上手安全加固工作。
网络协议与架构知识
运维日常接触TCP/IP、路由协议等,有助于分析网络攻击路径(如DDoS防御、流量异常检测)。
自动化与脚本能力
运维常用的Shell/Python脚本技能,可无缝衔接安全工具开发(如自动化渗透脚本、日志分析工具)。
平滑过渡方向
从安全运维切入,逐步学习渗透测试、漏洞挖掘等技能,利用现有运维经验快速上手。
学习资源丰富
可复用运维工具(如ELK日志分析、Ansible自动化)与安全工具(如Nessus、Metasploit)结合学习,降低转型成本。

3. 转型可以挖漏洞搞副业获取收益挖SRC漏洞

  1. 合法挖洞:在合法的平台上挖掘安全漏洞,提交后可获得奖励。这种方式不仅能够锻炼你的技能,还能为你带来额外的收入。

  2. 平台推荐:

补天:国内领先的网络安全漏洞响应平台。

漏洞盒子:提供丰富的漏洞挖掘任务。

CNVD:国家信息安全漏洞共享平台。

关于我

有不少阅读过我文章的伙伴都知道,笔者曾就职于某大厂安全联合实验室。从事网络安全行业已经好几年,积累了丰富的技能和渗透经验。

在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用,提高了互联网安全防护水平。

在这里插入图片描述

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值