それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

Logstash でログの監視だけしてみる


logstashを動かすとこを試したかったのでメモ
  1. インストール
    公式サイトのダウンロードでURLを確認、yum(rpm)でインストール
    $ sudo yum install https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.1.1-1.noarch.rpm
    JAVAが必要なので OpenJDK もインストールする。メールの受信確認用に mailx も入れとく。
    $ sudo yum -y install java-1.8.0-openjdk mailx
    $ echo 'export JAVA_HOME="/usr/bin"' >> ~/.bashrc
    $ source ~/.bashrc
  2. 起動ユーザの変更
    デフォのままだと logstash ユーザで起動し、/var/log/messages などにアクセスできないで、ユーザを変更する。
    $ sudo vi /etc/init.d/logstash
    ...
    #LS_USER=logstash
    #LS_GROUP=logstash
    LS_USER=root
    LS_GROUP=root
  3. 設定ファイルの作成
    input/filter/output のうち、とりあえずログの読み込みと、エラー出力によるメール送信だけ設定してみる。
    $ sudo vi /etc/logstash/conf.d/messages.conf

    input {
    file {
    path => "/var/log/messages"
    discover_interval => 2
    start_position => "beginning"
    }
    }

    output {

    # elasticsearch {
    # bind_host => "127.0.0.1"
    # port => "9200"
    # protocol => http
    # }

    if [message] =~ /(?i)(ERROR|WARNING|CRITICAL)/ {
    email {
    from => ""
    subject => "logstash alert"
    to => ""
    via => "smtp"
    body => "%{message}"
    }
    }

    stdout { codec => rubydebug }

    }

    # END
  4. サービスの起動
    サービスの起動
    $ sudo service logstash start
    プロセスが起動していることと、ログにエラーが出ていない事を確認
    $ ps -efww | grep logstash
    $ cat /var/log/logstash/logstash.log
  5. テスト
    messaegs にログを出してみる
    $ sudo logger -p local0.notice "ERROR"
    メールが届いている事を確認
    $ sudo mail
    ...
    4 test@gmail.com Wed Jan 13 13:49 22/667 "logstash alert"

以上