ELK日志分析平台集群搭建

2018年8月16日16:25:52 发表评论 5,510 ℃

一、准备工作

架构图

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: