ELK安装笔记

说明:

ELK是指elasticsearch、logstash、kibana三个开源软件组成的日志收集分析系统,具有比较好的可扩展性和灵活性。

Elasticsearch:日志搜索

Logstash:日志收集

Kibana:日志展示

环境:

Centos 7 虚拟机2台 2核4G

192.168.31.107:elasticsearch master节点,logstash服务

192.168.31.117:elasticsearch slave节点,kibana服务

一、JAVA环境部署

jdk安装包下载地址(下载需注册oracle帐号):

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

选择下载rpm包后上传至服务器进行安装,建议使用java8

#yum install jdk-8u241-linux-x64.rpm

#java -version #查看java版本

二、Elasticsearch安装

官方地址:https://www.elastic.co/cn/

安装包下载地址:https://www.elastic.co/cn/downloads/elasticsearch

安装:

#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-x86_64.rpm

#yum install elasticsearch-7.6.1-x86_64.rpm

#vim /etc/elasticsearch/elasticsearch.yml #修改elasticsearch配置文件

cluster.name: ELK-Cluster #elasticsearch群积名称,同一群集所有节点必须一致

node.name: elk-node1 #elasticsearch节点名称,每个节点不能相同

path.data: /var/lib/elasticsearch #elasticsearch数据路径

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

bootstrap.memory_lock: true #锁定内存

network.host: 0.0.0.0 #监听的IP地址

http.port: 9200 #监听的端口

discovery.seed_hosts: [“192.168.31.107”, “192.168.31.117”] #群集中的节点发现列表

cluster.initial_master_nodes: [“192.168.31.107”, “192.168.31.117”] #可被选为master的节点

gateway.recover_after_nodes: 2 @允许数据恢复的最少可用节点数

action.destructive_requires_name: true

http.cors.enabled: true

http.cors.allow-origin: “0.0.0.0”

修改elasticsearch服务内存限制:

#vim /usr/lib/systemd/system/elasticsearch.service

#Memery setting

LimitMEMLOCK=infinity #不限制内存大小

修改elasticsearch可用内存大小

#vim /etc/elasticsearch/jvm.options

22 -Xms2g #最大内存

23 -Xmx2g #最小内存

数据和日志目录权限更改:如在配置文件中将elasticsearch的数据和日志路径修改为非默认路径,需要修改指定路径文件夹的所有者为elasticsearch用户,此处使用默认路径可忽略权限问题

#systemctl restart elasticsearch #重启elasticsearch服务

#ss -ntl #确认9200端口是否开启

LISTEN 0 128 [::]:9200 [::]:*

使用浏览器查看elasticsearch状态:http://192.168.31.107:9200/

{ “name” : “elk-node1”, “cluster_name” : “ELK-Cluster”, “cluster_uuid” : “D9xm736hSoas6jKjGnDP3w”, “version” : { “number” : “7.6.1”, “build_flavor” : “default”, “build_type” : “rpm”, “build_hash” : “aa751e09be0a5072e8570670309b1f12348f023b”, “build_date” : “2020-02-29T00:15:25.529771Z”, “build_snapshot” : false, “lucene_version” : “8.4.0”, “minimum_wire_compatibility_version” : “6.8.0”, “minimum_index_compatibility_version” : “6.0.0-beta1” }, “tagline” : “You Know, for Search” }

slave主机配置:slave使用相同的环境及配置,注意需要修改elasticsearch群集的节点名

elasticsearch-head安装

elasticsearch-head是一个用于监控和管理elasticsearch群集的工具

下载地址:https://github.com/mobz/elasticsearch-head

也可以使用chrome浏览器插件实现,不需要在服务器上安装

chrome插件下载地址:

https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm

打开插件后在页面上输入elasticsearch的地址及端口点连接即可

三、Logstash安装

logstash官方地址:https://www.elastic.co/cn/logstash

下载地址:https://www.elastic.co/cn/downloads/logstash

#wget https://artifacts.elastic.co/downloads/logstash/logstash-7.6.1.rpm

#yum install logstash-7.6.1.rpm #使用rpm包安装logstash

#chown -R logstash.logstash /usr/share/logstash/data/queue #修改logstash数据目录权限

#systemctl start logstash #启动logstash

#systemctl enable logstash #设置logstash自动启动

测试logstash

#/usr/share/logstash/bin/logstash -e ‘input { stdin{} } output { file { path => “/tmp/log-%{+YYYY.MM.dd}messages.gz”}}’ #调用logstash命令,输入为标准输入,输出为输出到指定文件

hello here #输入内容,回车,然后等一会儿logstash将内容追加到文件

[INFO ] 2020-03-19 15:43:58.179 [[main]>worker0] file – Opening file {:path=>”/tmp/log-2020.03.19messages.gz”} #logstash已将输入内容存储至指定文件

#tail /tmp/log-2020.03.19messages.gz #查看输出的文件,里面有刚输入的内容

{“@version”:”1″,”message”:”hello here”,”host”:”ct7″,”@timestamp”:”2020-03-19T07:43:57.622Z”}

四、Kibana安装

Kibana安装在elasticsearch从节点上(192.168.31.117)

Kibana官方地址:https://www.elastic.co/cn/kibana

下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-7.6.1-x86_64.rpm

#wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.1-x86_64.rpm

#yum install kibana-7.6.1-x86_64.rpm

#vim /etc/kibana/kibana.yml

server.port: 5601 #kibana服务监听端口

server.host: “0.0.0.0” #kibana服务监听IP

elasticsearch.hosts: [“http://192.168.31.107:9200”] #指定elasticsearch地址

i18n.locale: “zh-CN” #语言,中文

#systemctl start kibana

#systemctl enable kibana

#ss -ntl #确证5601端口已打开

LISTEN 0 128 *:5601 *:*

使用网页打开kibana:http://192.168.31.117:5601

五、使用logstash收集系统日志到elasticsearch

在logstash主机上编辑配置文件收集本机的系统日志到elasticsearch

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

input {

file {

path => “/var/log/messages” #日志路径

type => “systemlog” #日志的唯一类型,用于在kibana中创建索引

start_position => “beginning” #第一次收集日志的位置

stat_interval => “3” #日志收集的间隔时间

}

file {

path => “/var/log/secure”

type => “securelog”

start_position => “beginning”

stat_interval => “3”

}

}

output {

if [type] == “systemlog” {

elasticsearch {

hosts => [“192.168.31.107:9200”]

index => “system-log-%{+YYYY.MM.dd}”

}

}

if [type] == “securelog” {

elasticsearch {

hosts => [“192.168.31.107:9200”]

index => “secury-log-%{+YYYY.MM.dd}”

}

}

}

#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/system-log.conf -t #测试配置文件语法

#systemctl restart kibana #重启kibana使新加的配置生效

#往系统日志中追加数据,用于测试

#echo test000000 >>/var/log/secure

#echo test000000 >> /var/log/messages

在kibana中创建索引

在kibana中选择:Management—kibana—-索引模式—-创建索引模式

在定义索引模式中输入 system-log-*匹配即可

查看日志

在kibana中选择:Discover,索引选择system-log* 即可查看到系统日志

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注