4. コンテンツにスキップ

4. Linux版 Elasticsearchの導入

Linuxサーバーに対してElasticsearchの導入を行う場合の手順を説明します。

4.1 Elasticsearch連携機能の導入

4.1.1 Elasticsearchの設定

Senju Service Managerと連携するElasticsearchサーバーの稼働に必要なソフトウェアである、Elasticsearchをインストールするための手順について説明します。

4.1.1.1 対象バージョン

Senju Service Managerと連携するElasticsearchサーバーではElasticSearch 8.17を使用します。

ここでは、ElasticSearch 8.17.2を例として導入手順を説明します。

仕様補足

サポート対象となるElasticsearchのバージョンについてはリリースノートの「2.3.7 Elasticsearch連携」 を参照してください。

4.1.1.2 Elasticsearchのインストール

  1. インストール用のrpmファイルを入手して、インストールするサーバーの任意のディレクトリに格納します。

    • ファイル名: elasticsearch-8.17.2-x86_64.rpm
  2. インストールするサーバーに管理者権限のアカウントでログインします。

  3. rpmコマンドを実行してパッケージをインストールします。

    • コマンド
      rpm -ivh elasticsearch-8.17.2-x86_64.rpm
      
  4. 自動起動の設定を行います。

    • コマンド
      systemctl daemon-reload
      systemctl enable elasticsearch.service
      

4.1.1.3 Elasticsearchの設定

  1. Elasticsearchの設定ファイルを編集します。

    • ファイルパス: /etc/elasticsearch/elasticsearch.yml

    • コマンド

      vi /etc/elasticsearch/elasticsearch.yml
      
      1. cluster.name を ssm-cluster に設定します。

        #cluster.name: my-application 
        cluster.name: ssm-cluster
        
      2. network.hostにElasticsearchサーバーのループバックアドレス、ElasticsearchサーバーのIPアドレスを指定します。

        #network.host: 0.0.0.0 
        network.host: 127.0.0.1, eshost
        

        仕様補足

        デフォルトではループバックアドレス(127.0.0.1)が指定されるため、ループバックアドレス宛のElasticsearchへの接続しかできません。

      3. discovery.seed_hostsにElasticsearchサーバーのIPアドレスを指定します。

        #discovery.seed_hosts: ["host1","host2"]
        discovery.seed_hosts: ["127.0.0.1"]
        
      4. cluster.initial_master_nodesにElasticsearchサーバーのホスト名を指定します。

        #cluster.initial_master_nodes: ["node-1","node-2"]
        cluster.initial_master_nodes: ["eshostname"]
        
      5. node.nameにElasticsearchサーバーのホスト名を指定します。

        #node.name: node-1
        node.name: eshostname
        
      6. (Kibanaを利用する場合)以下の記載を追加します。

        script.max_size_in_bytes: 10000000
        
      7. Elastic Stack のセキュリティを無効に設定します。

        #xpack.security.enabled: true
        xpack.security.enabled: false
        
        #xpack.security.enrollment.enabled: true
        xpack.security.enrollment.enabled: false
        
      8. Elasticsearchとクライアント間通信のTLS暗号化を無効に設定します。

        xpack.security.http.ssl:
        # enabled: true
         enabled: false
        # keystore.path: certs/http.p12
        
      9. Elasticsearchノード間の暗号化・相互認証を無効に設定します。

        xpack.security.transport.ssl:
        # enabled: true
         enabled: false
        # verification_mode: certificate
        # keystore.path: certs/transport.p12
        # truststore.path: certs/transport.p12
        
      10. cluster.initial_master_nodesは設定済みのためコメントアウトします。

        # Create a new cluster with the current node only
        # Additional nodes can still join the cluster later
        #cluster.initial_master_nodes: ["eshost"]
        
      11. http.host、transport.hostはコメントアウトします。

        #http.host: 0.0.0.0
        #transport.host: 0.0.0.0
        

      仕様補足

      Linux版Elasticsearchはインストール時にセキュリティ設定が行われ、Elasticsearch設定ファイル末尾にセキュリティ設定が記載された状態となります。
      セキュリティが有効な状態のため、一度セキュリティを無効に設定します。

  2. Elasticsearchのログ設定ファイルを編集します。

    • ファイルパス: /etc/elasticsearch/log4j2.properties

    • コマンド

      vi /etc/elasticsearch/log4j2.properties
      
    • 以下の設定を追加します。

      appender.rolling.strategy.action.condition.type = IfLastModified
      appender.rolling.strategy.action.condition.age = 7D
      appender.rolling.strategy.action.PathConditions.type = IfFileName
      appender.rolling.strategy.action.PathConditions.glob = ${sys:es.logs.cluster_name}-*
      #appender.rolling.strategy.action.condition.type = IfFileName
      #appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-*
      

      修正後のファイルは以下のようになります。

      ... (省略)
      appender.rolling.policies.time.modulate = true
      ... (省略)
      appender.rolling.strategy.type = DefaultRolloverStrategy
      ... (省略)
      appender.rolling.strategy.action.type = Delete
      appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path}
      appender.rolling.strategy.action.condition.type = IfLastModified
      appender.rolling.strategy.action.condition.age = 7D
      appender.rolling.strategy.action.PathConditions.type = IfFileName
      appender.rolling.strategy.action.PathConditions.glob = ${sys:es.logs.cluster_name}-*
      #appender.rolling.strategy.action.condition.type = IfFileName
      #appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-*
      ... (省略)
      rootLogger.level = info
      ... (省略)
      

      Info

      この設定を追加することで、7日間変更がない古いログを削除するようになります。ログ削除の設定を追加しない場合、デフォルトでは古いログファイルが残り続けるため、 /var/log/Elasticsearch ディレクトリのディスク容量を圧迫してしまう可能性があります。

  3. ElasticsearchのHEAPメモリ拡張を編集します。

    • ファイルパス: /etc/elasticsearch/jvm.options

    修正前

    ... (省略)
    ## -Xms4g
    ## -Xmx4g
    ... (省略)
    

    修正後

    例:

    ... (省略)
    -Xms2g
    -Xmx2g
    ... (省略)
    

4.1.1.4 インストール確認

  1. Elasticsearchを起動します。

    • コマンド
      systemctl start elasticsearch
      
  2. 以下のコマンドを実行して稼働していることを確認します。

    • コマンド
      curl -XGET 'http://localhost:9200/?pretty'
      

Info

起動に失敗する場合は以下を確認してください。
・インストール環境の残メモリが少ないと起動に失敗します。Linuxのシステムログを参照してElasticsearchが停止されていないか確認してください。
・インストール環境でプログラムが多く起動しているとOSのスレッド上限値に抵触して起動できない場合があります。上限値について見直して下さい。

4.1.2 Elasticsearchの検索設定

Senju Service Managerと連携するElasticsearchサーバーで形態素解析に必要なソフトウェアである、Kuromojiをインストールするための手順について説明します。

4.1.2.1 対象バージョン

Senju Service Managerと連携するElasticsearchサーバーではKuromoji 8.17を使用します。

ここでは、Kuromoji 8.17.2を例として導入手順を説明します。

仕様補足

サポート対象となるKuromojiのバージョンについては リリースノートの「2.3.7 Elasticsearch連携」を参照してください。

4.1.2.2 Kuromojiのインストール

  1. インストール用のzipファイルを入手して、インストールするサーバーの任意のディレクトリに格納します。

    • ファイル名: analysis-kuromoji-8.17.2.zip

    以降では、上記ファイルを下記ディレクトリに格納した場合を例示いたします。

    • ディレクトリパス: /home/root/tmp/elasticsearch/
  2. インストールするサーバーに管理者権限のアカウントでログインします。

  3. installコマンドを実行してパッケージをインストールします。

    • コマンド
      /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///home/root/tmp/elasticsearch/analysis-kuromoji-8.17.2.zip
      

4.1.2.3 サーバーの再起動

  1. ElasticsearchサーバーのOSの再起動を行います。

4.1.2.4 インストール確認

  1. Kuromoji(形態素解析ソフトウェアプラグイン)がインストールされていることを確認します。

    • コマンド
      /usr/share/elasticsearch/bin/elasticsearch-plugin list analysis-kuromoji
      

4.1.2.5 データクローラの設定

  1. Senju Service Managerのインストールメディアから、elasticsearch-definitionsフォルダのElasticsearch設定ファイルを取得し、インストールするサーバーの任意のディレクトリに格納します。

    ファイル名 説明
    pipeline_attachment.json パイプライン設定(添付ファイル)
    sm_mappings.json Index Template(プロセス管理)
    sm_mappings_ci.json Index Template(構成管理)
    sm_mappings_faq.json Index Template(FAQ)
    sm_mappings_filelibrary.json Index Template(ファイルライブラリ)

    以降では、上記ファイルを下記ディレクトリに格納した場合を例示いたします。

    • ディレクトリパス: /tmp/elasticsearch-definitions/
  2. curlコマンドを使用して、パイプライン設定をElasticsearchサーバーに登録します。

    • コマンド

      curl -H "Content-Type:application/json" -XPUT 'http://localhost:9200/_ingest/pipeline/attachment?pretty' --data-binary @/tmp/elasticsearch-definitions/pipeline_attachment.json
      
  3. 以下のレスポンスが返ってきており、登録が成功したことを確認します。

    { 
        "acknowledged" : true 
    } 
    
  4. curlコマンドを使用して、IndexTemplateをElasticsearchサーバーに登録します。

    • プロセス管理の場合

      • コマンド

        curl -H "Content-Type:application/json" -XPUT 'http://localhost:9200/_template/doc?pretty' --data-binary @/tmp/elasticsearch-definitions/sm_mappings.json
        
    • 構成管理の場合

      • コマンド

        curl -H "Content-Type:application/json" -XPUT 'http://localhost:9200/_template/doc_ci?pretty' --data-binary @/tmp/elasticsearch-definitions/sm_mappings_ci.json
        
    • FAQの場合

      • コマンド

        curl -H "Content-Type:application/json" -XPUT 'http://localhost:9200/_template/doc_faq?pretty' --data-binary @/tmp/elasticsearch-definitions/sm_mappings_faq.json
        
    • ファイルライブラリの場合

      • コマンド

        curl -H "Content-Type:application/json" -XPUT 'http://localhost:9200/_template/doc_filelibrary?pretty' --data-binary @/tmp/elasticsearch-definitions/sm_mappings_filelibrary.json
        
  5. 以下のレスポンスが返ってきており、登録が成功したことを確認します。

    { 
        "acknowledged" : true 
    } 
    
    • プロセス管理の場合

    仕様補足

    IndexTemplateはElasticsearch上にインデックスを作成する際、特定ネーミングルールに沿ったインデックスに対してテンプレートを適応します。Senju Service Managerでは様々なインデックス名のインデックスが作成されるためすべてのインデックスに対してテンプレートを適応するようにしています。そのため、ElasticsearchをSenju Service Manager以外の用途に利用できません。

4.1.2.6 インデックスの作成

  1. curlコマンドを使用して、Indexを作成します。

    • プロセス管理の場合

      • コマンド
        curl -XPUT 'http://localhost:9200/ssm?pretty'
        
    • 構成管理の場合

      • コマンド
        curl -XPUT 'http://localhost:9200/ssm_ci?pretty'
        
    • FAQの場合

      • コマンド
        curl -XPUT 'http://localhost:9200/ssm_faq?pretty'
        
    • ファイルライブラリの場合

      • コマンド
        curl -XPUT 'http://localhost:9200/ssm_filelibrary?pretty'
        
  2. 以下のレスポンスが返ってきており、登録が成功したことを確認します。

    • プロセス管理の場合
      {
          "acknowledged" : true,
          "shards_acknowledged" : true,
          "index" : "ssm"
      }
      

4.1.3 Elasticsearchへのデータ連携設定

Senju Service ManagerからElasticsearchへのデータ連携のためのアプリケーションとしてElasticsearchが提供するLogstachを導入します。

4.1.3.1 Logstashのインストール

  1. インストール用のrpmファイルを入手して、インストールするサーバーの任意のディレクトリに格納します。

    • ファイル名: logstash-8.17.2-x86_64.rpm
  2. インストールするサーバーに管理者権限のアカウントでログインします。

  3. rpmコマンドを実行してパッケージをインストールします。

    • コマンド
      rpm -ivh logstash-8.17.2-x86_64.rpm
      
  4. 自動起動の設定を行います。

    • コマンド
      systemctl daemon-reload
      systemctl enable logstash.service
      

4.1.3.2 Logstashの設定

  1. Senju Service Managerのインストールメディアから、logstash・logstash-definitionsフォルダ一式をインストールするサーバーの任意のディレクトリに格納します。

    • フォルダ名: logstash
    • フォルダ名: logstash-definitions

    以降では、上記フォルダを下記ディレクトリに格納した場合を例示いたします。

    • ディレクトリパス: /tmp/
  2. インストールするサーバーに管理者権限のアカウントでログインします。

  3. logstash ディレクトリをコピーして/opt配下に格納し、/opt/ logstash配下に履歴ファイルの格納フォルダconfを追加し、所有者およびグループをlogstashユーザーに変更します。以下のコマンドを実行してください。

    • コマンド
      cp -fr /tmp/logstash /opt
      mkdir -p /opt/logstash/conf
      chown -R logstash:logstash /opt/logstash
      
  4. Logstash設定ファイルを /etc/logstash/conf.d 配下に格納し、所有者およびグループをlogstashユーザーに変更します。以下のコマンドを実行してください。

    • コマンド
      cp /tmp/logstash-definitions/logstash-postgresql*.conf /etc/logstash/conf.d
      chown logstash:logstash /etc/logstash/conf.d/logstash-postgresql*.conf
      
  5. 設定ファイルを以下の通り更新します。

    ファイル名 説明
    logstash-postgresql.conf 設定ファイル(プロセス管理)
    logstash-postgresql_ci.conf 設定ファイル(構成管理)
    logstash-postgresql-faq.conf 設定ファイル(FAQ)
    logstash-postgresql-filelibrary.conf 設定ファイル(ファイルライブラリ)
    • プロセス管理の場合

      • コマンド
        vi /etc/logstash/conf.d/logstash-postgresql.conf
        
    • jdbc_connection_stringに記載されているPostgreSQL DBへの接続情報について、[hostname]:[portnumber]/[dbname] から、SSM DBサーバーの ホスト名:ポート番号/ローカル・ネット・サービス名に変更します。

      (PostgreSQL DBへの接続情報をホスト名:ccfsphost、ポート番号:5432、ローカル・ネット・サービス名:ssmdbに変更する場合)

      # jdbc_connection_string => "jdbc:postgresql://[hostname]:[portnumber]/[dbname]"
      jdbc_connection_string => " jdbc:postgresql://ccfsphost:5432/ssmdb"
      
    • jdbc_userに記載されているDBユーザー名について、[username]から、正しいに変更します。

      (PostgreSQL DBのDB ユーザー名をDB ユーザー名:ssmuserに変更する場合)

      # jdbc_user => "[username]"
      jdbc_user => "ssmuser"
      
    • jdbc_password に記載されているDBユーザーのパスワードについて、[password]から、正しいパスワードに変更します。

      (PostgreSQL DBユーザーのパスワードをDB ユーザーパスワード:ssmpwdに変更する場合)

      #jdbc_password => "[password]"
      jdbc_password => "ssmpwd"
      
    • hostsに記載されているElasticsearchへの接続情報について、[protocol]://[hostname]:[portnumber] から、Elasticsearchサーバーのプロトコル://ホスト名:ポート番号に変更します。

      (Elasticsearchへの接続情報をプロトコル:http、ホスト名:eshost、ポート番号:9200に変更する場合)

      #hosts => [ "[protocol]://[hostname]:[portnumber]"]
      hosts => [ "http://eshost:9200"]
      
    • 修正後のファイルは以下のようになります。

      • logstash-postgresql.conf

        ... (省略)
        input {
        # for Upsert PROCESS_FIL records
        jdbc {
        jdbc_connection_string => "jdbc:postgresql://ccfsphost:5432/ssmdb"
        jdbc_driver_library => "/opt/logstash/lib/postgresql-42.2.8.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        jdbc_user => "ssmuser"
        jdbc_password => "ssmpwd"
        
        schedule => " * * * "
        last_run_metadata_path => "/opt/logstash/conf/.logstash_postgresql_process_fil_last_run"
        record_last_run => "true"
        use_column_value => "true"
        tracking_column => "update_ts"
        statement_filepath => "/opt/logstash/sql/postgresql/get_sm_data_from_process_fil.sql"
        
        type => "get_process_fil"
        }
        
        # for Upsert PROCESS_SUB_FIL records
        jdbc {
        jdbc_connection_string => "jdbc:postgresql://ccfsphost:5432/ssmdb"
        jdbc_driver_library => "/opt/logstash/lib/postgresql-42.2.8.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        jdbc_user => "ssmuser"
        jdbc_password => "ssmpwd"
        
        ... (省略)
        }
        
        # for Upsert PROCESS_TABLE_ITEM_1_FIL records
        jdbc {
        jdbc_connection_string => "jdbc:postgresql://ccfsphost:5432/ssmdb"
        jdbc_driver_library => "/opt/logstash/lib/postgresql-42.2.8.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        jdbc_user => "ssmuser"
        jdbc_password => "ssmpwd"
        
        ... (省略)
        }
        
        # for Upsert PROCESS_TABLE_ITEM_2_FIL records
        jdbc {
        jdbc_connection_string => "jdbc:postgresql://ccfsphost:5432/ssmdb"
        jdbc_driver_library => "/opt/logstash/lib/postgresql-42.2.8.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        jdbc_user => "ssmuser"
        jdbc_password => "ssmpwd"
        
        ... (省略)
        }
        
        # for Upsert PROCESS_TABLE_ITEM_3_FIL records
        jdbc {
        jdbc_connection_string => "jdbc:postgresql://ccfsphost:5432/ssmdb"
        jdbc_driver_library => "/opt/logstash/lib/postgresql-42.2.8.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        jdbc_user => "ssmuser"
        jdbc_password => "ssmpwd"
        
        ... (省略)
        }
        
        # for Upsert PROCESS_TABLE_ITEM_4_FIL records
        jdbc {
        jdbc_connection_string => "jdbc:postgresql://ccfsphost:5432/ssmdb"
        jdbc_driver_library => "/opt/logstash/lib/postgresql-42.2.8.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        jdbc_user => "ssmuser"
        jdbc_password => "ssmpwd"
        
        ... (省略)
        }
        
        # for Upsert PROCESS_TABLE_ITEM_5_FIL records
        jdbc {
        jdbc_connection_string => "jdbc:postgresql://ccfsphost:5432/ssmdb"
        jdbc_driver_library => "/opt/logstash/lib/postgresql-42.2.8.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        jdbc_user => "ssmuser"
        jdbc_password => "ssmpwd"
        ... (省略)
        
        output {
        if [type] == "get_process_fil" {
        elasticsearch{
        hosts => [ "http://eshost:9200"]
        index => "ssm"
        document_id => "%{insert_no}"
        action => "update"
        retry_on_conflict => 10
        doc_as_upsert => true
        # user => "[elasticusername]"
        # password => "[elasticpassword]"
        }
        } else if [type] == "get_process_sub_fil" {
        elasticsearch{
        hosts => [ "http://eshost:9200"]
        ... (省略)
        } else if [type] == "get_process_table_item_1_fil" {
        
        elasticsearch{
        hosts => [ "http://eshost:9200"]
        ... (省略)
        } else if [type] == "get_process_table_item_2_fil" {
        
        elasticsearch{
        hosts => [ "http://eshost:9200"]
        ... (省略)
        } else if [type] == "get_process_table_item_3_fil" {
        
        elasticsearch{
        hosts => [ "http://eshost:9200"]
        ... (省略)
        } else if [type] == "get_process_table_item_4_fil" {
        
        elasticsearch{
        hosts => [ "http://eshost:9200"]
        ... (省略)
        } else if [type] == "get_process_table_item_5_fil" {
        
        elasticsearch{
        hosts => [ "http://eshost:9200"]
        ... (省略)
        
      • logstash-postgresql_ci.conf

        ... (省略)
        input {
        # for Update CI_FIL records
        jdbc {
        jdbc_connection_string => "jdbc:postgresql:// ccfsphost:5432/ssmdb"
        jdbc_driver_library => "/opt/logstash/lib/postgresql-42.2.8.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        jdbc_user => "ssmuser"
        jdbc_password => "ssmpwd"
        
        schedule => " * * * "
        last_run_metadata_path => "/opt/logstash/conf/.logstash_postgresql_process_sub_fil_last_run"
        record_last_run => "true"
        use_column_value => "true"
        tracking_column => "update_ts"
        statement_filepath => "/opt/logstash/sql/postgresql/get_sm_data_from_process_sub_fil.sql"
        
        type => "get_ci_fil"
        }
        }
        ... (省略)
        
        output {
        if [type] == "get_ci_fil" {
        elasticsearch{
        hosts => [ " eshost:9200"]
        index => "ssm_ci"
        document_id => "%{ci_id}"
        action => "update"
        retry_on_conflict => 10
        doc_as_upsert => true
        # user => "[elasticusername]"
        # password => "[elasticpassword]"
        ... (省略)
        
  6. 設定ファイル pipelines.yml を編集します。

    • ファイルパス:/etc/logstash/pipelines.yml

    • コマンド

      vi /etc/logstash/pipelines.yml
      

    インデックス(ssm,ssm_faq,ssm_filelibrary,ssm_ci)ごとにpipelineの設定を末尾に追記します。

    項目 設定値
    pipeline.id (インデックス名)
    pipeline.workers 1
    pipeline.batch.size 1
    path.config (設定ファイルのパス)
    queue.type persisted

    修正後のファイルは以下のようになります。

    # - pipeline.id: main 
    #   path.config: "/etc/logstash/conf.d/*.conf"
    - pipeline.id: ssm
      pipeline.workers: 1
      pipeline.batch.size: 1
      path.config: "/etc/logstash/conf.d/logstash-postgresql.conf"
      queue.type: persisted
    - pipeline.id: ssm_faq
      pipeline.workers: 1
      pipeline.batch.size: 1
      queue.type: persisted
      path.config: "/etc/logstash/conf.d/logstash-postgresql-faq.conf"
    - pipeline.id: ssm_filelibrary
      pipeline.workers: 1
      pipeline.batch.size: 1
      queue.type: persisted
      path.config: "/etc/logstash/conf.d/logstash-postgresql-filelibrary.conf"
    - pipeline.id: ssm_ci
      pipeline.workers: 1
      pipeline.batch.size: 1
      queue.type: persisted
      path.config: "/etc/logstash/conf.d/logstash-postgresql_ci.conf"
    
  7. Logstashのログ設定ファイルlog4j2.propertiesを編集します。

    • ファイルパス:/etc/logstash/log4j2.properties

    • コマンド

      vi /etc/logstash/log4j2.properties
      

    以下の設定を追加します。

    appender.rolling.strategy.action.type = Delete
    appender.rolling.strategy.action.basepath = ${sys:ls.logs}
    appender.rolling.strategy.action.condition.type = IfLastModified
    appender.rolling.strategy.action.condition.age = 7D
    appender.rolling.strategy.action.PathConditions.type = IfFileName
    appender.rolling.strategy.action.PathConditions.glob = logstash-${sys:ls.log.format}-*
    

    修正後のファイルは以下のようになります。

    ... (省略) 
    appender.rolling.strategy.type = DefaultRolloverStrategy
    appender.rolling.strategy.action.type = Delete
    appender.rolling.strategy.action.basepath = ${sys:ls.logs}
    appender.rolling.strategy.action.condition.type = IfLastModified
    appender.rolling.strategy.action.condition.age = 7D
    appender.rolling.strategy.action.PathConditions.type = IfFileName
    appender.rolling.strategy.action.PathConditions.glob = logstash-${sys:ls.log.format}-*
    ... (省略) 
    

仕様補足

この設定を追加することで、7日間変更がない古いログを削除するようになります。ログ削除の設定を追加しない場合、デフォルトでは古いログファイルが残り続けるため/var/log/logstash ディレクトリのディスク容量を圧迫してしまう可能性があります。

4.1.3.3 インストール確認

  1. Logstashを起動します。

    • コマンド
      systemctl start logstash
      
  2. 以下のコマンドを実行して、logstashサービスが正常に動作していることを確認します。

    • コマンド
      systemctl status logstash
      

4.1.4 Elasticsearchのmax_analyzed_offset設定

Senju Service Managerと連携するElasticsearchサーバーの、max_analyzed_offsetを設定します。

  1. curl コマンドを実行してmax_analyzed_offsetを設定します。

    • コマンド
      curl -XPUT "http://localhost:9200/_settings?pretty" -H 'Content-Type:application/json' -d '{"index":{"highlight.max_analyzed_offset":51000000}}'
      

    以下のレスポンスが返ってきており、設定が成功したことを確認します。

    { 
    "acknowledged" : true 
    }
    
  2. ElasticsearchとLogstash を再起動します。

    • コマンド
      systemctl restart elasticsearch
      systemctl restart logstash
      

4.2 ウィルススキャンの除外設定

Elasticsearchが稼働している環境において、アンチウィルスソフトのようなセキュリティ関連ソフトや、バックアップソフト等の予期しない動作により、パフォーマンスの影響や動作不調を起こす場合があります。 そのため、アプリケーションやミドルウェアのフォルダやファイルをリアルタイム検索から除外していただく必要があります。 各アンチウィルスソフトの除外設定手順に従い、設定を行ってください。 対象は 資料集「1.1 Senju Service Managerシステム」の9)を参照してください。

4.3 Senju Service Managerの設定

Elasticsearch連携機能を使用する際に、Senju Service Managerで削除されたレコードをElasticsearchサーバーから削除するには、別途提供されているElasticsearchデータ削除モジュールを実行する必要があります。 定期的にElasticsearchデータを同期する場合、タスクスケジューラ等に該当モジュールの定期実行を設定してください。

仕様補足

該当モジュールの処理内容の詳細については、別紙「コマンドリファレンス」の「1.2.22 ElasticSearchデータ削除モジュール(sjSPU_ElasticSearchDelete.vbs)」を参照してください。

仕様補足

該当設定を行わず、Senju Service Managerで削除されているデータが全文検索および類似検索の結果として表示された場合、検索されたレコードのタイトルをクリックすると、「指定された情報は既に削除されています」と表示されます。