最近由于工作需要,需要搭建一个ELK日志监控平台,本次采用Filebeat(采集数据)+Elasticsearch(建立索引)+Kibana(展示)架构,实现日志搜索展示功能。
一、安装环境描述:
1、JDK1.8以上版本;
2、CentOS release 6.10 (Final) x86_64
二、Elasticsearch安装部署
2.1 官方网站
Elasticsearch:https://www.elastic.co/downloads/elasticsearch
Kibana:https://www.elastic.co/downloads/kibana
Filebeat:https://www.elastic.co/downloads/beats/filebeat
2.2 安装方式
这里采用RPM安装方式,要在root权限下安装。
为什么采用RPM安装方式?
因为采用这种方式安装,直接可将软件安装成服务,可采用service命令启动;
2.2.1 安装
这里我采用的是6.3.2版本;
依次执行以下命令:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.rpm.sha512
shasum -a 512 -c elasticsearch-6.3.2.rpm.sha512
rpm --install elasticsearch-6.3.2.rpm
2.2.2 查看已安装的软件、卸载
1、查看所有已安装的软件命令:
rpm –qa
2、查询指定名称软件包是否安装命令:
rpm –q 包名称
例:rpm -q elasticsearch
3、卸载
rpm -e rpm安装包名称
例:rpm -e elasticsearch
2.2.3 设置开机启动
chkconfig --add elasticsearch
2.2.4 启动/关闭服务
service elasticsearch start
service elasticsearch stop
2.2.5 查看进程,获取对应PID
ps -ef|grep elasticsearch
杀死进程:kill -9 PID
2.3 Elasticsearch配置
2.3.1 通过RPM方式安装,配置文件位置
(1)默认配置文件:/etc/elasticsearch/elasticsearch.yml
(2)系统配置文件:/etc/sysconfig/elasticsearch
2.3.2 可通过修改/etc/sysconfig/elasticsearch配置文件的配置来指定默认配置文件位置:
ES_PATH_CONF=/etc/elasticsearch
2.3.3 常用文件默认位置
类型 |
描述 |
默认位置 |
设置 |
home |
Elasticsearch 根目录或者$ES_HOME |
/usr/share/elasticsearch |
|
bin |
包含elasticsearch (用于启动程序)和elasticsearch-plugin(用于安装插件) |
/usr/share/elasticsearch/bin |
|
conf |
配置文件目录,包含elasticsearch.yml |
/etc/elasticsearch |
ES_PATH_CONF |
conf |
环境变量文件,包括堆栈大小 |
/etc/sysconfig/elasticsearch |
|
data |
索引、分片的数据存储位置 |
/var/lib/elasticsearch |
path.data |
logs |
Elasticsearch运行日志 |
/var/log/elasticsearch |
path.logs |
plugins |
插件文件位置 |
/usr/share/elasticsearch/plugins |
2.3.4 常见配置
elasticsearch.yml :用于配置elasticsearch
关键elasticsearch配置:
(1)集群名称(Cluster name)
例如:“cluster.name:elasticsearch ”。
设置好后会自动发现在现在同一网段下的节点,如果在同一网段下有多个集群,可用这个属性来区分不同的集群。
(2)节点名称(Node name)
elasticsearch启动时会自动创建节点名称,但也可在node.name中配置。
指定节点名称有助于利用API访问具体的节点。
(3)节点是否为master主节点
每个节点都可被配置成为主节点,默认值为true;
在node.master:true 中进行设置,目的是指定该节点是否有资格被选举为node,默认集群中的第一台机器为master,如果这台机器宕机就会重新选举master。
(4)设置节点是否存储数据:默认为true,即设置 node.data: true 。
如果希望节点只是一个master但不存储数据,则应当设置为:
node.master: true
node.data: false
(5)node.attr.rack 设置机架编号
(6)在node.max_local_storage_nodes中设置一台机器能运行的最大节点数目
(7)设置分配给当前节点的索引数据所在位置:可在配置文件的path.data 进行设置;
默认是:/var/data/elasticsearch
可以选择,包含一个以上的位置,用逗号隔开;
(8)设置日志文件所在位置path.logs
默认是:/var/log/elasticsearch
(9)设置绑定的IP地址network.host
network.host: 服务器IP
(10)设置HTTP传输监听定制的端口,默认是9200,在配置文件中http.port 中进行设置。
(11)设置集群中master节点的初始列表,可通过这些节点来自动发现新加入的集群节点:
Discovery.zen.ping.unicast.hosts: ["host1","host2"]
jvm.options :用于配置elasticsearch JVM配置
常用配置:
-Xms2g
-Xmx2g
log4j2.properties : 用于配置elasticsearch的日志
2.4 常见报错及对应解决方案
2.4.1、启动报错解决方案:
报错1:java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
解决方案:修改elasticsearch.yml 添加以下内容
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
2.5 测试是否安装成功
在终端执行以下命令:
curl -X GET "服务器IP:9200/"
如果显示类似以下内容,则表示启动成功:
{
"name" : "PH13r4Z",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "6YfRHmWJQhmWqEyuyozQgw",
"version" : {
"number" : "6.3.2",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "053779d",
"build_date" : "2018-07-20T05:20:23.451332Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
未完待续。