私は以下のlogstashの設定をしています。:理由=>「設定に何か問題があります。」 GeoIP.dat Mutate Logstash
ここには、ここに着陸するすべてのアプリケーションに使用する一般的なものが3つあります。
第二部は、ここで私たちはイベントは、私たちがしたいことがあり、クライアント側で発生したときに、これまで
は、我々が持っている第三は、クリックの統計であるアプリケーション統計を押すように構成され、特定のロガーを持っているアプリケーションの統計ですそれをUPアドレスのログ・スタッシュにプッシュします。
すべて3はudpベースで、log4netを使用してlogstashにログを送信します。
ベースはGeoIP.datファイルを持っていなかったので、インストールしたファイルとフォルダの777人の権限では/ opt/logstash/GeoIPDataFileにファイルを入れているhttps://dev.maxmind.com/geoip/legacy/geolite/
からダウンロードしたファイルを得ました。
私は国名を持っており、各国のユーザー数を示す方法が必要です。過去24時間にアプリケーションを表示しています。
そのような理由から、私たちは国名をアプリケーションのプロファイルにも取り込んでいます。
今、私は地理座標を取得して、キバナでタイルマップを使用する方法が必要です。
私は間違っています。
私がgeoIP {source - => "country"セクションを取ると、logstashは正常に動作します。
私は
/opt/logstash/bin/logstash -t -f /etc/logstash/conf.d/logstash.conf
設定ファイルはokです確認してください、私が受け取るものです。どこに行くの?
助けがあれば助かります。
input {
udp {
port => 5001
type => generallog
}
udp {
port => 5003
type => applicationstats
}
udp {
port => 5002
type => clickstats
}
}
filter {
if [type] == "generallog" {
grok {
remove_field => message
match => { message => "(?m)%{TIMESTAMP_ISO8601:sourcetimestamp} \[%{NUMBER:threadid}\] %{LOGLEVEL:loglevel} +- %{IPORHOST:requesthost} - %{WORD:applicationname} - %{WORD:envname} - %{GREEDYDATA:logmessage}" }
}
if !("_grokparsefailure" in [tags]) {
mutate {
replace => [ "message" , "%{logmessage}" ]
replace => [ "host" , "%{requesthost}" ]
add_tag => "generalLog"
}
}
}
if [type] == "applicationstats" {
grok {
remove_field => message
match => { message => "(?m)%{TIMESTAMP_ISO8601:sourceTimestamp} \[%{NUMBER:threadid}\] %{LOGLEVEL:loglevel} - %{WORD:envName}\|%{IPORHOST:actualHostMachine}\|%{WORD:applicationName}\|%{NUMBER:empId}\|%{WORD:regionCode}\|%{DATA:country}\|%{DATA:applicationName}\|%{NUMBER:staffapplicationId}\|%{WORD:applicationEvent}" }
}
geoip {
source => "country"
target => "geoip"
database => "/opt/logstash/GeoIPDataFile/GeoIP.dat"
add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ]
}
mutate {
convert => [ "[geoip][coordinates]", "float"]
}
if !("_grokparsefailure" in [tags]) {
mutate {
add_tag => "applicationstats"
add_tag => [ "eventFor_%{applicationName}" ]
}
}
}
if [type] == "clickstats" {
grok {
remove_field => message
match => { message => "(?m)%{TIMESTAMP_ISO8601:sourceTimestamp} \[%{NUMBER:threadid}\] %{LOGLEVEL:loglevel} - %{IPORHOST:remoteIP}\|%{IPORHOST:fqdnHost}\|%{IPORHOST:actualHostMachine}\|%{WORD:applicationName}\|%{WORD:envName}\|(%{NUMBER:clickId})?\|(%{DATA:clickName})?\|%{DATA:clickEvent}\|%{WORD:domainName}\\%{WORD:userName}" }
}
if !("_grokparsefailure" in [tags]) {
mutate {
add_tag => "clicksStats"
add_tag => [ "eventFor_%{clickName}" ]
}
}
}
}
output {
if [type] == "applicationstats" {
elasticsearch {
hosts => "localhost:9200"
index => "applicationstats-%{+YYYY-MM-dd}"
template => "/opt/logstash/templates/udp-applicationstats.json"
template_name => "applicationstats"
template_overwrite => true
}
}
else if [type] == "clickstats" {
elasticsearch {
hosts => "localhost:9200"
index => "clickstats-%{+YYYY-MM-dd}"
template => "/opt/logstash/templates/udp-clickstats.json"
template_name => "clickstats"
template_overwrite => true
}
}
else if [type] == "generallog" {
elasticsearch {
hosts => "localhost:9200"
index => "generallog-%{+YYYY-MM-dd}"
template => "/opt/logstash/templates/udp-generallog.json"
template_name => "generallog"
template_overwrite => true
}
}
else{
elasticsearch {
hosts => "localhost:9200"
index => "logstash-%{+YYYY-MM-dd}"
}
}
}
これは、/ etcディレクトリのlogstash.logファイルで唯一のエラーです。 –
私が言及した変更を試しましたか? – Kulasangar
はいいいえ運行Kulasangar。同じエラーで失敗するようです。私が望むのは国ごとです。ユーザー数を表示するには円が必要です。 –