部署ELK
准备实验环境
主机名 | 需求软件 | IP地址 |
---|
ES服务器:node1 | Elasticsearch,Kibana | 192.168.59.129 | ES服务器:node2 | Elasticsearch | 192.168.59.128 | Logstash服务器 | Logstash,Apache | 192.168.59.130 |
准备ES的环境
配置JDK 、添加地址映射(node1、2同步操作)
vim /etc/hosts
解压安装JDK
[root@node1 opt]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local
[root@node1 opt]# vim /etc/profile //插入环境
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
[root@node1 opt]# source /etc/profile
[root@node1 opt]# java -version
部署elasticsearch软件
安装elastaticsearch软件
[root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm
加载系统服务
[root@node1 opt]# systemctl daemon-reload
[root@node1 opt]# systemctl enable elasticsearch.service
更改elasticsearch主配置文件
[root@node1 opt]# vi /etc/elasticsearch/elasticsearch.yml
//取消以下对应行的#
17/ cluster.name: my-elk-cluster //集群名字
23/ node.name: node1 //####节点名字
33/ path.data: /data/elk_data //数据存放路径
37/ path.logs: /var/log/elasticsearch/ //日志存放路径
43/ bootstrap.memory_lock: false //不在启动的时候锁定内存(前端缓存。与IOPS-性能测试方式,每秒读写次数相关)
55/ network.host: 0.0.0.0 //提供服务绑定的IP地址,0.0.0.0代表所有地址
59/ http.port: 9200 //侦听端口为9200
68/ discovery.zen.ping.unicast.hosts: ["node1", "node2"]
//集群发现通过单播实现“单播”
创建数据存放文件的路径并给予权限
[root@node1 opt]# mkdir -p /data/elk_data
[root@node1 opt]# chown elasticsearch:elasticsearch /data/elk_data
[root@node1 opt]# ll -d /data/elk_data/
启动服务
[root@node1 opt]# systemctl start elasticsearch.service
[root@node1 opt]# netstat -antp | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 78762/java
在网页上查看节点信息 查看集群状态 查看集群是否健康
安装elasticsearch-head插件
node1、node2同步安装 node-v8.2.1.tar.gz、phantomjs-2.1.1-linux-x86_64.tar.bz2、elasticsearch-head.tar.gz 安装依赖包
yum install gcc gcc-c++ make -y
编译安装
[root@node1 opt]# tar xzf node-v8.2.1.tar.gz
[root@node1 opt]# cd node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure
[root@node1 node-v8.2.1]# make -j3
[root@node1 node-v8.2.1]# make install
安装phantomjs
[root@node1 opt]# tar xjf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
[root@node1 opt]# cd /usr/local/src
[root@node1 src]# cd phantomjs-2.1.1-linux-x86_64/
[root@node1 phantomjs-2.1.1-linux-x86_64]# cd bin
[root@node1 bin]# cp phantomjs /usr/local/bin
安装elasticsearch-head
[root@node1 opt]# tar xzf elasticsearch-head.tar.gz -C /usr/local/src
[root@node1 opt]# cd /usr/local/src
[root@node1 src]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm install
修改主配置文件
[root@node1 elasticsearch-head]# vim /etc/elasticsearch/elasticsearch.yml
重启es
systemctl restart elasticsearch
启动elasticsearch-head
[root@node1 elasticsearch-head]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &
[1] 124772
[root@node1 elasticsearch-head]#
> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100
[root@node1 elasticsearch-head]# netstat -antp | grep 9100
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 124782/grunt
查看es-head是否成功启动 在node1上创建一个索引(包含类型、文档)
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" : 5,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"created" : false
}
刷新页面
部署Logstash
安装apache
[root@logstash ~]# yum -y install httpd
[root@logstash ~]# systemctl start httpd
安装logstash
[root@logstash opt]# rpm -ivh logstash-5.5.1.rpm
[root@logstash opt]# systemctl start logstash.service
[root@logstash opt]# systemctl enable logstash.service
Created symlink from /etc/systemd/system/multi-user.target.wants/logstash.service to /etc/systemd/system/logstash.service.
[root@logstash opt]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin
#创建软连接方便系统识别
做logstash和es的对接测试
logstash 选项介绍:
-f:通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash
-e:后面跟着字符串 该字符串可以被当做logstash的配置(如果是” ”,则默认使用stdin做为输入、stdout作为输出)
-t:测试配置文件是否正确,然后退出
标准输入输出
logstash -e 'input { stdin{} } output { stdout{} }'
使用rubydebug显示详细输出
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug} }'
输入www.baidu.com 使用logstash将信息写入es数据库中
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.59.129:9200"] } }'
刷新页面 在apache上做对接配置,收集系统日志
[root@logstash opt]# chmod o+r /var/log/messages
[root@logstash opt]# cd /etc/logstash/conf.d/
[root@logstash conf.d]# vim system.conf
input {
file{
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["192.168.59.129:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
重启logstash服务
systemctl restart logstash.service
查看日志收集情况
安装Kibana
在node1上安装kibana
[root@node1 opt]# cd /usr/local/src
[root@node1 src]# rpm -ivh kibana-5.5.1-x86_64.rpm
修改配置文件
[root@node1 src]# cd /etc/kibana/
[root@node1 kibana]# cp kibana.yml kibana.yml.bak
[root@node1 kibana]# vim kibana.yml
开启kibana
[root@node1 kibana]# systemctl start kibana.service
访问192.168.59.129:5601看看是否收集到系统日志
|