Centos6.5使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践
生活随笔
收集整理的這篇文章主要介紹了
Centos6.5使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Centos6.5安裝Logstash ELK stack 日志管理系統
概述:
? 日志主要包括系統日志、應用程序日志和安全日志。系統運維和開發人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤。
通常,日志被分散的儲存不同的設備上。如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日志。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日志管理,例如:開源的syslog,將所有服務器上的日志收集匯總。
集中化管理日志后,日志的統計和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現檢索和統計,但是對于要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。
開源實時日志分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站:https://www.elastic.co/products
? ?Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。 它不是一個軟件,而是Elasticsearch,Logstash,Kibana 開源軟件的集合,對外是作為一個日志管理系統的開源方案。它可以從任何來源,任何格式進行日志搜索,分析獲取數據,并實時進行展示。像盾牌(安全),監護者(警報)和Marvel(監測)一樣為你的產品提供更多的可能。
Elasticsearch:搜索,提供分布式全文搜索引擎
Logstash: 日志收集,管理,存儲
Kibana :日志的過濾web 展示
Filebeat:監控日志文件、轉發
工作原理如下如所示:
操作系統 centos6.5 x86_64
elk server: 192.168.3.17
為避免干擾,關閉防火墻和selinux
service iptables off
setenforce 0
三臺機器都需要修改hosts文件
cat /etc/hosts
192.168.3.17 elk.chinasoft.com
192.168.3.18 rsyslog.chinasoft.com
192.168.3.13 nginx.chinasoft.com
修改主機名:
hostname elk.chinasoft.com
mkdir -p /data/elk
下載elk相關的軟件
cd /data/elk
wget -c https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.3/elasticsearch-2.3.3.rpm
wget -c https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.2-1.noarch.rpm
wget -c https://download.elastic.co/kibana/kibana/kibana-4.5.1-1.x86_64.rpm
wget -c https://download.elastic.co/beats/filebeat/filebeat-1.2.3-x86_64.rpm
服務器只需要安裝e、l、k, 客戶端只需要安裝filebeat。
安裝elasticsearch,先安裝jdk,elk server 需要java 開發環境支持,由于客戶端上使用的是filebeat軟件,它不依賴java環境,所以不需要安裝
rpm -ivh jdk-8u102-linux-x64.rpm
yum localinstall elasticsearch-2.3.3.rpm -y
啟動服務
service elasticsearch start
chkconfig elasticsearch on
檢查服務
rpm -qc elasticsearch
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/logging.yml
/etc/init.d/elasticsearch
/etc/sysconfig/elasticsearch
/usr/lib/sysctl.d/elasticsearch.conf
/usr/lib/systemd/system/elasticsearch.service
/usr/lib/tmpfiles.d/elasticsearch.conf
是否正常啟動
netstat -nltp | grep java
tcp ? ? ? ?0 ? ? ?0 ::ffff:127.0.0.1:9200 ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1927/java ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 ::1:9200 ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1927/java ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 ::ffff:127.0.0.1:9300 ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1927/java ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 ::1:9300 ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1927/java?
2.安裝kibana
yum localinstall kibana-4.5.1-1.x86_64.rpm -y
service kibana start
chkconfig kibana on
檢查kibana服務運行(Kibana默認 進程名:node ,端口5601)
ss -tunlp|grep 5601
tcp ? ?LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ?*:5601 ? ? ? ? ? ? ? ? ?*:* ? ? ?users:(("node",2042,11))
日志觀察
tail -f /var/log/kibana/kibana.stdout?
這時,我們可以打開瀏覽器,測試訪問一下kibana服務器http://192.168.3.17:5601/,確認沒有問題,如下圖:
安裝logstash,以及添加配置文件
yum localinstall logstash-2.3.2-1.noarch.rpm -y
生成證書
cd /etc/pki/tls/
openssl req -subj '/CN=elk.chinasoft.com/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
enerating a 2048 bit RSA private key ..............................................+++ ........................................................................................................................................................+++ writing new private key to 'private/logstash-forwarder.key' -----
之后創建logstash 的配置文件,如下:
vim /etc/logstash/conf.d/01-logstash-initial.conf
input {
? beats {
? ? port => 5000
? ? type => "logs"
? ? ssl => true
? ? ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
? ? ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
? }
}
filter {
? if [type] == "syslog-beat" {
? ? grok {
? ? ? match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
? ? ? add_field => [ "received_at", "%{@timestamp}" ]
? ? ? add_field => [ "received_from", "%{host}" ]
? ? }
? ? geoip {
? ? ? source => "clientip"
? ? }
? ? syslog_pri {}
? ? date {
? ? ? match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
? ? }
? }
}
output {
? elasticsearch { }
? stdout { codec => rubydebug }
}
啟動logstash,并檢查端口,配置文件里,此處寫的是5000端口
service logstash start
ss -tunlp|grep 5000
tcp ? ?LISTEN ? ? 0 ? ? ?50 ? ? ? ? ? ? ? ? ? ?:::5000 ? ? ? ? ? ? ? ? :::* ? ? ?users:(("java",2238,14))
修改elasticsearch 配置文件
查看目錄,創建文件夾es-01(名字不是必須的),logging.yml是自帶的,elasticsearch.yml是創建的文件,具體如下:
cd /etc/elasticsearch/
ll
total 12
-rwxr-x--- 1 root elasticsearch 3189 May 12 21:24 elasticsearch.yml
-rwxr-x--- 1 root elasticsearch 2571 May 12 21:24 logging.yml
drwxr-x--- 2 root elasticsearch 4096 May 17 23:49 scripts
[root@centossz008 elasticsearch]# tree
├── elasticsearch.yml
├── es-01
│ ? ├── elasticsearch.yml
│ ? └── logging.yml
├── logging.yml
└── scripts
mkdir es-01
vim es-01/elasticsearch.yml?
http:
? port: 9200
network:
? host: elk.chinasoft.com
node:
? name: elk.chinasoft.com
path:
? data: /etc/elasticsearch/data/es-01
重啟elasticsearch、logstash服務。
service elasticsearch restart
Stopping elasticsearch: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
Starting elasticsearch: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
# service logstash restart
Killing logstash (pid 2238) with SIGTERM
Waiting logstash (pid 2238) to die...
Waiting logstash (pid 2238) to die...
logstash stopped.
logstash started.
將fiebeat安裝包拷貝到 rsyslog、nginx 客戶端上
將 fiebeat安裝包拷貝到 rsyslog、nginx 客戶端上
scp filebeat-1.2.3-x86_64.rpm root@rsyslog.chinasoft.com:/root
scp filebeat-1.2.3-x86_64.rpm root@nginx.chinasoft.com:/root
scp /etc/pki/tls/certs/logstash-forwarder.crt rsyslog.chinasoft.com:/root
scp /etc/pki/tls/certs/logstash-forwarder.crt nginx.chinasoft.com:/root
filebeat客戶端是一個輕量級的,從服務器上的文件收集日志資源的工具,這些日志轉發到處理到Logstash服務器上。該Filebeat客戶端使用安全的Beats協議與Logstash實例通信。lumberjack協議被設計為可靠性和低延遲。Filebeat使用托管源數據的計算機的計算資源,并且Beats輸入插件盡量減少對Logstash的資源需求。
(node1 rsyslog.chinasoft.com)安裝filebeat,拷貝證書,創建收集日志配置文件
yum localinstall filebeat-1.2.3-x86_64.rpm -y
#拷貝證書到本機指定目錄中
[root@rsyslog elk]# cp logstash-forwarder.crt /etc/pki/tls/certs/.
[root@rsyslog elk]# cd /etc/filebeat/
?tree
.
├── conf.d
│ ? ├── authlogs.yml
│ ? └── syslogs.yml
├── filebeat.template.json
├── filebeat.yml
└── filebeat.yml.bak
修改的文件有3個,filebeat.yml,是定義連接logstash 服務器的配置。conf.d目錄下的2個配置文件是自定義監控日志的,下面看下各自的內容:
mkdir conf.d
vim filebeat.yml
------------------------------------------
filebeat:
? spool_size: 1024
? idle_timeout: 5s
? registry_file: .filebeat
? config_dir: /etc/filebeat/conf.d
output:
? logstash:
? ? hosts:
? ? - elk.chinasoft.com:5000
? ? tls:
? ? ? certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
? ? enabled: true
shipper: {}
logging: {}
runoptions: {}
------------------------------------------
vim conf.d/authlogs.yml?
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /var/log/secure
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
vim conf.d/syslogs.yml
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /var/log/messages
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
vim conf.d/flowsdk.yml
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /data/logs/flowsdk.log
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
修改完成后,啟動filebeat服務
service filebeat start
chkconfig filebeat on
報錯:
service filebeat start
Starting filebeat: 2016/10/12 14:05:46 No paths given. What files do you want me to watch?
分析:
需要監控的文件,不是最近24小時產生的,添加一個其他的文件即可如/var/logs/message
(node2 nginx.chinasoft.com)安裝filebeat,拷貝證書,創建收集日志配置文件
yum localinstall filebeat-1.2.3-x86_64.rpm -y
cp logstash-forwarder.crt /etc/pki/tls/certs/.
cd /etc/filebeat/
tree
.
├── conf.d
│ ? ├── nginx.yml
│ ? └── syslogs.yml
├── filebeat.template.json
└── filebeat.yml
修改filebeat.yml 內容如下:
vim filebeat.yml
------------------------------------------
filebeat:
? spool_size: 1024
? idle_timeout: 5s
? registry_file: .filebeat
? config_dir: /etc/filebeat/conf.d
output:
? logstash:
? ? hosts:
? ? - elk.chinasoft.com:5000
? ? tls:
? ? ? certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
? ? enabled: true
shipper: {}
logging: {}
runoptions: {}
------------------------------------------
syslogs.yml & nginx.yml
vim conf.d/syslogs.yml
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /var/log/messages
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
vim conf.d/nginx.yml
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /var/log/nginx/access.log
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
修改完成后,啟動filebeat服務,并檢查filebeat進程
重新載入 systemd,掃描新的或有變動的單元;啟動并加入開機自啟動
systemctl daemon-reload
systemctl start filebeat
systemctl enable filebeat
systemctl status filebeat
● filebeat.service - filebeat
? ?Loaded: loaded (/usr/lib/systemd/system/filebeat.service; enabled; vendor preset: disabled)
? ?Active: active (running) since Tue 2016-10-11 17:23:03 CST; 2min 56s ago
? ? ?Docs: https://www.elastic.co/guide/en/beats/filebeat/current/index.html
?Main PID: 22452 (filebeat)
? ?CGroup: /system.slice/filebeat.service
? ? ? ? ? ?└─22452 /usr/bin/filebeat -c /etc/filebeat/filebeat.yml
Oct 11 17:23:03 localhost.localdomain systemd[1]: Started filebeat.
Oct 11 17:23:03 localhost.localdomain systemd[1]: Starting filebeat...
Oct 11 17:23:31 localhost.localdomain systemd[1]: Started filebeat.
通過上面可以看出,客戶端filebeat進程已經和 elk 服務器連接了。下面去驗證。
?
vim /etc/init.d/elasticsearch
修改如下兩行:
LOG_DIR="/data/elasticsearch/log"
DATA_DIR="/data/elasticsearch/data"
創建存儲數據和本身日志的目錄
mkdir /data/elasticsearch/data -p
mkdir /data/elasticsearch/log -p
chown -R elasticsearch.elasticsearch /data/elasticsearch/
重啟服務生效
/etc/init.d/elasticsearch
如果是編譯安裝的,配置存儲目錄是elasticsearch.yml如下:
cat /usr/local/elasticsearch/config/elasticsearch.yml | egrep -v "^$|^#"?
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: X.X.X.X
network.port: 9200
logstash日志存放目錄修改:
vim /etc/init.d/logstash
LS_LOG_DIR=/data/logstash
概述:
? 日志主要包括系統日志、應用程序日志和安全日志。系統運維和開發人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤。
通常,日志被分散的儲存不同的設備上。如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日志。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日志管理,例如:開源的syslog,將所有服務器上的日志收集匯總。
集中化管理日志后,日志的統計和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現檢索和統計,但是對于要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。
開源實時日志分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站:https://www.elastic.co/products
? ?Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。 它不是一個軟件,而是Elasticsearch,Logstash,Kibana 開源軟件的集合,對外是作為一個日志管理系統的開源方案。它可以從任何來源,任何格式進行日志搜索,分析獲取數據,并實時進行展示。像盾牌(安全),監護者(警報)和Marvel(監測)一樣為你的產品提供更多的可能。
Elasticsearch:搜索,提供分布式全文搜索引擎
Logstash: 日志收集,管理,存儲
Kibana :日志的過濾web 展示
Filebeat:監控日志文件、轉發
工作原理如下如所示:
一、測試環境規劃圖
操作系統 centos6.5 x86_64
elk server: 192.168.3.17
為避免干擾,關閉防火墻和selinux
service iptables off
setenforce 0
三臺機器都需要修改hosts文件
cat /etc/hosts
192.168.3.17 elk.chinasoft.com
192.168.3.18 rsyslog.chinasoft.com
192.168.3.13 nginx.chinasoft.com
修改主機名:
hostname elk.chinasoft.com
mkdir -p /data/elk
下載elk相關的軟件
cd /data/elk
wget -c https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.3/elasticsearch-2.3.3.rpm
wget -c https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.2-1.noarch.rpm
wget -c https://download.elastic.co/kibana/kibana/kibana-4.5.1-1.x86_64.rpm
wget -c https://download.elastic.co/beats/filebeat/filebeat-1.2.3-x86_64.rpm
服務器只需要安裝e、l、k, 客戶端只需要安裝filebeat。
安裝elasticsearch,先安裝jdk,elk server 需要java 開發環境支持,由于客戶端上使用的是filebeat軟件,它不依賴java環境,所以不需要安裝
二、elk服務端操作
1.安裝jdk8和elasticsearchrpm -ivh jdk-8u102-linux-x64.rpm
yum localinstall elasticsearch-2.3.3.rpm -y
啟動服務
service elasticsearch start
chkconfig elasticsearch on
檢查服務
rpm -qc elasticsearch
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/logging.yml
/etc/init.d/elasticsearch
/etc/sysconfig/elasticsearch
/usr/lib/sysctl.d/elasticsearch.conf
/usr/lib/systemd/system/elasticsearch.service
/usr/lib/tmpfiles.d/elasticsearch.conf
是否正常啟動
netstat -nltp | grep java
tcp ? ? ? ?0 ? ? ?0 ::ffff:127.0.0.1:9200 ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1927/java ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 ::1:9200 ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1927/java ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 ::ffff:127.0.0.1:9300 ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1927/java ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 ::1:9300 ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1927/java?
2.安裝kibana
yum localinstall kibana-4.5.1-1.x86_64.rpm -y
service kibana start
chkconfig kibana on
檢查kibana服務運行(Kibana默認 進程名:node ,端口5601)
ss -tunlp|grep 5601
tcp ? ?LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ?*:5601 ? ? ? ? ? ? ? ? ?*:* ? ? ?users:(("node",2042,11))
日志觀察
tail -f /var/log/kibana/kibana.stdout?
這時,我們可以打開瀏覽器,測試訪問一下kibana服務器http://192.168.3.17:5601/,確認沒有問題,如下圖:
安裝logstash,以及添加配置文件
yum localinstall logstash-2.3.2-1.noarch.rpm -y
生成證書
cd /etc/pki/tls/
openssl req -subj '/CN=elk.chinasoft.com/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
enerating a 2048 bit RSA private key ..............................................+++ ........................................................................................................................................................+++ writing new private key to 'private/logstash-forwarder.key' -----
之后創建logstash 的配置文件,如下:
vim /etc/logstash/conf.d/01-logstash-initial.conf
input {
? beats {
? ? port => 5000
? ? type => "logs"
? ? ssl => true
? ? ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
? ? ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
? }
}
filter {
? if [type] == "syslog-beat" {
? ? grok {
? ? ? match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
? ? ? add_field => [ "received_at", "%{@timestamp}" ]
? ? ? add_field => [ "received_from", "%{host}" ]
? ? }
? ? geoip {
? ? ? source => "clientip"
? ? }
? ? syslog_pri {}
? ? date {
? ? ? match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
? ? }
? }
}
output {
? elasticsearch { }
? stdout { codec => rubydebug }
}
啟動logstash,并檢查端口,配置文件里,此處寫的是5000端口
service logstash start
ss -tunlp|grep 5000
tcp ? ?LISTEN ? ? 0 ? ? ?50 ? ? ? ? ? ? ? ? ? ?:::5000 ? ? ? ? ? ? ? ? :::* ? ? ?users:(("java",2238,14))
修改elasticsearch 配置文件
查看目錄,創建文件夾es-01(名字不是必須的),logging.yml是自帶的,elasticsearch.yml是創建的文件,具體如下:
cd /etc/elasticsearch/
ll
total 12
-rwxr-x--- 1 root elasticsearch 3189 May 12 21:24 elasticsearch.yml
-rwxr-x--- 1 root elasticsearch 2571 May 12 21:24 logging.yml
drwxr-x--- 2 root elasticsearch 4096 May 17 23:49 scripts
[root@centossz008 elasticsearch]# tree
├── elasticsearch.yml
├── es-01
│ ? ├── elasticsearch.yml
│ ? └── logging.yml
├── logging.yml
└── scripts
mkdir es-01
vim es-01/elasticsearch.yml?
http:
? port: 9200
network:
? host: elk.chinasoft.com
node:
? name: elk.chinasoft.com
path:
? data: /etc/elasticsearch/data/es-01
重啟elasticsearch、logstash服務。
service elasticsearch restart
Stopping elasticsearch: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
Starting elasticsearch: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
# service logstash restart
Killing logstash (pid 2238) with SIGTERM
Waiting logstash (pid 2238) to die...
Waiting logstash (pid 2238) to die...
logstash stopped.
logstash started.
將fiebeat安裝包拷貝到 rsyslog、nginx 客戶端上
將 fiebeat安裝包拷貝到 rsyslog、nginx 客戶端上
scp filebeat-1.2.3-x86_64.rpm root@rsyslog.chinasoft.com:/root
scp filebeat-1.2.3-x86_64.rpm root@nginx.chinasoft.com:/root
scp /etc/pki/tls/certs/logstash-forwarder.crt rsyslog.chinasoft.com:/root
scp /etc/pki/tls/certs/logstash-forwarder.crt nginx.chinasoft.com:/root
三、客戶端部署filebeat(在rsyslog、nginx客戶端上操作)
filebeat客戶端是一個輕量級的,從服務器上的文件收集日志資源的工具,這些日志轉發到處理到Logstash服務器上。該Filebeat客戶端使用安全的Beats協議與Logstash實例通信。lumberjack協議被設計為可靠性和低延遲。Filebeat使用托管源數據的計算機的計算資源,并且Beats輸入插件盡量減少對Logstash的資源需求。
(node1 rsyslog.chinasoft.com)安裝filebeat,拷貝證書,創建收集日志配置文件
yum localinstall filebeat-1.2.3-x86_64.rpm -y
#拷貝證書到本機指定目錄中
[root@rsyslog elk]# cp logstash-forwarder.crt /etc/pki/tls/certs/.
[root@rsyslog elk]# cd /etc/filebeat/
?tree
.
├── conf.d
│ ? ├── authlogs.yml
│ ? └── syslogs.yml
├── filebeat.template.json
├── filebeat.yml
└── filebeat.yml.bak
修改的文件有3個,filebeat.yml,是定義連接logstash 服務器的配置。conf.d目錄下的2個配置文件是自定義監控日志的,下面看下各自的內容:
mkdir conf.d
vim filebeat.yml
------------------------------------------
filebeat:
? spool_size: 1024
? idle_timeout: 5s
? registry_file: .filebeat
? config_dir: /etc/filebeat/conf.d
output:
? logstash:
? ? hosts:
? ? - elk.chinasoft.com:5000
? ? tls:
? ? ? certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
? ? enabled: true
shipper: {}
logging: {}
runoptions: {}
------------------------------------------
vim conf.d/authlogs.yml?
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /var/log/secure
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
vim conf.d/syslogs.yml
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /var/log/messages
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
vim conf.d/flowsdk.yml
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /data/logs/flowsdk.log
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
修改完成后,啟動filebeat服務
service filebeat start
chkconfig filebeat on
報錯:
service filebeat start
Starting filebeat: 2016/10/12 14:05:46 No paths given. What files do you want me to watch?
分析:
需要監控的文件,不是最近24小時產生的,添加一個其他的文件即可如/var/logs/message
(node2 nginx.chinasoft.com)安裝filebeat,拷貝證書,創建收集日志配置文件
yum localinstall filebeat-1.2.3-x86_64.rpm -y
cp logstash-forwarder.crt /etc/pki/tls/certs/.
cd /etc/filebeat/
tree
.
├── conf.d
│ ? ├── nginx.yml
│ ? └── syslogs.yml
├── filebeat.template.json
└── filebeat.yml
修改filebeat.yml 內容如下:
vim filebeat.yml
------------------------------------------
filebeat:
? spool_size: 1024
? idle_timeout: 5s
? registry_file: .filebeat
? config_dir: /etc/filebeat/conf.d
output:
? logstash:
? ? hosts:
? ? - elk.chinasoft.com:5000
? ? tls:
? ? ? certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
? ? enabled: true
shipper: {}
logging: {}
runoptions: {}
------------------------------------------
syslogs.yml & nginx.yml
vim conf.d/syslogs.yml
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /var/log/messages
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
vim conf.d/nginx.yml
------------------------------------------
filebeat:
? prospectors:
? ? - paths:
? ? ? - /var/log/nginx/access.log
? ? ? encoding: plain
? ? ? fields_under_root: false
? ? ? input_type: log
? ? ? ignore_older: 24h
? ? ? document_type: syslog-beat
? ? ? scan_frequency: 10s
? ? ? harvester_buffer_size: 16384
? ? ? tail_files: false
? ? ? force_close_files: false
? ? ? backoff: 1s
? ? ? max_backoff: 1s
? ? ? backoff_factor: 2
? ? ? partial_line_waiting: 5s
? ? ? max_bytes: 10485760
------------------------------------------
修改完成后,啟動filebeat服務,并檢查filebeat進程
重新載入 systemd,掃描新的或有變動的單元;啟動并加入開機自啟動
systemctl daemon-reload
systemctl start filebeat
systemctl enable filebeat
systemctl status filebeat
● filebeat.service - filebeat
? ?Loaded: loaded (/usr/lib/systemd/system/filebeat.service; enabled; vendor preset: disabled)
? ?Active: active (running) since Tue 2016-10-11 17:23:03 CST; 2min 56s ago
? ? ?Docs: https://www.elastic.co/guide/en/beats/filebeat/current/index.html
?Main PID: 22452 (filebeat)
? ?CGroup: /system.slice/filebeat.service
? ? ? ? ? ?└─22452 /usr/bin/filebeat -c /etc/filebeat/filebeat.yml
Oct 11 17:23:03 localhost.localdomain systemd[1]: Started filebeat.
Oct 11 17:23:03 localhost.localdomain systemd[1]: Starting filebeat...
Oct 11 17:23:31 localhost.localdomain systemd[1]: Started filebeat.
通過上面可以看出,客戶端filebeat進程已經和 elk 服務器連接了。下面去驗證。
?
四、驗證,訪問kibana http://192.168.3.17:5601
為了后續使用Kibana,需要配置至少一個Index名字或者Pattern,它用于在分析時確定ES中的Index。這里使用系統默認,Kibana會自動加載該Index下doc的field,并自動選擇合適的field用于圖標中的時間字段至此,elk搭建和簡單的使用暫告一段落
vim /etc/init.d/elasticsearch
修改如下兩行:
LOG_DIR="/data/elasticsearch/log"
DATA_DIR="/data/elasticsearch/data"
創建存儲數據和本身日志的目錄
mkdir /data/elasticsearch/data -p
mkdir /data/elasticsearch/log -p
chown -R elasticsearch.elasticsearch /data/elasticsearch/
重啟服務生效
/etc/init.d/elasticsearch
如果是編譯安裝的,配置存儲目錄是elasticsearch.yml如下:
cat /usr/local/elasticsearch/config/elasticsearch.yml | egrep -v "^$|^#"?
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: X.X.X.X
network.port: 9200
logstash日志存放目錄修改:
vim /etc/init.d/logstash
LS_LOG_DIR=/data/logstash
轉載于:https://www.cnblogs.com/reblue520/p/6239692.html
總結
以上是生活随笔為你收集整理的Centos6.5使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux命令之tar等
- 下一篇: 安装程序无法创建新的系统分区也无法定位现