Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

第 69 章 Prometheus

目录

69.1. 安装 Prometheus
69.1.1. Docker 安装
69.1.2. docker swarm
69.1.3. docker-compose
69.1.4. 防火墙设置
69.2. Prometheus 配置
69.2.1. Prometheus 命令行工具
69.2.2. rules 规则配置
69.2.3. SpringBoot
69.2.4. PromQL 自定义查询语言
69.3. Prometheus Exporter
69.3.1. 监控 Docker
69.3.2. node-exporter
69.3.3. cadvisor
69.3.4. Nginx Prometheus Exporter
69.3.5. Redis
69.3.6. MongoDB
69.3.7. MySQL
69.3.8. Blackbox Exporter(blackbox-exporter)
69.3.9. SNMP Exporter
69.4. Alertmanager
69.4.1. Docker 安装
69.4.2. alertmanager.yml 配置文件
69.4.3. 触发测试
69.4.4. 警报状态
69.5. Grafana
69.5.1. cadvisor
69.5.2. Docker - container summary (Prometheus)

69.1. 安装 Prometheus

69.1.1. Docker 安装

			
docker run -d -p 9090:9090 -v ~/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus -config.file=/etc/prometheus/prometheus.yml -storage.local.path=/prometheus -storage.local.memory-chunks=10000			
			
			

			
docker run -d -p 9100:9100 --user 995:995 \
-v "/:/hostfs" \
--net="host" \
prom/node-exporter \
--path.rootfs=/hostfs	
			
			

检查 node-exporter 是否正常工作

			
$ curl http://localhost:9100/metrics
			
			

安装 grafana

			
$ docker run -d --name grafana -p 3000:3000 --net=host -e "GF_SECURITY_ADMIN_PASSWORD=passw0rd" grafana/grafana			
			
			

-e "GF_SERVER_ROOT_URL=http://grafana.server.name"

			
docker exec -it grafana cat /etc/grafana/grafana.ini > grafana.ini			
			
			

环境变量配置的默认路径

			
环境变量					默认值
GF_PATHS_CONFIG			/etc/grafana/grafana.ini
GF_PATHS_DATA			/var/lib/grafana
GF_PATHS_HOME			/usr/share/grafana
GF_PATHS_LOGS			/var/log/grafana
GF_PATHS_PLUGINS		/var/lib/grafana/plugins
GF_PATHS_PROVISIONING	/etc/grafana/provisioning			
			
			

69.1.2. docker swarm

			
$ docker service create --replicas 1 --name prometheus \
    --mount type=bind,source=`pwd`/prometheus.yml,destination=/etc/prometheus/prometheus.yml \
    --publish published=9090,target=9090,protocol=tcp \
    prom/prometheus
			
			

69.1.3. docker-compose

			

			
			

69.1.4. 防火墙设置

			
firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --zone=public --add-port=9191/tcp --permanent
firewall-cmd --zone=public --add-port=9093/tcp --permanent
firewall-cmd --zone=public --add-port=9323/tcp --permanent
firewall-cmd --reload
			
			

查看端口策略是否已经生效

			
firewall-cmd --permanent --zone=public --list-ports