ELK日志分析平臺集群搭建

2018年8月16日16:25:52 發表評論 7,192 ℃

一、準備工作

架構圖

ELK日志分析平臺集群搭建

1、準備三臺虛擬機,系統版本:CentOS Linux release 7.5.1804

master 192.168.133.128

node1  192.168.133.129

node2  192.168.133.130

2、系統初始化操作

a.關閉seLinux

setenforce 0

修改/etc/selinux/config將SELINUX=enforcing改為SELINUX=disabled

b.關閉防火墻

systemctl stop firewalld

systemctl disable firewalld

c.配置hostname

hostname master

echo 'master' > /etc/hostname

分別修改node1和node2的hostname

d.配置hosts,三臺主機分別執行

cat <<EOF >> /etc/hosts

192.168.133.128 master

192.168.133.129 node1

192.168.133.130 node2

EOF

3、配置yum源

a.配置centos7阿里云yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

b.配置ES官方源

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat <<EOF > /etc/yum.repos.d/elastic.repo

[elasticsearch-6.x]

name=Elasticsearch repository for 6.x packages

baseurl=https://artifacts.elastic.co/packages/6.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

EOF

二、通用軟件安裝

1、三臺主機分別安裝jdk1.8

yum install -y java-1.8.0-openjdk

2、三臺主機分別安裝elasticsearch (當前最新版本6.3.2)

yum install -y elasticsearch

3、配置elasticsearch 

[root@master ~]#vim /etc/elasticsearch/elasticsearch.yml  # 增加或更改以下內容

cluster.name: master #集群中的名稱

node.name: master  #該節點名稱

node.master: true  #意思是該節點為主節點

node.data: false  #表示這不是數據節點

network.host: 0.0.0.0  #監聽全部ip,在實際環境中應設置為一個安全的ip

http.port: 9200  #es服務的端口號

discovery.zen.ping.unicast.hosts: ["master", "node1", "node2"] # 配置自動發現

將配置文件分別復制到node1和node2

[root@master ~]#scp /etc/elasticsearch/elasticsearch.yml node1:/etc/elasticsearch/

[root@master ~]#scp /etc/elasticsearch/elasticsearch.yml node2:/etc/elasticsearch/

修改node1配置文件

[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml

node.name: node1

node.master: false

node.data: true

修改node2配置文件

[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml

node.name: node2

node.master: false

node.data: true

4、三臺主機啟動elasticsearch服務

systemctl start elasticsearch && systemctl enable elasticsearch

啟動成功查看9200端口和9300端口是否監聽 ss -tnl

ELK日志分析平臺集群搭建

5、curl查看ES集群情況

集群的健康檢查:

[root@master ~]# curl http://master:9200/_cluster/health?pretty

{

  "cluster_name" : "master",

  "status" : "green",  # 為green則代表健康沒問題,如果是yellow或者red則是集群有問題

  "timed_out" : false, # 是否有超時

  "number_of_nodes" : 3,  # 集群中的節點數量

  "number_of_data_nodes" : 2, # 集群中data節點的數量

  "active_primary_shards" : 0,

  "active_shards" : 0,

  "relocating_shards" : 0,

  "initializing_shards" : 0,

  "unassigned_shards" : 0,

  "delayed_unassigned_shards" : 0,

  "number_of_pending_tasks" : 0,

  "number_of_in_flight_fetch" : 0,

  "task_max_waiting_in_queue_millis" : 0,

  "active_shards_percent_as_number" : 100.0

}

查看集群詳細信息

curl http://master:9200/_cluster/state?pretty

三、Master安裝kibana(當前最新版本6.3.2)

1、yum安裝

[root@master ~]#yum install -y kibana

2、配置kibana

[root@master ~]#vim /etc/kibana/kibana.yml  # 增加以下內容

server.port: 5601  # 配置kibana的端口

server.host: master  # 配置監聽ip

elasticsearch.url: "http://master:9200"  # 配置es服務器的ip,如果是集群則配置該集群中主節點的ip

logging.dest: /var/log/kibana.log  # 配置kibana的日志文件路徑,不然默認是messages里記錄日志

3、啟動kibana服務

systemctl start kibana && systemctl enable kibana

啟動成功ss -tnl查看5601端口是否監聽

ELK日志分析平臺集群搭建

通過瀏覽器訪問masterIP 192.168.133.128:5601可以查看web頁面。

ELK日志分析平臺集群搭建


四、node所有節點安裝logstash(當前最新版本1:6.3.2-1)

1、node1和node2分別安裝

[root@node1 ~]# yum install -y logstash

[root@node2 ~]# yum install -y logstash

2、創建一個軟連接,每次執行命令的時候不用在寫安裝路徑(默認安裝在/usr/share下)

ln -s /usr/share/logstash/bin/logstash /bin/

3、配置logstash收集syslog日志進行測試

[root@node1 ~]# vim /etc/logstash/conf.d/syslog.conf  # 加入如下內容

input {  # 定義日志源

  syslog {

    type => "system-syslog"  # 定義類型

    port => 10514    # 定義監聽端口

  }

}

output {  # 定義日志輸出

  stdout {

    codec => rubydebug  # 將日志輸出到當前的終端上顯示

  }

}

4、檢測配置文件是否有錯

ogstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit

    --path.settings 用于指定logstash的配置文件所在的目錄

    -f 指定需要被檢測的配置文件的路徑

    --config.test_and_exit 指定檢測完之后就退出,不然就會直接啟動了

或者運行 logstash -e 'input { stdin { } } output { stdout {} }'

如果報錯:

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N

需要vim /etc/logstash/jvm.options 添加 -XX:ParallelGCThreads=1 ,原因是我的虛擬機只設置了單核CPU。

    -XX:ParallelGCThreads=n 默認值:隨JVM運行平臺不同而異 配置并行收集器的線程數,即:同時多少個線程一起進行垃圾回收。此值最好配置與處理器數目相等。

5、配置kibana服務器的ip以及配置的監聽端口:

vim /etc/rsyslog.conf

*.* @@node1:10514

6、指定配置文件,啟動logstash:

logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf

7、然后在別的機器ssh登錄到這臺機器上,測試一下有沒有日志輸出:

ELK日志分析平臺集群搭建

8、配置logstash

a.配置讓收集的日志信息輸出到es服務器中

[root@node1 ~]# vim /etc/logstash/conf.d/syslog.conf # 更改為如下內容

input {

  syslog {

    type => "system-syslog"

    port => 10514

  }

}

output {

  elasticsearch {

    hosts => ["master:9200"]  # 定義ES服務器的IP

    index => "system-syslog-%{+YYYY.MM}" # 定義索引

  }

}

b.更改目錄權限:

chown -R logstash:logstash /var/lib/logstash/

chown -R logstash:logstash /var/log/logstash/

c.配置logstash本地監聽IP

vim /etc/logstash/logstash.yml

http.host: "node1"

d.檢測配置文件有沒有錯:

logstash --path.setings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit

如果沒有報錯,啟動logstash

systemctl start logstash  && systemctl enable logstash


五、kibana上查看日志

1、kibana服務器上查看日志,執行以下命令可以獲取索引信息:

ELK日志分析平臺集群搭建

2、獲取指定索引詳細信息:

curl -XGET 'master:9200/system-syslog-2018.03?pretty'

3、kibana頁面上配置索引:

瀏覽器直接輸入masterIP:5601,然后使用通配符,進行批量匹配:

ELK日志分析平臺集群搭建

下一步

ELK日志分析平臺集群搭建

4、配置成功后點擊 “Discover” 就可以查看系統日志。

ELK日志分析平臺集群搭建

EFK日志管理搭建參考:

fluentd代替logstash搭建EFK日志管理系統

相關推薦:

fluentd對java(log4j2)日志多行匹配采集格式化

【騰訊云】云服務器、云數據庫、COS、CDN、短信等云產品特惠熱賣中

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: