你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用 ELK 监视 Service Fabric 应用程序
本教程是一个系列中的第四部分, 其中介绍了如何使用 ELK(Elasticsearch、Logstash 和 Kibana)监视 Azure 中运行的 Service Fabric 应用程序。
该系列的第 4 部分中介绍了如何:
- 在 Azure 中设置 ELK 服务器
- 将 Logstash 配置为从事件中心接收日志
- 可视化 Kibana 中的平台和应用程序日志
在此系列教程中,你会学习如何:
先决条件
在开始学习本教程之前:
- 如果没有 Azure 订阅,请创建一个免费帐户
- 将应用程序设置为向第二部分中指定的位置发出日志。
- 完成第三部分,配置一个正常运行的 Service Fabric 群集,以便向事件中心发送日志。
- 在事件中心创建一个策略,并在其中指定“侦听”权限,以及在第三篇系列教程中创建的关联主密钥。
下载投票示例应用程序
如果未生成本教程系列的第一部分中的投票示例应用程序,还可以下载它。 在命令窗口中,运行以下命令,将示例应用程序存储库克隆到本地计算机。
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart
在 Azure 中创建 ELK 服务器
可以在本教程中使用预配置的 ELK 环境;如果已有一个 ELK 环境,请跳到设置 Logstash 部分。 如果没有此环境,请遵循以下步骤在 Azure 中创建一个环境。
在 Azure 中创建由 Bitnami 认证的 ELK。 在本教程中,创建此服务器时不需要遵循任何特定的规范。
在 Azure 门户中转到自己的资源,然后转到“支持 + 故障排除”部分下的“启动诊断”选项卡。 接下来,单击“串行日志”选项卡。
在日志中搜索访问 Kibana 实例所需的密码。 搜索命令如以下代码片段所示:
[ 25.932766] bitnami[1496]: ######################################################################### [ 25.948656] bitnami[1496]: # # [ 25.962448] bitnami[1496]: # Setting Bitnami application password to '[PASSWORD]' # [ 25.978137] bitnami[1496]: # (the default application username is 'user') # [ 26.004770] bitnami[1496]: # # [ 26.029413] bitnami[1496]: #########################################################################
在 Azure 门户中的服务器“概述”页上按“连接”按钮,获取登录详细信息。
使用以下命令,通过 SSH 连接到托管 ELK 映像的服务器
ssh [USERNAME]@[CONNECTION-IP-OF-SERVER] Example: ssh testaccount@104.40.63.157
设置 ELK
第一个步骤是加载 ELK 环境
sudo /opt/bitnami/use_elk
如果使用现有的环境,则必须运行以下命令来停止 Logstash 服务
sudo /opt/bitnami/ctlscript.sh stop logstash
运行以下命令安装适用于事件中心的 Logstash 插件。
logstash-plugin install logstash-input-azureeventhub
创建或修改现有 Logstash 配置文件并在其中包含以下内容:如果是创建文件并在 Azure 中使用 ELK Bitnami 映像,则必须在
/opt/bitnami/logstash/conf/access-log.conf
位置创建该文件。input { azureeventhub { key => "[RECEIVER-POLICY-KEY-FOR-EVENT-HUB]" username => "[RECEIVER-POLICY-NAME]" namespace => "[EVENTHUB-NAMESPACENAME]" eventhub => "[EVENTHUB-NAME]" partitions => 4 } } output { elasticsearch { hosts => [ "127.0.0.1:9200" ] } }
若要验证配置,请运行以下命令:
/opt/bitnami/logstash/bin/logstash -f /opt/bitnami/logstash/conf/ --config.test_and_exit
启动 Logstash 服务
sudo /opt/bitnami/ctlscript.sh start logstash
检查 Elasticsearch,确保可以接收数据
curl 'localhost:9200/_cat/indices?v'
通过 http://SERVER-IP 访问 Kibana 仪表板,并输入 Kibana 的用户名和密码。 如果在 Azure 中使用了 ELK 映像,则默认用户名为“user”,密码是在“启动诊断”中获取的密码。
后续步骤
在本教程中,你了解了如何执行以下操作:
- 在 Azure 中启动并运行 ELK 服务器
- 将服务器配置为从 Service Fabric 群集接收诊断信息
转到下一教程: