Prometheus安装,Prometheus监控方案简介

Prometheus安装,Prometheus监控方案简介

env
CentOS Linux release 7.9.2009 (Core)
prometheus-2.33.4.linux-amd64
node_exporter-1.3.1.linux-amd64
grafana-8.4.1-1.x86_64
alertmanager-0.23.0.linux-amd64

Prometheus是go编写的开源监控系统,使用时序数据库(TSDB),不依赖任何三方软件包
2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本
https://prometheus.io/download

Prometheus安装部署
node_exporter安装部署
Grafana安装部署
Alertmanager安装部署

数据流

服务架构

Prometheus安装部署

下载安装:
mkdir -p /opt /data/prom
cd /opt
export VERSION=2.33.4
curl -OL https://github.com/prometheus/prometheus/releases/download/v$VERSION/prometheus-$VERSION.linux-amd64.tar.gz
tar -xf prometheus-$VERSION.linux-amd64.tar.gz
mv prometheus-$VERSION.linux-amd64 prom
cd prom
touch $VERSION.readme
./prometheus --storage.tsdb.path="/data/prom"

注册systemd服务:
useradd prom
echo 'igopwd' |passwd --stdin prom
chown -R prom.prom /data/prom /opt/prom

tee >/etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prom
Restart=on-failure
ExecStart=/opt/prom/prometheus \
--config.file=/opt/prom/prometheus.yml \
--storage.tsdb.path=/data/prom
[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
http://192.168.3.191:9090/

node_exporter安装部署

mkdir /data /opt
cd /opt
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
touch node_exporter-1.3.1.linux-amd64/node_exporter-1.3.1.linux-amd64.readme
mv node_exporter-1.3.1.linux-amd64 node_exporter
cd node_exporter

配置systemd服务:
tee >/usr/lib/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_exporter service
[Service]
User=root
ExecStart=/opt/node_exporter/node_exporter
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl start node_exporter
systemctl status node_exporter
systemctl enable node_exporter


配置prometheus_srv端:
[root@igo-prometheus-srv opt]#
cp /opt/prom/prometheus.yml{,.bak}
vim 追加配置 /opt/prom/prometheus.yml

  - job_name: "igo-111_node"
    static_configs:
      - targets: ["192.168.3.111:9100"]
        labels:
          label: "igo-golang-111"
node_exporter
node_exporter_metrics

Grafana安装部署

tee >/etc/yum.repos.d/grafana.repo <<EOF
[grafana]
name=grafana
baseurl=https://mirrors.aliyun.com/grafana/yum/rpm
repo_gpgcheck=0
enabled=1
gpgcheck=0
EOF

yum makecache
yum list grafana --showduplicates
yum install -y grafana-8.4.1-1
systemctl start grafana-server
systemctl enable grafana-server
grafana
igo-node_exporter111,id号8919

Alertmanager安装部署

容器安装
$ docker run --name alertmanager -d -p 127.0.0.1:9093:9093 quay.io/prometheus/alertmanager
http://localhost:9093/

Go安装
$ GO15VENDOREXPERIMENT=1 go get github.com/prometheus/alertmanager/cmd/...
# cd $GOPATH/src/github.com/prometheus/alertmanager
$ alertmanager --config.file=<your_file>
http://localhost:9093/

包安装Precompiled binaries
wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
touch alertmanager-0.23.0.linux-amd64/alertmanager-0.23.0.linux-amd64.readme
mv alertmanager-0.23.0.linux-amd64 alertmanager
mkdir -p /data/alertmanager

注册服务systemd
tee >/usr/lib/systemd/system/alertmanager.service <<EOF
	[Unit]
	Description=alertmanager
	Documentation=https://github.com/prometheus/alertmanager
	After=network.target
	
	[Service]
	Type=simple
	User=root
	ExecStart=/opt/alertmanager/alertmanager --config.file=/opt/alertmanager/alertmanager.yml --storage.path=/data/alertmanager
	Restart=on-failure
	
	[Install]
	WantedBy=multi-user.target
EOF

systemctl start alertmanager
systemctl enable alertmanager

修改prometheus字段
vim /opt/prom/prometheus.yml
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          - 192.168.3.191:9093
		  
systemctl restart prometheus
http://192.168.3.191:9093/
Alertmanager_cfg-example
[root@igo-prometheus-srv alertmanager]# cat /opt/alertmanager/alertmanager.yml
route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 1h
  receiver: 'web.hook'
receivers:
- name: 'web.hook'
  webhook_configs:
  - url: 'http://127.0.0.1:5001/'
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']

Avatar photo
igoZhang

互联网应用,虚拟化,容器

评论已关闭。