CentOS8 logstashをインストールしてsshアクセスログをElasticsearch+Kibanaで可視化する
- 2020.07.13
- 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をインストールします。
1 |
sudo dnf install -y logstash |
起動と自動起動を有効にします。
1 |
sudo systemctl enable --now logstash |
logstash設定
Logstashの パイプライン は「input」と「output」、そして「filter」の3つから構成されます。
/etc/logstash/conf.d/に設定ファイルを作成します。
ここでは「local-ssh-events.conf」という名前で作成します。
1 |
sudo vim /etc/logstash/conf.d/local-ssh-events.conf |
「local-ssh-events.conf」を「input」と「output」、「filter」の3つで構成して編集します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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」を読み取れるように設定します。
1 2 3 |
sudo chown :adm /var/log/secure sudo usermod -aG adm logstash sudo chmod g+r /var/log/secure |
実行します。
1 |
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
コメントを書く