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
默認狀況下日誌會保存在如下兩個位置
/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" } } }