この写真の左側に示すようなアーキテクチャを実現したいと思います (NXLog を使用したいため): http://docs.graylog.org/en/2.1/_images/sidecar_overview.png。既に RedHat サーバーに Graylog2 をインストールしており、現在、コレクター サイドカーの構成に取り組んでいます。root 以外で作業しているため、collector-sidecar と NXLog の構成ファイルでいくつかのディレクトリを変更する必要がありました。問題は次のとおりです。コレクターサイドカーを開始しようとするたびに、情報/エラーメッセージが表示されます。
[gunge@bsul0959 bin]$ ./graylog-collector-sidecar -c /opt/ansible/sidecar/etc/graylog/collector-sidecar/collector_sidecar.yml
INFO[0000] Using collector-id: 13a3d80f-cb69-4391-8520-7a760b9b964e
INFO[0000] Fetching configurations tagged by: [linux apache syslog]
ERRO[0000] stat /var/run/graylog/collector-sidecar: no such file or directory
INFO[0000] Trying to create directory for: /var/run/graylog/collector-sidecar/nxlog.run
ERRO[0000] Not able to create directory path: /var/run/graylog/collector-sidecar
INFO[0000] Starting collector supervisor
ERRO[0010] [UpdateRegistration] Sending collector status failed. Disabling `send_status` as fallback! PUT http://127.0.0.1:12900/plugins/org.graylog.plugins.collector/collectors/13a3d80f-cb69-4391-8520-7a760b9b964e: 400 Unable to map property tags.
Known properties include: operating_system
この開始手順の後、Graylog Web インターフェイスにコレクタが表示されますが、開始手順を中止すると、コレクタが再び消えます。開始手順中に、 /var/run/graylog/collector-sidecarにパスを作成しようとしますが、ルートではないため作成できません。その結果、彼は そのディレクトリにnxlog.runを作成できません。ルート権限を必要としない場所へのパスを既に変更しようとしましたが、これを実行できる構成ファイルがないと思います。それで、コレクターサイドカーのバイナリを調べたところ、次のことがわかりました。
func (nxc *NxConfig) ValidatePreconditions() bool {
if runtime.GOOS == "linux" {
if !common.IsDir("/var/run/graylog/collector-sidecar") {
err := common.CreatePathToFile("/var/run/graylog/collector-sidecar/nxlog.run")
if err != nil {
return false
}
}
}
return true
}
パスはアプリケーションにコード化されているようで、別のパスを構成する方法はありません。root権限を取得する以外に解決策はありますか?