状态文件部署prometheus

状态文件部署prometheus

[root@master srv]# tree
.
└── salt
    ├── base
    │   ├── apache.sls
    │   ├── top.sls
    │   └── web
    │       └── apache
    │           ├── apache.sls
    │           └── install.sls
    ├── dev
    ├── pillar
    │   ├── base
    │   │   ├── apache.sls
    │   │   └── top.sls
    │   └── prod
    │       ├── prometheus.sls
    │       └── top.sls
    ├── prod
    │   └── modules
    │       ├── insatll.sh
    │       ├── install.sls
    │       ├── prometheus
    │       │   ├── files
    │       │   │   ├── grafana-install.sh
    │       │   │   ├── node_exporter.service.j2
    │       │   │   ├── prometheus-2.31.1.linux-amd64.tar.gz
    │       │   │   ├── prometheus.service.j2
    │       │   │   └── prometheus.yml.j2
    │       │   ├── grafana_install.sls
    │       │   ├── monitor.sls
    │       │   ├── node_install.sls
    │       │   └── prometheus_install.sls
    │       └── prometheus-2.31.1.linux-amd64.tar.gz
    └── test

prometheus.sls

[root@master /]# cat /srv/salt/pillar/prod/prometheus.sls 
prometheus_install_dir:/usr/local/
node_exporter_ip:192.168.197.131
[root@master /]# cat /srv/salt/pillar/prod/top.sls 
prod:
  '*'
    - prometheus
[root@master /]# 

grafana_install.sls

[root@master /]# cat /srv/salt/prod/modules/prometheus/grafana_install.sls
/usr/src/grafana-enterprise-8.2.5-1.x86_64.rpm:
  file.managed:
    - source: salt://modules/prometheus/files/grafana-enterprise-8.2.5-1.x86_64.rpm
    - user: root
    - group: root
    - mode: '0644'

grafana-install:
  cmd.script:
    - name: salt://modules/prometheus/files/grafana-install.sh
    - unless: test -d /etc/grafana

grafana-server:
  service.running:
    - reload: true
    - enable: true

node_install.sls

[root@master /]# cat /srv/salt/prod/modules/prometheus/node_install.sls
unzip-node:
  archive.extracted:
    - name: {{ pillar['prometheus_install_dir'] }}
    - source: salt://modules/prometheus/files/node_exporter-1.3.0.linux-amd64.tar.gz
    - if_missing: {{ pillar['prometheus_install_dir'] }}/node_exporter-1.3.0.linux-amd64

rename-node:
  file.rename:
    - name: {{ pillar['prometheus_install_dir'] }}/node_exporter
    - source: {{ pillar['prometheus_install_dir'] }}/node_exporter-1.3.0.linux-amd64
    - force: false
    - makedirs: false

/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:
    - enable: true
    - reload: true

prometheus_install.sls

[root@master /]# cat /srv/salt/prod/modules/prometheus/prometheus_install.sls
prometheus:
  uer.present:
    - system:true
    - shell:/sbin/nologin
    - createhome:false

unzip-prometheus:
  archive.extracted:
    - name:{{pillar['prometheus_install_dir']}}
    - source:salt://modules/prometheus/files/prometheus-2.31.1.linux-amd64.tar.gz
    - if_missing:{{pillar['prometheus_install_dir']}}/prometheus-2.31.1.linux-amd64

renae-prometheus:
  file.rename:
    - name:{{pillar['prometheus_install_dir']}}
    - source:salt://modules/prometheus/files/prometheus-2.31.1.linux-amd64
    - force:false
    makedirs:false

/data/prometheus:
  file.directory:
    - user:prometheus
    - group:prometheus
    - mode:'0755'
    - makedirs:true

/usr/lib/systemd/system/prometheus.service:
  file.managed:
    - source: salt://modules/prometheus/files/prometheus.service.j2
    - user: root
    - group:root
    - mode: '0644'
    - template:jinja

prometheus.service:
  service.running:
    - enable:true
    - reload:true

[root@master /]# cat /srv/salt/prod/modules/prometheus/files/node_exporter.service.j2
[Unit]
Description=The node_exporter Server
After=network.target

[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
RestartSec=15s
SyslogIdentifier=node_exporter

[Install]
WantedBy=multi-user.target
[root@master /]# cat /srv/salt/prod/modules/prometheus/files/prometheus.yml.j2
# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
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: ["{{ pillar['node_exporter_ip'] }}:9100"]
[root@master /]#
 
[root@master /]# cat /srv/salt/prod/modules/prometheus/files/prometheus.service.j2
[Unit]
Description=Prometheus
After=network.target

[Service]
Type=simple
Environment="GOMAXPROCS=4"
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart={{ pillar['prometheus_install_dir'] }}/prometheus/prometheus \
  --config.file={{ pillar['prometheus_install_dir'] }}/prometheus/prometheus.yml \
  --storage.tsdb.path=/data/prometheus \
  --storage.tsdb.retention=30d \
  --web.console.libraries={{ pillar['prometheus_install_dir'] }}/prometheus/console_libraries \
  --web.console.templates={{ pillar['prometheus_install_dir'] }}/prometheus/consoles \
  --web.listen-address=0.0.0.0:9090 \
  --web.read-timeout=5m \
  --web.max-connections=10 \
  --query.max-concurrency=20 \
  --query.timeout=2m \
  --web.enable-lifecycle
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
NoNewPrivileges=true
LimitNOFILE=infinity
ReadWriteDirectories=/data/prometheus
ProtectSystem=full

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target
[root@master /]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署Prometheus,您需要按照以下步骤进行操作: 1. 修改Prometheus服务器的配置文件:使用命令`vim /usr/local/prometheus/prometheus.yml`打开配置文件,然后添加以下内容: ``` - job_name: 'agent' static_configs: - targets: \['192.168.187.68:9100'\] ``` 这将配置Prometheus监控的目标。 2. 配置系统启动文件,设置开机自启:使用命令`vim /usr/lib/systemd/system/prometheus.service`打开启动文件,然后添加以下内容: ``` \[Unit\] Description=Prometheus Server Documentation=https://prometheus.io After=network.target \[Service\] Type=simple ExecStart=/usr/local/prometheus/prometheus \ --config.file=/usr/local/prometheus/prometheus.yml \ --storage.tsdb.path=/usr/local/prometheus/data/ \ --storage.tsdb.retention=15d \ --web.enable-lifecycle ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure \[Install\] WantedBy=multi-user.target ``` 这将配置Prometheus作为系统服务,并设置开机自启。 3. 开启Prometheus并验证:使用以下命令启动Prometheus服务并检查状态: ``` systemctl start prometheus systemctl enable prometheus netstat -natp | grep :9090 ``` 如果状态显示为UP,说明Prometheus能够正常采集数据。 4. 访问Prometheus的Web UI界面:在浏览器中访问`http://192.168.187.48:9090`,您将能够看到Prometheus的Web UI界面。点击页面上的"Status",然后选择"Targets",如果所有的Target状态都为UP,说明Prometheus能够正常采集数据。您还可以访问`http://192.168.187.48:9090/metrics`来查看Prometheus采集到的指标数据。 请注意,上述步骤中的IP地址和端口号可能需要根据您的实际情况进行修改。 #### 引用[.reference_title] - *1* *2* *3* [Prometheus部署](https://blog.csdn.net/weixin_71429839/article/details/127551531)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值