在Linux上面部署ELK

注明:一下的软件需要自己准备

一、准备环境:

1.两台elasticsearch主机4G内存

2.两台elasticsearch配置主机名node1和node2(可以省略)

#vim  /etc/hostname

#reboot

3. 两台elasticsearch配置hosts文件

#vim  /etc/hosts

192.168.1.1  node1

192.168.1.2  node2

4.检查java环境

#java  -version

5.关闭防火墙和selinux

6.利用ping测试,分别ping两个主机的名,看是否可以通

二、部署elasticsearch

以下前五步,在两个es上都要做,只是节点名不一样,es1位node1,es2为node2

1.安装elasticsearch(在两台主机上都要安装)

#rpm  -ivh  /mnt/elasticsearch-5.5.0.rpm

#systemctl  daemon-reload

#systemctl  enable elasticsearch

2.更改elasticsearch主配置文件(配置都有修改即可 )

#vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-application   //群集名字

node.name: node1  //节点名字

path.data: /data/elk_data  //数据存放路径

path.logs: /var/log/elasticsearch  //日志存放路径

bootstrap.memory_lock: false  //在启动时不锁定内存,可以提高性能

network.host: 0.0.0.0   //监听地址0.0.0.0代表所有

http.port: 9200       //监听端口

discovery.zen.ping.unicast.hosts: ["node1", "node2"]  //群集发现通过单播实现

3.创建数据存放路径并授权

#mkdir  -p  /data/elk_data 

#chown  elasticsearch:elasticsearch   /data/elk_data  将/data/elk_data目录的归属更改为elasticsearch

4.启动elasticsearch并查看是否启动成功(可能需要重启系统)

#systemctl  start  elasticsearch

# netstat -anpt|grep 9200

tcp6       0      0 :::9200         :::*       LISTEN      1018/java

5.在客户机上查看节点信息

Node1节点1的信息

Node2节点1的信息

查看群集是否健康

查看群集的状态

三、在es1上安装elasticsearch-head插件

注:es-head是es的web前端工具,可以更直观方便的管理es集群,在es5.0后需要做为独立服务进行安装,需要npm命令,安装es-head需要提前安装node和phantomjs,node是一个基于chrome v8引擎的javascript运行环境,而phantomjs是一个基于webkit的javascriptAPI,可以理解为一个隐形的浏览器

(1)安装node 大约需要40分钟时间

#tar zxf  /mnt/node-v8.2.1.tar.gz -C /usr/src   //解压的目录不能有中文路径

# cd  /usr/src/node-v8.2.1/

#./configure&&make&&make install

(2)安装phantomjs

#tar  xvjf  /mnt/phantomjs-2.1.1-linux-x86-64.tar.bz2 -C  /usr/src

#cd  /usr/src/phantomjs-2.1.1-linux-x86_64/bin

#cp  phantomjs  /usr/local/bin

(3)安装elasticsearch-head

# tar zxf  /mnt/elasticsearch-head.tar.gz  -C  /usr/src

#cd  /usr/src/elasticsearch-head/

#npm  install  //安装依赖包

(4)修改elasticsearch主配置文件

#vim  /etc/elasticsearch/elasticsearch.yml

http.cors.enabled:  true   //增加  开启跨域访问支持,默认为false

http.cors.allow-origin:  "*"  //增加  跨域访问允许的域名地址 即在es head中访问es

# systemctl restart  elasticsearch.service

(5)启动es-head服务(必须在elasticsearch-head目录下启动):监听端口为tcp 9100

[root@node4 elasticsearch-head]# npm run start & //前台启动,一旦关闭中断,服务也将随之关闭

(6)通过elasticsearch-head查看elasticsearch信息,发现索引为空

(7)插入索引。通过命令插入一个测试索引,通过输出信息可以看到索引为index-demo,类型为test(此步完全是为了验证可以省略)

# curl  -XPUT  'localhost:9200/index-demo/test/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

{

  "_index" : "index-demo",

  "_type" : "test",

  "_id" : "1",

  "_version" : 1,

  "result" : "created",

  "_shards" : {

    "total" : 2,

    "successful" : 2,

    "failed" : 0

  },

  "created" : true

}

四、在node1上安装kibana

1.安装kibana

# rpm  -ivh  /mnt/kibana-5.5.1-x86_64.rpm

# systemctl enable  kibana

2.设置kibana的主配置文件/etc/kibana/kibana.yml(默认存在配置,去掉注释)

server.port: 5601                               //kibana打开的监听端口

server.host: "0.0.0.0"         //kibana监听的地址

elasticsearch.url: http://192.168.1.1:9200   与elasticsearch建立连接

kibana.index: ".kibana"   //在es中添加.kibana索引

3.启动kibana服务:监听端口为tcp5601

# systemctl  start  kibana

4.在客户机访问kibana验证kibana

   

五、在apache上安装并配置logstash,收集apache的访问和错误日期,并将其发送给elashticsearch服务器

将apache服务器的日志添加到elasticsearch并通过kibana显示

1.准备工作,安装httpd

#yum  -y  install  httpd

2.启动httpd

#systemctl  restart  httpd

3.在客户机上访问httpd

4.在apache服务器上安装logstash,以便将收集到的日志发送到elasticsearch中

#rpm  -ivh  /mnt/logstash-5.5.1.rpm

#systemctl  daemon-reload

#systemctl  enable  logstash

5.编写logstash配置文件apache_log.conf

# vim  /etc/logstash/conf.d/apache_log.conf

input {      

 file{

                path => "/etc/httpd/logs/access_log"  //收集apache的访问日志

                type => "access"   //指定日志类型为access(访问日志),可以自定义

                start_position => "beginning"  //从日志开始处收集

 }

 file{

                path => "/etc/httpd/logs/error_log"  //收集apache的错误日志

                type => "error"        //指定日志类型为error(错误日志),可以自定义

                start_position => "beginning"  //从日志开始处收集

 }

}

output {

        if [type] == "access" {         //如果类型为access,即apache访问日志

                elasticsearch {         //输出到elasticsearch

                        hosts => ["192.168.1.1:9200"]  //es服务器监听地址及端口

                        index => "apache_access-%{+YYYY.MM.dd}" //指定索引格式

                        }

   }

        if [type] == "error" {   //如果类型为error,即apache错误日志

                elasticsearch {   //输出到elasticsearch

                        hosts => ["192.168.1.1:9200"]   //es服务器监听地址及端口

                        index => "apache_error-%{+YYYY.MM.dd}"  //指定索引格式

                        }

   }

  }

6.启动logstash并加载配置文件

# /usr/share/logstash/bin/logstash  -f  /etc/logstash/conf.d/apache_log.conf

7.通过浏览器访问http://192.168.1.1:9100查看索引是否创建

六、在apache服务器上,通过修改logstash配置文件,让其收集系统日志/va/log/messages,并将其输出到elasticsearch中(视需要)

# chmod  o+r  /var/log/messages

# vim /etc/logstash/conf.d/system.conf

input {

        file{

                path => "/var/log/messages"

                type => "system"

                start_position => "beginning"

        }

 }

output {

        elasticsearch {

        hosts => ["192.168.1.1:9200"]

        index => "system-%{+YYYY.MM.dd}"

}

七、在es1上配置kibana

1.在客户机上登录kibana

2.点击+create  index  pattern添加apache_access索引和apache_error索引

输入索引关键字

3.选择Discover选项卡,在中间下拉列表中选择刚添加的apache_access-*索引,可以查看相应的图表及日志信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值