本文档提供了使用Apache SkyWalking、Elasticsearch和Kafka进行系统监控和日志分析的详细部署指南,适用于开发人员和技术运维。
SkyWalking 是一个强大的分布式追踪与应用性能管理(APM)系统,尤其适用于微服务架构。本段落将详细介绍如何在环境中集成 SkyWalking 8.4.0、Kafka 和 Elasticsearch 7.12.0 的配置和搭建过程。
确保你已下载了 Apache SkyWalking 的特定于 Elasticsearch 7 的版本,例如 `apache-skywalking-apm-es7-8.4.0.tar`。Elasticsearch 7.x 版本是 SkyWalking 存储后端的一个选项,用于存储和分析监控数据。
**Elasticsearch 配置与启动**
1. **配置文件路径**: 找到 Elasticsearch 的配置文件 `elasticsearch.yml`。
2. **配置项**:
- `cluster.name`: 设置集群名称,并确保它与 SkyWalking 的设置一致。例如,可以将此值设为 `wlhtest`。
- `node.name`: 设置节点名称,如 `node-1`。
- `network.host`: 设定为 `0.0.0.0` 以允许所有网络接口监听。
- `http.port`: 默认端口是9200,请保持不变或取消注释。
- `discovery.seed_hosts`: 必须配置,设置为 Elasticsearch 节点的 IP 列表。例如 `[“127.0.0.1”]`。
- `cluster.initial_master_nodes`: 必须配置,用于确定初始主节点。例如 `[“node-1”]`。
3. **启动 Elasticsearch**: 运行 Elasticsearch 并验证其是否成功启动,在浏览器中访问 `http:127.0.0.1:9200`,显示欢迎页面表明启动成功。
**SkyWalking 配置与启动**
1. **配置 SkyWalking Collector**:
- 在 `collector` 的配置文件中选择 `elasticsearch7` 作为存储选择器。
- 设置 `nameSpace` 为 Elasticsearch 集群名称(例如,wlhtest)。
- 设置 `clusterNodes` 为 Elasticsearch 地址和端口。如:192.168.13.164:9200。
2. **配置 Web 应用 (Webapp)**:
- 修改应用服务器的端口号,以避免与其他服务冲突。
- 添加 `zuul` 和 `hystrix` 相关配置来解决前端启动异常问题并启用服务监控功能。
3. **启动 SkyWalking**:在 Windows 上双击 `startup.bat` 或在 Linux 上运行 `startup.sh` 启动。
4. **访问 SkyWalking UI**: 通过默认地址 http:localhost:8080 访问用户界面。
**Agent 配置**
1. **服务名称**: 设置为你的应用名称。
2. **后端服务地址**: 配置为 SkyWalking Collector 的 IP 和端口(例如,192.168.13.164:11800)。
**实际部署**
在实际环境中部署时,SkyWalking 可能与其他被监控的服务不在同一台服务器上。只需将 SkyWalking 的 Agent 文件部署到需要监控的应用中,并确保配置指向正确的 SkyWalking 服务地址即可。
**Idea 启动配置**
使用 IntelliJ IDEA 启动应用时,在 VM 参数中添加 `-javaagent` 指定 Agent JAR 路径,同时设置 `-Dskywalking.agent.service_name` 变量为当前服务的名称。
**Kafka 配置**
若要将 Kafka 作为数据源,请确保已启动 Kafka。在 SkyWalking 的配置文件中启用 Kafka Fetcher:
1. **配置文件**: 在 SkyWalking 中找到与 Kafka Fetcher 相关的部分。
2. **设置项**:
- `bootstrapServers`: 设置为 Kafka 服务器地址和端口,例如 192.168.13.164:9092。
- `partitions`: 分区数设置(如:3)。
- `replicationFactor`: 副本因子设定值(如:2)。
完成上述步骤后,SkyWalking 将能收集并分析来自 Kafka 的监控数据。请确保所有配置正确无误以实现有效的服务监控和故障排查。