java獲取當前主機ip,Filebeat 輸出日志時添加客戶端 IP 地址(引用變量)

 2023-11-18 阅读 22 评论 0

摘要:推薦閱讀 Helm3(K8S 資源對象管理工具)視頻教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 資源對象管理工具)博客專欄:https://blog.csdn.net/xzk9381/category_10895812.html 本文原文鏈接:https://blog.csdn

推薦閱讀

Helm3(K8S 資源對象管理工具)視頻教程:https://edu.csdn.net/course/detail/32506
Helm3(K8S 資源對象管理工具)博客專欄:https://blog.csdn.net/xzk9381/category_10895812.html

本文原文鏈接:https://blog.csdn.net/xzk9381/article/details/114630076,轉載請注明出處。如有發現文章中的任何問題,歡迎評論區留言。

使用 filebeat 收集日志時,默認會添加一個 host.name 字段來標識主機,但是在主機名不是 IP 地址的情況下,這個字段不能很方便的針對 IP 地址進行篩選,所以需要在收集日志時,添加一個顯示 IP 地址的字段。

java獲取當前主機ip,添加字段可以使用 fields 模塊,在這個模塊下可以自定義字段,支持array ,數組等格式,也可以調用系統的環境變量:

filebeat.inputs:
- type: logpaths:- /opt/test.logscan_frequency: 10stail_lines: truefields:                     # 使用 fields 模塊添加字段host_ip: ${SERVER_IP}     # host_ip 為字段名稱,后面的值為 SERVER_IP 變量值,該變量為系統變量fields_under_root: true     # 將新增的字段放在頂級,收集后字段名稱顯示 host_ip。如果設置為 false,則放在子集,收集后顯示為 fields.host_ip

設置完成后,在 /etc/profile 中設置對應的環境變量,并在系統中生效。重啟 filebeat 即可(需要在 kibana 中刷新索引模式)。

需要注意的是,如果重啟 filebeat 是在本地執行的,那么 filebeat 可以正常獲取到系統變量名稱。但是如果是在其他機器 ssh 遠程執行命令來重啟 filebeat,則有可能會導致 filebeat 啟動失敗。

java獲取請求ip?例如我當前的 filebeat 測試環境中,是通過跳板機中遠程執行重啟 filebeat 的命令:

bash /opt/filebeat-7.3.0/filebeat.sh ES-135cd3ec-d7ca-11ea-b08e-b496912687c4_15528.yml restart

filebeat.sh 腳本用于根據配置文件啟動 filebeat,可以自行編寫

但是在使用系統變量的情況下,filebeat 遠程重啟失敗,查看 filebeat 日志發現如下報錯:

Exiting: Error while initializing input: missing field accessing 'filebeat.inputs.0.fields.host_ip' (source:'/opt/filebeat-7.3.0/conf/ES-135cd3ec-d7ca-11ea-b08e-b496912687c4_15520.yml')

filebeat采集日志直接到ES?出現這個問題是由于 filebeat 無法加載環境變量,而導致無法加載環境變量的原因是遠程執行 shell 命令時,是屬于非交互非登陸的shell。對于這種模式而言,它會去尋找環境變量 BASH_ENV,將變量的值作為文件名進行查找,如果找到便加載它,但是系統中一般都沒有設置這個變量值,所以就無法加載環境變量。

解決這個問題最簡單的方式是在執行腳本時,添加 -l 選項,就會打開一個login shell,這樣可以加載全局的環境變量配置文件 /etc/profile。之前設置的變量也就會生效了。所以將原來的命令修改為如下:

bash -l /opt/filebeat-7.3.0/filebeat.sh ES-135cd3ec-d7ca-11ea-b08e-b496912687c4_15528.yml restart

本文原文鏈接:https://blog.csdn.net/xzk9381/article/details/114630076,轉載請注明出處。如有發現文章中的任何問題,歡迎評論區留言。

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息