CentOS8 logstashをインストールしてsshアクセスログをElasticsearch+Kibanaで可視化する
- 作成日 2020.07.13
- 更新日 2020.07.17
- centos8 elasticsearch kibana logstash
- centos8, elasticsearch, kibana, logstash
CentOS8にlogstashをインストールしてsshのアクセうログをlasticsearch+Kibanaで可視化するまでの手順を記述してます。
環境
- OS CentOS 8.1.1911 (Core)
- Elasticsearch 7.7.0
- kibana 7.7.0
※CentOs8にElasticsearchをインストールする手順はこちら
※CentOS8にkibanaをインストールする手順はこちら
logstashインストール
Elasticsearchの開発元であるElastic社が提供するオープンソースのデータ収集ツールであるlogstashをインストールします。
sudo dnf install -y logstash
起動と自動起動を有効にします。
sudo systemctl enable --now logstash
logstash設定
Logstashの パイプライン は「input」と「output」、そして「filter」の3つから構成されます。
/etc/logstash/conf.d/に設定ファイルを作成します。
ここでは「local-ssh-events.conf」という名前で作成します。
sudo vim /etc/logstash/conf.d/local-ssh-events.conf
「local-ssh-events.conf」を「input」と「output」、「filter」の3つで構成して編集します。
input {
file {
path => "/var/log/secure"
type => "ssh_auth"
}
}
filter {
if [type] == "ssh_auth" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}\s+%{IPORHOST:dst_host}\s+%{WORD:syslog_program}\[\d+\]:\s+(?<status>.+)\s+for\s+%{USER:auth_user}\s+from\s+%{SYSLOGHOST:src_host}.*" }
add_field => { "activity" => "SSH Logins" }
add_tag => "linux_auth"
}
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}\s+%{IPORHOST:dst_host}\s+%{WORD:syslog_program}\[\d+\]:\s+(?<status>.+)\s+for\s+invalid\s+user\s%{USER:auth_user_nonexist}\s+from\s+%{SYSLOGHOST:src_host}.*" }
add_field => { "activity" => "SSH Logins" }
add_tag => "linux_auth"
}
}
if [message] !~ /(Failed password|Accepted password|Accepted publickey|for invalid)/ { drop { } }
}
## Send data to Elasticsearch on the localhost
output {
elasticsearch {
## Elasticsearchを起動しているIPを指定
hosts => ["10.10.10.121:9200"]
manage_template => false
index => "ssh_auth-%{+YYYY.MM}"
}
}
Logstashが「/var/log/secure」を読み取れるように設定します。
sudo chown :adm /var/log/secure
sudo usermod -aG adm logstash
sudo chmod g+r /var/log/secure
実行します。
sudo -u logstash /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/local-ssh-events.conf
Elasticsearchのindexは、http://プライベートIP:9200/_cat/indices?v で確認できます
kibana設定
kibana側でログを確認できるように設定します。
画面右下にある「歯車マーク」- > [Index patterns] を選択します。
Index pattern : ssh_auth-*
と入力して「Next step」をクリックします。
次に
Time Filter field name : @timestamp
と入力して「Create Index pattern」 をクリックします。
ダッシュボードを確認するとlogが可視化されていることが確認できます。
-
前の記事
Centos8 監視ツール「Sensu」をインストールする手順 2020.07.13
-
次の記事
Nuxt.js ライブラリ「vue-list-scroller」をインストールしてTwitter風の無限スクローラーを実装する 2020.07.13
コメントを書く