注明:一下的软件需要自己准备
一、准备环境:
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-*索引,可以查看相应的图表及日志信息