基於5台虛擬機,搭建ELK集群.
方案:
1. ELK是日志分析平台,而不是一款軟件,是一整套解決方案,是三個軟件產品的首字母縮寫,ELK分別代表:
Elasticsearch:負責日志檢索和儲存
Logstash:負責日志的收集和分析、處理
Kibana:負責日志的可視化
2. ELK組件在海量日志系統的運維中,可用於解決分布式日志數據集中式查詢和管理系統監控等,故障排查,安全信息和事件管理,報表功能
部署Elasticsearch分布式集群安裝,Kibana作為可視化平台,實時總結流量和數據的圖表,Logstash用來收集處理日志,如表-1所示
步驟:
1.創建虛擬機,更改主機名,配置IP,搭建第三方yum源(以主機es1為例)
[root@es1 ~]# echo es1 > /etc/hostname
[root@es1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static" #定義為靜態IP
IPADDR=192.168.1.51
NEMASK=255.255.255.0
GATEWAY=192.168.1.254
[root@se1 ~]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/system"
enabled=1
gpgcheck=1
[elk]
name=elk
baseurl="ftp://192.168.1.254/elk" #事先要將安裝ELK的rpm軟件包拷貝到/var/ftp/elk目錄下,並使用createrepo搭建服務端
enabled=1
gpgcheck=0
2. 定義本地解析
[root@se1 ~]# vim /etc/hosts
192.168.1.51 es1
192.168.1.52 es2
192.168.1.53 es3
192.168.1.54 es4
192.168.1.55 es5
3.部署elasticsearch節點(以主機es1為例)
[root@es1 ~]# yum -y install java-1.8.0-openjdk.x86_64
[root@es1 ~]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
[root@es1 ~]# sestatus #查看selinux狀態
SELinux status: disabled
[root@es1 ~]# yum -y install elasticsearch
[root@es1 ~]# vim /etc/elasticsearch/elasticsearch.yml
17 cluster.name: myelk #配置集群名字
23 node.name: es1 #當前主機名稱
54 network.host: 0.0.0.0 # 0.0.0.0示意監聽所有地址
68 discovery.zen.ping.unicast.hosts: ["es1", "es2", "es3"] #聲明集群里的主機成員有誰,不需要全部寫進去
[root@es1 ~]# systemctl restart elasticsearch
[root@es1 ~]# systemctl enable elasticsearch
[root@es1 ~]# netstat -antup | grep 9200
[root@es1 ~]# netstat -antup | grep 9300
4.訪問9200端口查看是否安裝成功
5. 主機集群安裝完成后的,可以訪問51-55的任意一台主機, 集群的節點都是5台,若先啟動的是es4或es5,這兩個會自動成為各自的集群,解決辦法,先啟動集群里的es1或es2或es3其中的一台,或者把es4和es5重啟,es4和es5會自動加進去. ES 集群驗證:返回字段解析:
”status”: ”green“ 集群狀態:綠色為正常、黃色表示有問題但不是很嚴重、紅色表示嚴重故障
”number_of_nodes”: 5, 表示集群中節點的數量
結束.