1.1.4.1. Fluentdをインストールする

  1. 以下のコマンドを実行してFluentdをインストールします。
    ※インターネット接続可能な環境で実行してください。
    # curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh | sh
    
  2. 以下のコマンドを実行し、Fluentd(td-agent)のバージョンが表示されることを確認します。
    # td-agent --version
    

1.1.4.2. Fluentdを設定する

  1. 以下のコマンドを実行し、設定ファイルを編集します。
    ※記載のない行は、初期値のままとします。
    # vi /usr/lib/systemd/system/td-agent.service
    [Service]
    User=root
    Group=root
    
  2. 以下のコマンドを実行します。
    ※エラーが表示されないことを確認してください。
    # systemctl daemon-reload
    
  3. 以下のコマンドを実行し、設定ファイルを編集します。
    # vi /etc/td-agent/td-agent.conf
    ######################################
    # FRAからのSYSLOG受信                #
    ######################################
    <system>
      root_dir "/var/log/td-agent"
    </system>
    
    <source>
      @type syslog
      port 514
      bind 0.0.0.0
      tag FRA
      source_address_key source_address
      facility_key facility
      severity_key severity
      <transport tcp>
      </transport>
      <parse>
        @type regexp
        expression ^(?<timestamp>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) *(?<message>.*)$
      </parse>
    </source>
    
    ######################################
    # 受信ログをサーバー別にタグで分類    #
    ######################################
    <match FRA.**>
      @type rewrite_tag_filter
    # 0系用タグ
      <rule>
        key      host
        pattern  0系のホスト名
        tag      "0系のホスト名.${tag}"
      </rule>
    # 1系用タグ
      <rule>
        key      host
        pattern  1系のホスト名
        tag      "1系のホスト名.${tag}"
      </rule>
    </match>
    
    <filter *.FRA.**>
      @type record_transformer
      enable_ruby true
      <record>
        timestamp ${time.strftime('%Y-%m-%dT%H:%M:%S%z')}
        tag ${tag}
      </record>
    </filter>
    
    ##########################################################
    # サーバー+ファシリティ別にログファイルへログを書き込み    #
    ##########################################################
    # 0系
    # トラフィックログ
    <match 0系のホスト名.FRA.local0.**>
      @id 0系のホスト名.traffic
      path 0系のホスト名.traffic/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # 脅威ログ
    <match 0系のホスト名.FRA.local1.**>
      @id 0系のホスト名.threat
      path 0系のホスト名.threat/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # URLフィルタリングログ
    <match 0系のホスト名.FRA.local2.**>
      @id 0系のホスト名.url
      path 0系のホスト名.url/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # HIPログ
    <match 0系のホスト名.FRA.local3.**>
      @id 0系のホスト名.hip
      path 0系のホスト名.hip/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # GlobalProtectログ
    <match 0系のホスト名.FRA.local4.**>
      @id 0系のホスト名.gplog
      path 0系のホスト名.gplog/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # その他ログ
    <match 0系のホスト名.FRA**>
      @id 0系のホスト名.others
      path 0系のホスト名.others/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # 1系
    # トラフィックログ
    <match 1系のホスト名.FRA.local0.**>
      @id 1系のホスト名.traffic
      path 1系のホスト名.traffic/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # 脅威ログ
    <match 1系のホスト名.FRA.local1.**>
      @id 1系のホスト名.threat
      path 1系のホスト名.threat/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # URLフィルタリングログ
    <match 1系のホスト名.FRA.local2.**>
      @id 1系のホスト名.url
      path 1系のホスト名.url/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # HIPログ
    <match 1系のホスト名.FRA.local3.**>
      @id 1系のホスト名.hip
      path 1系のホスト名.hip/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # GlobalProtectログ
    <match 1系のホスト名.FRA.local4.**>
      @id 1系のホスト名.gplog
      path 1系のホスト名.gplog/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
    # その他ログ
    <match 1系のホスト名.FRA**>
      @id 1系のホスト名.others
      path 1系のホスト名.others/%Y%m/${tag}.%{file_extension}
      @include /etc/td-agent/wasabi.conf
    </match>
    
  4. 以下のコマンドを実行し、設定ファイルを編集します。
    # vi /etc/td-agent/wasabi.conf
    ######################################
    # FRAログをWasabiに転送                #
    ######################################
    @type s3
    aws_key_id [Wasabiユーザーのアクセスキー]
    aws_sec_key [Wasabiユーザーのシークレットキー]
    s3_endpoint https://s3.ap-northeast-1-ntt.wasabisys.com
    s3_bucket sdpf-fralog-bucket
    store_as gzip
    time_slice_format %Y%m%d
    <buffer tag,time>
      @type file
      timekey       1d       # 1day
      timekey_wait 10m       # 10mins deley for flush
      timekey_use_utc false  # local
    </buffer>
    <format>
      @type json
    </format>
    
  5. 以下のコマンドを実行し、エラーが表示されないことおよびサービスの状態が「active(running)」であることを確認します。
    # systemctl enable td-agent.service
    # systemctl start td-agent.service
    # systemctl status td-agent.service