安装ELK
环境变量
修改主机名称 【三个主机都要修改】
[root@localhost ~]# hostnamectl set-hostname elk-1
[root@elk-1 ~]#
添加映射
[root@elk-1 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.70 elk-1
192.168.200.80 elk-2
192.168.200.90 elk-3
~
[root@elk-1 ~]# java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
安装jdk
[root@elk-1 ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装Elasticserach
[root@elk-1 ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
[root@elk-1 ~]# vi /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
~
~
~
~
"/etc/yum.repos.d/elastic.repo" [New] 9L, 223C written
[root@elk-1 ~]# yum clean all
[root@elk-1 ~]# yum repolist
[root@elk-1 ~]# yum install elasticsearch -y
配置elasticsearch
配置文件:/etc/elasticsearch/elasticsearch.yml
修改或者添加命令
[root@elk-1 ~]# vi /etc/elasticsearch/elasticsearch.yml
cluster.name: ELK
配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
node.name: elk-1
节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。
node.master: true
指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。 其他两节点为false
node.data: false
指定该节点是否存储索引数据,默认为true。其他两节点为true
path.data: /var/lib/elasticsearch
设置日志文件的存储路径,默认是es根目录下的logs文件夹
设置日志文件的存储路径,默认是es根目录下的logs文件夹
设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0
http.port: 9200
启动的es对外访问的http端口,默认9200
discovery.zen.ping.unicast.hosts: ["elk-1","elk-2","elk-3"]
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
elk-1节点
[root@elk-1 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v ^# |grep -v ^$
cluster.name: elk
node.name: elk-1
node.master: true
node.data: false
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.200.70", "192.168.200.80","192.168.200.90"]
elk-2节点
[root@elk-2 ~]# egrep -v '^$|^#' /etc/elasticsearch/elasticsearch.yml
cluster.name: elk
node.name: elk-2
node.master: false
node.data: true
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.200.70", "192.168.200.80","192.168.200.90"]
elk-3节点
[root@elk-3 ~]# egrep -v '^$|^#' /etc/elasticsearch/elasticsearch.yml
cluster.name: elk
node.name: elk-3
node.master: false
node.data: true
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.200.70", "192.168.200.80","192.168.200.90"]
关闭防火墙都关
[root@elk-1 ~]# systemctl stop firewalld
[root@elk-1 ~]# setenforce 0
启动服务 【先启动主节点,再启动从节点】
[root@elk-1 ~]# systemctl restart elasticsearch
查看端口 【主要看9200和9300】
[root@elk-1 ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1473/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1856/master
tcp6 0 0 :::9200 :::* LISTEN 4016/java
tcp6 0 0 :::9300 :::* LISTEN 4016/java
tcp6 0 0 :::22 :::* LISTEN 1473/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1856/master
检查集群状态
[root@elk-1 ~]# curl '192.168.200.70:9200/_cluster/health?pretty'
{
"cluster_name" : "elk",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 2,
"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
}