Logstash配置以服務方式運行

Logstash官網最新版下載地址以及YUM源:https://www.elastic.co/cn/downloads/logstashjava

 

Logstash最多見的運行方式即命令行運行 ./bin/logstash -f logstash.conf 而後經過ctrl+c結束,這種方式的優勢在於運行方便,可是缺點也很明顯,不便於管理,同時若是遇到服務器重啓,則維護成本會更高一些,若是在生產環境運行logstash建議仍是使用服務的方式運行node

一、修改config目錄下的 startup.optinsnginx

JAVA_HOME=/usr/local/java/jdk1.8.0_171
LS_HOME=/usr/local/logstash-6.2.4
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config /usr/local/logstash-6.2.4/logstash.d"
#咱們把logstash的配置文件*.conf都放在/usr/local/logstash-6.2.4/logstash.d目錄下面
LS_USER=root
LS_GROUP=root

二、建立服務服務器

以root身份執行logstash命令建立服務jvm

# /usr/local/logstash-6.2.4/bin/system-install

執行完後,會生成一個環境變量文件 /etc/default/logstashelasticsearch

另外一個生成的則是主要的服務文件 /etc/systemd/system/logstash.service :spa

[Unit]
Description=logstash

[Service]
Type=simple
User=root
Group=root
# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.
# Prefixing the path with '-' makes it try to load, but if the file doesn't
# exist, it continues onward.
EnvironmentFile=-/etc/default/logstash
EnvironmentFile=-/etc/sysconfig/logstash
ExecStart=/usr/local/logstash-6.2.4/bin/logstash "--path.settings" "/usr/local/logstash-6.2.4/config" "--path.config" "/usr/local/logstash-6.2.4/logstash.d"
Restart=always
WorkingDirectory=/
Nice=19
LimitNOFILE=16384

[Install]
WantedBy=multi-user.target

# systemctl start logstash插件

# systemctl enable logstash命令行

三、日誌查看debug

默認狀況下日誌會保存在如下兩個位置

  • /var/log/messages
  • /usr/local/logstash/logs

 


 

/logstash/config/logstash.yml:主要用於控制logstash運行時的狀態
/logstash/config/startup.options:logstash 運行相關參數

配置參數說明:

logstash.yml
參數 用途 默認值
node.name  節點名稱    主機名稱
path.data  /數據存儲路徑    LOGSTASH_HOME/data/
pipeline.workers  輸出通道的工做workers數據量(提高輸出效率)    cpu核數
pipeline.output.workers  每一個輸出插件的工做wokers數量    1
pipeline.batch.size  每次input數量    125
path.config  過濾配置文件目錄    
config.reload.automatic   自動從新加載被修改配置    false or true
config.reload.interval  配置文件檢查時間    
path.logs   日誌輸出路徑    
http.host   綁定主機地址,用戶指標收集    「127.0.0.1」
http.port   綁定端口    5000-9700
log.level   日誌輸出級別,若是config.debug開啓,這裏必定要是debug日誌    info
log.format  日誌格式    * plain*
path.plugins  自定義插件目錄

startup.options參數:

JAVACMD=/usr/bin/java   本地jdk
LS_HOME=/opt/logstash   logstash所在目錄
LS_SETTINGS_DIR="${LS_HOME}/config"           默認logstash配置文件目錄
LS_OPTS="–path.settings ${LS_SETTINGS_DIR}"  logstash啓動命令參數 指定配置文件目錄
LS_JAVA_OPTS=""  指定jdk目錄
LS_PIDFILE=/var/run/logstash.pid logstash.pid所在目錄
LS_USER=logstash    logstash啓動用戶
LS_GROUP=logstash logstash啓動組
LS_GC_LOG_FILE=/var/log/logstash/gc.log logstash jvm gc日誌路徑
LS_OPEN_FILES=65534 logstash最多打開監控文件數量


示例logstash配置文件:

input {
    file {
      path => "/usr/local/nginx/logs/ad-access.log"
      type => "nginx--ad"
      start_position => "beginning"
    }
    beats {
      port => "5044"
    }
}

filter {
    grok {
      match => { "message" => "%{MYNGINX}" }
    }
    mutate {
      convert => [ "elapsed", "float" ]
      convert => [ "serverelapsed", "float" ]
    }
}

output {
    if [type] == "nginx--ad" {
      elasticsearch {
      hosts=> ["172.17.213.61:9200"]
      index=> "nginx-ad.%{+YYYY-MM}"
      }
    }
    else {
      elasticsearch {
        hosts => ["172.17.213.60:9200", "172.17.213.61:9200"]
        index => "adsdk.%{+YYYY-MM-DD}"
        manage_template => false
        template_overwrite => true
        template_name => "adsdk-template"
        template => "/usr/local/logstash-6.2.4/adsdk.template"
        document_type => "adsdk"
      }
    }
}
相關文章
相關標籤/搜索