Logstash環境準備 |
關閉防火牆php
#CentOS6 關閉防火牆 [root@elkstack01 ~]# /etc/init.d/iptables stop #CentOS7 關閉防火牆 [root@elkstack01 ~]# systemctl stop firewalld
關閉SELINUXcss
#臨時關閉 [root@elkstack01 ~]# setenforce 0 setenforce: SELinux is disabled #永久關閉 [root@elkstack01 ~]# vim /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled ==> //原來是enforcing 改爲disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
設置epel源html
#CentOS6 下載epel源 [root@elkstack01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #CentOS7 下載epel源 [root@elkstack01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
修改時區java
#將時區修改成上海時區 [root@elkstack01 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime cp:是否覆蓋"/etc/localtime"? y
設置時間同步node
#同步服務器時間(切記保證集羣之間時間一致很是重要)
[root@elkstack01 ~]# ntpdate time1.aliyun.com 28 Feb 14:11:28 ntpdate[8904]: step time server 203.107.6.88 offset 3168820.831817 sec
部署Logstash |
Logstash是一個開源的數據收集引擎,能夠水平伸縮,並且logstash整個ELK當中擁有最多插件的一個組件,其能夠接收來自不一樣來源的數據並統一輸出到指定的且能夠是多個不一樣目的地。linux
安裝JDK環境redis
下載地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html數據庫
#解壓JDK安裝包 [root@elkstack01 ~]# tar xf jdk-8u121-linux-x64.tar.gz #將JDK安裝包移動到安裝目錄下 [root@elkstack01 ~]# mv jdk1.8.0_121 /usr/local/ #作軟連接(方便往後升級) [root@elkstack01 ~]# ln -s /usr/local/jdk1.8.0_121 /usr/local/jdk1.8 #添加環境變量 [root@elkstack01 ~]# vim /etc/profile.d/jdk1.8.sh export JAVA_HOME=/usr/local/jdk1.8 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin #加載環境變量 [root@elkstack01 ~]# source /etc/profile #檢查是否加載成功 [root@elkstack01 ~]# java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
安裝Logstashvim
下載地址: https://www.elastic.co/downloads/past-releases/logstash-5-3-0api
#安裝Logstash使用yum localinstall 自動安裝依賴包 [root@elkstack03 ~]# yum localinstall -y logstash-5.3.0.rpm #給Logstash目錄受權 [root@elkstack03 ~]# chown -R logstash.logstash /usr/share/logstash/
INPUT、OUTPUT插件 |
INPUT:插件使Logstash可以讀取特定的事件源。
OUTPUT:插件將事件數據發送到特定的目的地,OUTPUT是事件流水線中的最後階段。
INPUT支持事件源 | OUTPUT支持輸出源 | CODEC編解碼器支持編碼 |
---|---|---|
azure_event_hubs(微軟雲事件中心) | elasticsearch(搜索引擎數據庫) | avro(數據序列化) |
beats(filebeat日誌收集工具) | email(郵件) | CEF(嵌入式框架) |
elasticsearch(搜索引擎數據庫) | file(文件) | es_bulk(ES中的bulk api) |
file(文件) | http(超文本傳輸協議) | Json(數據序列化、格式化) |
generator(生成器) | kafka(基於java的消息隊列) | Json_lines(便於存儲結構化) |
heartbeat(高可用軟件) | rabbitmq(消息隊列 OpenStack) | line(行) |
http_poller(http api) | redis(緩存、消息隊列、NoSQL) | multiline(多行匹配) |
jdbc(java鏈接數據庫的驅動) | s3*(存儲) | plain(純文本,事件間無間隔) |
kafka(基於java的消息隊列) | stdout(標準輸出) | rubydebug(ruby語法格式) |
rabbitmq(消息隊列 OpenStack) | tcp(傳輸控制協議) | |
redis(緩存、消息隊列、NoSQL) | udp(用戶數據報協議) | |
s3*(存儲) | ||
stdin(標準輸入) | ||
syslog(系統日誌) | ||
tcp(傳輸控制協議) | ||
udp(用戶數據報協議) |
測試logstash標準輸入到標準輸出 |
#從標準輸入到標準輸出 [root@elkstack03 ~]# /usr/share/logstash/bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug }}' #標準輸入zls test及返回結果 zls test { #時間戳 "@timestamp" => 2019-03-05T09:41:40.198Z, #版本信息 "@version" => "1", #主機 "host" => "0.0.0.0", #接收信息 "message" => "zls test" }
結果展現以下圖所示:

測試logstash標準輸入到文件 |
#從標準輸入到文件中 [root@elkstack03 ~]# /usr/share/logstash/bin/logstash -e 'input { stdin{} } output { file { path => "/tmp/test_%{+YYYY.MM.dd}.log"}}' #輸入bgx ugly bgx ugly #返回結果 19:10:00.303 [[main]>worker0] INFO logstash.outputs.file - Opening file {:path=>"/tmp/test_2019.03.05.log"} #查看tmp目錄下是否有日誌文件存在 [root@elkstack03 ~]# ll /tmp/ 總用量 4 -rw-r--r-- 1 root root 95 3月 5 19:10 test_2019.03.05.log #查看日誌內容 [root@elkstack03 ~]# cat /tmp/test_2019.03.05.log {"@timestamp":"2019-03-05T11:10:00.235Z","@version":"1","host":"0.0.0.0","message":"bgx ugly"}
結果展現以下圖所示:


測試logstash標準輸入到ES |
#從標準輸入到Elasticsearch [root@elkstack03 ~]# /usr/share/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch {hosts => ["10.0.0.51:9200"] index => "zls_%{+YYYY.MM.dd}" }}' #輸入內容 zls test stdin to ES #在Elasticsearch中查看數據結果 [root@elkstack01 ~]# ll /data/elk/data/nodes/0/indices/ 總用量 8 drwxr-xr-x 9 elasticsearch elasticsearch 4096 3月 5 17:19 C8o7IxEVR2W7CpPFFCa4cA drwxr-xr-x 9 elasticsearch elasticsearch 4096 3月 5 19:35 R8IZGhT4Sw2XukCiG1O02A
結果展現以下圖所示:


打開瀏覽器,訪問:http://10.0.0.51:9100