saltstack部署Prometheus

alerting:

alertmanagers:

  • static_configs:

  • targets:

- alertmanager:9093

Load rules once and periodically evaluate them according to the global ‘evaluation_interval’.

rule_files:

- “first_rules.yml”

- “second_rules.yml”

A scrape configuration containing exactly one endpoint to scrape:

Here it’s Prometheus itself.

scrape_configs:

The job name is added as a label job=<job_name> to any timeseries scraped from this config.

  • job_name: ‘prometheus’

metrics_path defaults to ‘/metrics’

scheme defaults to ‘http’.

static_configs:

  • targets: [‘localhost:9090’]

{% for ip in pillar[‘nodes’] %}

  • job_name: “{{ ip }}”

static_configs:

  • targets: [“{{ ip }}”]

{% endfor %}

prometheus.service启动文件


[root@master files]# pwd

/srv/salt/prod/modules/prometheus/files

[root@master files]# cat prometheus.service.j2

[Unit]

Description=The Prometheus Server

After=network.target

[Service]

Restart=on-failure

ExecStart={{ pillar[‘prometheus_install_dir’] }}/prometheus/prometheus --config.file={{ pillar[‘prometheus_install_dir’] }}/prometheus/prometheus.yml

ExecStop=/bin/kill -HUP $MAINPID

RestartSec=15s

[Install]

WantedBy=multi-user.target

执行server.sls

[root@master ~]# salt ‘p1’ state.sls modules.prometheus.server saltenv=prod

p1:


ID: copy-grafana-enterprise

Function: file.managed

Name: /usr/src/grafana-enterprise-8.2.5-1.x86_64.rpm

Result: True

Comment: File /usr/src/grafana-enterprise-8.2.5-1.x86_64.rpm is in the correct state

Started: 01:04:57.614250

Duration: 477.94 ms

Changes:


ID: install-grafana

Function: cmd.run

Name: cd /usr/src/ && yum -y install grafana-enterprise-8.2.5-1.x86_64.rpm

Result: True

Comment: unless condition is true

Started: 01:04:58.092946

Duration: 1671.231 ms

Changes:


ID: unzip-prometheus

Function: archive.extracted

Name: /usr/local

Result: True

Comment: unless condition is true

Started: 01:04:59.764475

Duration: 17.066 ms

Changes:


ID: unzip-prometheus

Function: file.symlink

Name: /usr/local/prometheus

Result: True

Comment: Symlink /usr/local/prometheus is present and owned by root:root

Started: 01:04:59.781935

Duration: 7.926 ms

Changes:


ID: copy-files

Function: file.managed

Name: /usr/lib/systemd/system/prometheus.service

Result: True

Comment: File /usr/lib/systemd/system/prometheus.service is in the correct state

Started: 01:04:59.789997

Duration: 13.572 ms

Changes:


ID: copy-files

Function: file.managed

Name: /usr/local/prometheus/prometheus.yml

Result: True

Comment: File /usr/local/prometheus/prometheus.yml updated

Started: 01:04:59.803711

Duration: 20.654 ms

Changes:


diff:


+++

@@ -29,9 +29,9 @@

  • targets: [‘localhost:9090’]

    • job_name: “192.168.129.135:9100”
    • job_name: “192.168.129.133:9100”

static_configs:

  •  - targets: ["192.168.129.135:9100"]
    
  •  - targets: ["192.168.129.133:9100"]
    
  • job_name: “192.168.129.136:9100”

static_configs:


ID: start-grafana-enterprise

Function: service.running

Name: grafana-server.service

Result: True

Comment: The service grafana-server.service is already running

Started: 01:04:59.824632

Duration: 41.703 ms

Changes:


ID: start-prometheus

Function: service.running

Name: prometheus.service

Result: True

Comment: Service prometheus.service is already enabled, and is running

Started: 01:04:59.867011

Duration: 97.745 ms

Changes:


prometheus.service:

True

Summary for p1


Succeeded: 8 (changed=2)

Failed: 0


Total states run: 8

Total run time: 2.348 s

node_exporter状态文件


[root@master prometheus]# pwd

/srv/salt/prod/modules/prometheus

[root@master prometheus]# cat agent.sls

unzip-node_exporter:

archive.extracted:

  • name: {{ pillar[‘node_exporter_install_dir’] }}

  • source: salt://modules/prometheus/files/node_exporter-1.3.0.linux-amd64.tar.gz

  • unless: test -d {{ pillar[‘node_exporter_install_dir’] }}/node_exporter-1.3.0.linux-amd64

file.symlink:

  • name: {{ pillar[‘node_exporter_install_dir’] }}/node_exporter

  • target: {{ pillar[‘node_exporter_install_dir’] }}/node_exporter-1.3.0.linux-amd64

/usr/lib/systemd/system/node_exporter.service:

file.managed:

  • source: salt://modules/prometheus/files/node_exporter.service.j2

  • user: root

  • group: root

  • mode: ‘0644’

  • template: jinja

node_exporter.service:

service.running:

  • reload: true

  • enable: true

  • watch:

  • file: /usr/lib/systemd/system/node_exporter.service

node_exporter.service启动文件


[root@master prometheus]# cat files/node_exporter.service.j2

[unit]

Description=The node_exporter Server

After=network.target

[Service]

ExecStart={{ pillar[‘node_exporter_install_dir’] }}/node_exporter/node_exporter

Restart=on-failure

RestartSec=15s

SyslogIdentifier=node_exporter

[Install]

WantedBy=multi-user.target

执行agent.sls

[root@master ~]# salt ‘p2’ state.sls modules.prometheus.agent saltenv=prod

p2:


ID: unzip-node_exporter

Function: archive.extracted

Name: /usr/local/

Result: True

Comment: unless condition is true

Started: 00:53:55.563311

Duration: 1534.873 ms

Changes:


ID: unzip-node_exporter

Function: file.symlink

Name: /usr/local//node_exporter

Result: True

Comment: Symlink /usr/local//node_exporter is present and owned by root:root

Started: 00:53:57.098551

Duration: 5.494 ms

Changes:


ID: /usr/lib/systemd/system/node_exporter.service

Function: file.managed

Result: True

Comment: File /usr/lib/systemd/system/node_exporter.service updated

Started: 00:53:57.104187

Duration: 46.98 ms

Changes:


diff:

New file

mode:

0644


ID: node_exporter.service

Function: service.running

Result: True

Comment: Service node_exporter.service has been enabled, and is running

Started: 00:53:57.151820

Duration: 282.957 ms

Changes:


node_exporter.service:

True

Summary for p2


Succeeded: 4 (changed=2)

Failed: 0


Total states run: 4

Total run time: 1.870 s

[root@master ~]# salt ‘*’ state.sls modules.prometheus.agent saltenv=prod

[root@master ~]# vim /srv/salt/prod/modules/prometheus/main.sls

prod:

‘p1’

  • modules.prometheus.server

‘p2’

  • modules.prometheus.agent

[root@master ~]# salt ‘*’ state.highstate

效果图


在这里插入图片描述

  • 首次登陆时需要ip+端口号(默认为3000)

  • 默认账号:admin 密码:admin

在这里插入图片描述

再次输入(因为你是首次登陆)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
在这里插入图片描述
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
img-PSHSd9Aa-1713381456615)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
[外链图片转存中…(img-SHWYoPIJ-1713381456615)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值