Prometheus、Grafana等使用配置随手记
【摘要】 本文涵盖了 Prometheus、Grafana、Docker、PostgreSQL、Elasticsearch 等工具的配置与使用,以及系统资源管理、网络配置、文件系统操作等内容。关键点包括:Prometheus 和 Grafana 的监控系统配置与数据存储管理。Docker 容器的网络、存储、日志与调试。PostgreSQL 的安装、配置、数据目录初始化与远程连接设置。Elasticse...
本文涵盖了 Prometheus、Grafana、Docker、PostgreSQL、Elasticsearch 等工具的配置与使用,以及系统资源管理、网络配置、文件系统操作等内容。关键点包括:
- Prometheus 和 Grafana 的监控系统配置与数据存储管理。
- Docker 容器的网络、存储、日志与调试。
- PostgreSQL 的安装、配置、数据目录初始化与远程连接设置。
- Elasticsearch 的数据管理与索引操作。
- 系统资源管理、LVM 逻辑卷操作、SELinux 配置等系统级操作。
1. Prometheus 和 Grafana 的监控系统配置
-
Prometheus 组件:
- node-exporter:用于收集宿主机的系统和硬件指标,如 CPU、内存、磁盘 I/O 等。
- mysqld-exporter:用于收集 MySQL 数据库的性能指标。
- cadvisor:用于监控容器的资源使用情况,如 CPU、内存、磁盘 I/O 等。
-
Prometheus 配置:
- 通过
prometheus.yml
配置文件定义抓取任务(job),如node-exporter
和cadvisor
的抓取配置。 - 使用
relabel_configs
对抓取的数据进行标签重写,方便数据分类和查询。
- 通过
-
Grafana 配置:
- Grafana 使用 Prometheus 作为数据源,通过 Dashboard 展示监控数据。
- Dashboard 的 JSON 配置文件中包含
panels
和templating
部分,分别用于定义面板和变量。 - Grafana 的
root_url
配置用于指定 Grafana 的公网访问地址,通常用于反向代理和子路径配置。(当Grafana的地址不能访问时,寻找发现原来Grafana被除名后集成到了某个系统里,访问地址有了变化)
-
数据存储与清理:
- Prometheus 的数据存储在
/data
目录下,数据目录按时间分片存储,定期清理旧数据以避免磁盘空间不足。(直接删除掉,干净简洁) - Grafana 使用 MySQL 数据库存储用户、仪表板、报警规则等元数据。
- Prometheus 的数据存储在
2. Docker 和容器化部署
-
Docker Compose:
- 使用
docker-compose.yml
文件定义多容器应用程序的配置,包括服务、网络、卷等。 - 通过
docker-compose up
和docker-compose down
命令快速启动和停止容器。(down和stop有区别,stop停止容器、而down停止后还会删除容器)
- 使用
-
容器网络配置:
- 使用
network_mode: "host"
让容器共享宿主机的网络栈,避免端口映射问题。 - 使用
volumes
挂载宿主机的文件系统到容器中,确保数据持久化。
- 使用
-
容器日志与调试:
- 使用
docker logs
查看容器日志,使用docker inspect
查看容器配置。 - 通过
docker exec
在容器内执行命令,如curl
请求 Prometheus 的/reload
接口。
- 使用
3. PostgreSQL 数据库部署与配置
-
PostgreSQL 安装与启动:
- 使用
yum
安装 PostgreSQL 13.16,并通过postgresql-13.16-setup initdb
初始化数据库。 - 使用
systemctl start postgresql-13.16
启动 PostgreSQL 服务。
- 使用
-
数据库配置:
- 修改
pg_hba.conf
和postgresql.conf
文件,允许来自任何主机的连接。 - 使用
ALTER USER postgres WITH PASSWORD 'newpassword';
设置postgres
用户的密码。
- 修改
-
数据目录初始化:
- 使用
initdb -D /new/pgdata
在指定目录初始化 PostgreSQL 数据目录,并确保目录权限正确。
- 使用
4. 系统与网络配置
-
SELinux 配置:
- 使用
setenforce 0
临时关闭 SELinux,或修改/etc/selinux/config
文件永久关闭 SELinux。
- 使用
-
LVM 逻辑卷管理:
- 使用
lvremove
和vgremove
删除不再使用的逻辑卷和卷组。 - 使用
lvextend
扩展逻辑卷,并使用resize2fs
调整文件系统大小。
- 使用
-
网络配置:
- 使用
docker run
启动容器时,通过-p
参数映射端口,确保容器服务可以通过宿主机访问。
- 使用
5. Elasticsearch 数据管理
-
Elasticsearch 概念:
- Shards:分片是 Elasticsearch 中数据分布和查询的基本单元,分为主分片和副本分片。
- Indices:索引是存储相关文档的集合,类似于数据库中的“数据库”。(更像表)
- Documents:文档是 Elasticsearch 中存储数据的基本单元,类似于数据库中的“行”。
-
数据操作:
- 使用
curl
命令查询和更新 Elasticsearch 中的文档,如更新microservices_name
字段的值。 - 使用
DELETE
请求删除不再需要的索引,如sop_event_log-2024.10.29-000001
。
- 使用
6. 系统资源与性能监控
-
Prometheus 数据目录:
- Prometheus 的数据目录按时间分片存储,使用
du -sm */
查看各分片目录的大小。 - 使用
storage.tsdb.retention.time=180d
配置数据保留时间为 180 天。
- Prometheus 的数据目录按时间分片存储,使用
-
Grafana 数据源:
- 通过
grafana.ini
配置文件设置 Grafana 的root_url
和disable_login_form
等参数,控制 Grafana 的访问和认证方式。
- 通过
7. 容器与系统调试
- 容器启动问题:
- 在 openEuler 上运行 Docker 容器时,可能遇到内存分配问题,需调整内核配置或 Docker 配置。(popen failure: cannot allocate memory。pg容器。同样的 Docker 容器运行命令在 CentOS 8.5 上可以正常运行)
- 使用
docker logs
和journalctl -u docker.service
查看容器和 Docker 守护进程的日志,排查问题。
9. 时间片与调度
- 时间片(Time Slice):
- 时间片是操作系统调度进程的基本单位,每个进程在时间片内获得 CPU 执行时间。
- 在容器监控中,时间片用于衡量容器的 CPU 调度情况,如
enforcement period
表示容器的 CPU 时间配额。
10. 系统命令与工具
- yum 命令:
- 使用
yum repolist
查看仓库信息,使用yum install --downloadonly
下载 RPM 包。(注意,如果该rpm已经在系统内安装,则不会下载。很奇怪的行为。)
- 使用
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)