【tcsh】CentOS8.2にelastic stackをインストールするメモ



公開:2020/06/21
更新:2020/06/21

久々の更新となりました。
以前Elastic Searchと、kibanaをインストールしたblogと動画を投稿したのですが、いろいろ調べていると、logstashというログの収集役のソフトウェアがあったり、ログを転送する役割のfilebeatというソフトウェアがあったりしたので、一緒にインストールしてみました。

使い方はこれから笑

環境


仮想化:VirtualBox6.1
OS:CentOS8.2
IPアドレス:192.168.56.101

・接続イメージです。
クライアント → nginx → kibana → elasticsearch ← logstach
別のノード  → filebeat  → → → → → → →  ↑

・フロントにnginxを置いてbasic認証させる構成にしています。
・複数ホストで動かしたい場合はnginxのproxypassを変更して各elk stackのノードに転送させてあげてください。
・filebeatは別ノードに入れて、別のノードのログを転送させる事ができますが、メモのため同一ノードに入れています。ご自由にアレンジしてみて下さい。(やり方がわからなければコメント下さい)

手順





・SELinuxをオフにする
vi /etc/sysconfig/selinux

SELINUX=disabled

・Firewallの許可設定
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=5044/tcp --permanent
 ※filebeatのためのポートの許可

・設定反映のためにリブート
reboot

・OpenJDKのインストール
sudo dnf install -y java-11-openjdk-devel

・ディレクトリの確認
which java
→/usr/bin/java

・JAVAの環境設定
cat > /etc/profile.d/java11.sh <<EOF
export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
EOF

・ファイルの読み込み
source /etc/profile.d/java11.sh



・ELKのリポジトリ追加
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

・ディレクトリ移動
cd /etc/yum.repos.d/

・リポジトリファイルの作成
vi elasticsearch.repo


[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md


・ELKのインストール
sudo dnf install -y elasticsearch kibana logstash

ElasticSearchのセットアップ





・Elastic Serachの設定フォルダへ移動
cd /etc/elasticsearch/

・設定ファイルの編集
vi elasticsearch.yml
下記のディレクティブのコメントを外す。


network.host: 127.0.0.1
http.port: 9200


・ヒープサイズの変更
vi jvm.options


-Xms512m
-Xmx512m


・ElasticSearchの自動起動
sudo systemctl enable elasticsearch

・ElasticSearchのステータス確認
sudo systemctl status elasticsearch

・ElasticSearchの起動
sudo systemctl start elasticsearch

・ElasticSearchのステータス確認
sudo systemctl status elasticsearch

kibanaのセットアップ





・kibanaの設定ファイルディレクトリへ移動
cd /etc/kibana/

・kibanaの設定ファイルを更新
vi kibana.yml
→下記のディレクティブのコメントアウト


server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"


・kibanaの自動起動
sudo systemctl enable kibana

・kibanaのステータス確認
sudo systemctl status kibana

・kibanaの起動
sudo systemctl start kibana

・kibanaのステータス確認
sudo systemctl status kibana

Nginxのセットアップ




・Nginxのインストール
sudo dnf install -y nginx httpd-tools

・Nginxの設定ファイルインクルードディレクトリへ移動
cd /etc/nginx/conf.d/

・kibana用のconfファイル作成
vi kibana.conf

server {
    listen 80;

    server_name 192.168.56.101;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;

    location / {
        proxy_pass http://127.0.0.1:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

・basic認証を作成
sudo htpasswd -c /etc/nginx/.kibana-user kusomemo
→任意PW入力。※ここでは「tokyo」とします

ユーザ:kusomemo
PW:tokyo

・設定ファイルの確認
nginx -t

・nginxの自動起動
sudo systemctl enable nginx

・nginxのステータス確認
sudo systemctl status nginx

・nginxの起動
sudo systemctl start nginx

・nginxのステータス確認
sudo systemctl status nginx

logstashのセットアップ




・logstashの設定ディレクトリに移動
cd /etc/logstash/

・ヒープサイズの変更
vi jvm.options


-Xms512m
-Xmx512m


・設定ファイルのインクルードディレクトリに移動
cd /etc/logstash/conf.d/

・インプットポートの設定ファイル作成
vi input-beat.conf

input {
  beats {
    port => 5044
  }
}

・syslogフィルタconf作成
vi syslog-filter.conf

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:[%{POSINT:syslog_pid}])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

・elasticsearch向けoutputのconfファイル作成
vi output-elasticsearch.conf

output {
  elasticsearch { hosts => ["127.0.0.1:9200"]
    hosts => "127.0.0.1:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

・logstashの自動起動
sudo systemctl enable logstash

・logstashのステータス確認
sudo systemctl status logstash

・logstashの起動
sudo systemctl start logstash

・logstashのステータス確認
sudo systemctl status logstash

Filebeatのインストール





※この手順メモは別ノードにfilebeatをインストールする事を想定しています。
 同一ノードでの作業の場合、GPGキーのインストールからリポジトリの設定は既に実施済みの為、不要です。

・GPG-KEYのインストール
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

・ディレクトリの移動
cd /etc/yum.repos.d/

・リポジトリの設定
vi elasticsearch.repo


[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md


・filebeatのインストール
sudo dnf install -y filebeat

・filebeatの設定ディレクトリに移動
cd /etc/filebeat/

・設定ファイルの編集
vi filebeat.yml
→elasticsearch向けのディレクティブをコメントアウトし、
 logstash向けの設定を記述

#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

output.logstash:
  # The Logstash hosts
  hosts: ["192.168.56.101:5044"]

・moduleが読み込めるか確認
filebeat modules list

・systemモジュールをenable
filebeat modules enable system

・ディレクトリの移動
cd /etc/filebeat/

・systemモジュールの編集
vi modules.d/system.yml
→var.pathを追記

  # Syslog
  syslog:
    enabled: true
    var.paths: ["/var/log/messages"]

  # Authorization logs
  auth:
    enabled: true
    var.paths: ["/var/log/secure"]

・filebeatの自動起動
sudo systemctl enable filebeat

・filebeatのステータス確認
sudo systemctl status filebeat

・filebeatの起動
sudo systemctl start filebeat

・filebeatのステータス確認
sudo systemctl status filebeat

動作確認





・ELKサーバにアクセス
http://192.168.56.101/

Username:kusomemo
PW:tokyo

kibanaのダッシュボードが表示されれば想定通りです。

もし表示されてなければ、転送・連携処理がうまくいってなかったり
サービスが起動していなかったりすると思いますので、
systemctlでelkやnginxが起動しているかどうか
ss -antでリッスンできているかどうかをご確認お願いいたします。

久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】【Movie】CentOS8にElastic Search & Kibana をインストールするメモ




公開日:2019/11/4
更新日:2019/11/18

前から興味があったElasticStack、Elastic SearchとKibanaをインストールしてみました!ElasticsearchとKibanaを CentOS 8にインストールする手順のメモです!
使い方はまだこれからです。笑

動画作りました!

環境


CentOS 8.0 (minimal) on KVM
(IP:192.168.100.101)
JAVA Ver11.0.5
ElasticSearch Ver7.4.2
Kibana Ver7.4.2




javaのインストール

・java OpenJDK11のインストール
dnf install -y java-11-openjdk-devel

・Ver確認
java -version

・インストール先の確認
which java

・環境変数の確認
printenv

・環境変数設定スクリプト作成
cat > /etc/profile.d/java11.sh <<EOF

export JAVA_HOME=\$(dirname \$(dirname \$(readlink \$(readlink \$(which javac)))))
export PATH=\$PATH:\$JAVA_HOME/bin
export CLASSPATH=.:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib:\$JAVA_HOME/lib/tools.jar
EOF



・スクリプトの読み込み
source /etc/profile.d/java11.sh

・テストファイルの作成
cat > hello_world.java <<EOF

public class helloworld {
  public static void main(String[] args) {
    System.out.println("Hello World!");
  }
}
EOF

・javaの実行テスト
java hello_world.java

Elastic Searchのインストール




・リポジトリの追加
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

・ElasticSearchのインストール
dnf install -y elasticsearch-oss

・Elasticsearchのステータス確認
systemctl status elasticsearch.service

・Elasticsearchの起動
systemctl enable --now elasticsearch.service

・起動確認
curl http://127.0.0.1:9200

・テストインデックスの作成
curl -X PUT "http://127.0.0.1:9200/mytest_index"


kibanaのインストール


・kibanaのインストール
sudo dnf install -y kibana-oss wget

・設定ファイルの編集
sudo vi /etc/kibana/kibana.yml


server.host: "0.0.0.0"
server.name: "kibana.example.com"
elasticsearch.hosts: ["http://127.0.0.1:9200"]




・kibanaのステータス確認
systemctl status kibana

・kibanaを起動させる
systemctl enable --now kibana

・FWの許可設定
sudo firewall-cmd --add-port=5601/tcp --permanent

・FW再起動
sudo firewall-cmd --reload

・アクセス確認
ブラウザを立ち上げ「192.168.100.101:5601」アクセス


久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)