一、準備工作
架構圖

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

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端口是否監聽

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

四、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登錄到這臺機器上,測試一下有沒有日志輸出:

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服務器上查看日志,執行以下命令可以獲取索引信息:

2、獲取指定索引詳細信息:
curl -XGET 'master:9200/system-syslog-2018.03?pretty'
3、kibana頁面上配置索引:
瀏覽器直接輸入masterIP:5601,然后使用通配符,進行批量匹配:

下一步

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

EFK日志管理搭建參考:
相關推薦:


