【tech】elk elastic search filebeatの設定中に出たエラー解決メモ



公開:2020/05/09
更新:2020/05/09

CentOS8にelk elastic stackのfilebeatをセットアップ中に出たエラーの解決方法のメモです。
elastic searchとlogstashとkibanaは先日からセットアップ済みで手順はまとめ中なのですが、先にfilebeatをセットアップしてました。filebeatもまとまり次第一緒に手順としてアップロードしたいと思っています!

インストール中に3つのエラーにハマったのでメモしておきます!

環境


OS:CentOS8
ログの転送先:logstash

エラーメッセージ①


Error initializing beat: error unpacking config data: more than one namespace configured accessing 'output' (source:'/etc/filebeat/filebeat.yml')

解決方法


filebeat.ymlファイルの編集
→ログの転送先を1か所に編集したら解決
 →下記の場合elastic searchとlogstash両方にoutputすることになっています。
 今回はlogstashにoutputしたいので、「output.elasticsearch」をコメントアウトします。




#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch: ★この行をコメントアウト
#Array of hosts to connect to.
hosts: ["localhost:9200"]

#Protocol - either http (default) or https.
#protocol: "https"

#Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
#username: "elastic"
#password: "changeme"

#----------------------------- Logstash output --------------------------------
output.logstash:
#The Logstash hosts
hosts: ["localhost:5044"]

#Optional SSL. By default is off.
#List of root certificates for HTTPS server verifications
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

#Certificate for SSL client authentication
#ssl.certificate: "/etc/pki/client/cert.pem"

#Client Certificate Key
#ssl.key: "/etc/pki/client/cert.key"

#================================ Processors =====================================

原因


ログの転送先としてelastic searchとlogstashの両方が設定されていることが原因?
詳しくはオフィシャルドキュメントをご確認お願いいたします!

エラーメッセージ②


Error initializing beat: error loading config file: yaml: line 163: mapping values are not allowed in this context

解決方法


filebeat.ymlファイルの編集
→コメント行をコメントアウトしてしまっていた




#----------------------------- Logstash output --------------------------------
output.logstash:
** The Logstash hosts** ★この行をコメントアウト
hosts: ["localhost:5044"]

#Optional SSL. By default is off.
#List of root certificates for HTTPS server verifications
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

#Certificate for SSL client authentication
#ssl.certificate: "/etc/pki/client/cert.pem"

#Client Certificate Key
#ssl.key: "/etc/pki/client/cert.key"


原因


コメント行も間違えてコメントアウトしてしまっていたせいで、設定行として認識されていたのかと思います。正しい原因は、こちらもオフィシャルのドキュメントをご確認ください

エラーメッセージ③


Exiting: 1 error: invalid config: yaml: line 7: did not find expected key
filebeat.service: Main process exited, code=exited, status=1/FAILURE
filebeat.service: Failed with result 'exit-code'.

filebeat.service: Start request repeated too quickly.
filebeat.service: Failed with result 'exit-code'.
Failed to start Filebeat sends log files to Logstash or directly to Elasticsearch..

解決方法


/etc/filebeat/modules.d/system.ymlファイルの編集
→列ずれを起こしていた。
→ymlファイルのなのでインデントに意味を持ちます。下記の太字の行のインデントを修正(上に合わせる)すれば解決しました



#Module: system
#Docs: https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-system.html

- module: system
#Syslog
syslog:
enabled: true
var.paths: ["/var/log/messages"] ★この行のインデントを修正

\ #Set custom paths for the log files. If left empty,
\ #Filebeat will choose the paths depending on your OS.
\ #var.paths:

#Authorization logs
auth:
enabled: true 
var.paths: ["/var/log/secure"] ★この行を参考にインデントをそろえる
#Set custom paths for the log files. If left empty,
#Filebeat will choose the paths depending on your OS.
#var.paths:


原因


ymlファイルはインデントに意味があります。「enable:true」の行と「var.paths」の行頭をそろえてあげれば解決しました。

久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)