提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、通用监控系统基础知识以及Prometheus的概述
1.监控系统的发展史:
SNMP时代:机器内置的SNMP 当今时代:ZABBIX、Prometheus…小米自研监控系统等。 未来的监控时代:AI…
2.什么是Prometheus?
Prometheus是一款时序数据库,功能并非只作为数据库,是一款对目标(Target)进行监控的关键组件。结合其他的组件(Pushgateway、Altermanager、Grafana)组成一款完整的IT监控系统。默认数据保留一个月。
时序数据:在一段时间内通过重复的测量获得的值的集合,用图形表示会有一个数据轴和一个时间轴。
二、工作原理及适用性
1.prometheus获取数据的方式
基于Http call,从配置文件中指定的网络端点上周期性的获取数据。
支持三种类型的途径从目标上拉取数据。(被监控的对象需要安装什么?)
- Exporters :官网https://prometheus.io/download/#node_exporter
- Instrumentation :应用程序内置prometheus兼容的指标格式数据
- Pushgateway:先推送给中间器,在从中间器拉取数据
2.Prometheus 负责时序型指标数据的采集及存储,数据的分析、聚合、可视化、告警需要安装其他组件。
三,实验环境
IP地址 | 角色 |
---|
192.168.10.129 | prometheus、node1 | 192.168.10.135 | altermanager、node2 | 192.168.10.131 | grafana、node3 |
1.关闭防火墙和核心防护
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config && setenforce 0
1.1Prometheus部署
192.168.10.129 下载prometheus
mkdir /software && cd /software
wget https://github.com/prometheus/prometheus/releases/download/v2.19.0/prometheus-2.19.0.linux-amd64.tar.gz
tar xf prometheus-2.19.0.linux-amd64.tar.gz
mv prometheus-2.19.0.linux-amd64 /usr/local/prometheus
安装prometheus:
useradd -M -s /sbin/nologin prometheus
mkdir -p /data/prometheus
chown -R prometheus:prometheus /usr/local/prometheus /data/prometheus
vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target
[Service]
Type=simple
Environment="GOMAXPROCS=4"
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/data/prometheus \
--storage.tsdb.retention=30d \
--web.console.libraries=/usr/local/prometheus/console_libraries \
--web.console.templates=/usr/local/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
启动prometheus:
systemctl daemon-reload
systemctl enable prometheus && systemctl start prometheus
netstat -lntp | grep prometheus
tcp6 0 0 :::9090 :::* LISTEN 43742/prometheus
|