部署ELK-6.3.0

ELK基本原理我就不再阐述了,网上一搜一大推
首先说一下运行环境:
部署ELK-6.3.0_第1张图片
(CentOS7和java1.8.0)
elasticsearch7以后都自己集成了jdk,可以忽略,并且会对jdk的版本有要求,不低于11

然后登陆elastic的官网地址下载ELK组件:https://www.elastic.co/cn/products
我是下载了6.3.0版本的:
elasticsearch-6.3.0
logstash-6.3.0
kibana-6.3.0-linux-x86_64
下载完之后逐个解压到随意目录下,我这里的安装顺序为elasticsearch、logstash、kibana

一、elasticsearch的安装
在成功运行elasticsearch之前需要完成几个配置的修改,包括系统配置和应用设置,还有在启动的时候不可以使用root用户,elasticsearch文件夹的属主和属组需要修改为普通用户

1、修改系统配置:

vim /etc/security/limits.conf
# 在最后添加/修改这4行,因为elasticsearch对系统最大连接数有要求
# 需重启生效

* soft nofile 65536
* hard nofile 65536
* soft nproc  65536
* hard nproc  65536
vim /etc/security/limits.d/20-nproc.conf
# 第一行最后一个数,修改为4096,如果是则不用修改
# limits.d下面的文件可能不是20-nproc.conf,可能是19-nproc.conf或者其他数字开头的文件。
# 修改内容是一样的,一般这个文件夹下就一个文件
# 需重启生效

*          soft    nproc     4096
root       soft    nproc     unlimited
vim /etc/sysctl.conf
# 添加如下参数
vm.max_map_count = 655360
fs.file-max=655360

# 对修改内容生效
sysctl -p  

2、修改elasticsearch配置文件

vim /you_path/elasticsearch-6.3.0/config/elasticsearch.yml
# 修改内容
cluster.name: testes  #集群名字,拥有相同名字的节点才能加入集群
node.name: node-1  #每个节点的名字,不能重复
path.data: /you_path/elasticsearch-6.3.0/data #数据保存目录
path.logs: /you_path/elasticsearch-6.3.0/logs #日志保存目录
bootstrap.memory_lock: true  #禁止使用交换分区影响效率
http.port: 9200  #ES端口
discovery.seed_hosts: ["192.168.94.128"]  #集群中可能成为master的节点,可以写多台
network.host: 0.0.0.0 #节点IP
cluster.initial_master_nodes: ["node-1"]  #初始master节点


# 添加如下参数
http.cors.enabled: true    // 开启跨域访问支持,默认为false
http.cors.allow-origin: "*"    // 跨域访问允许的域名地址,支持正则

ok,以上配置完修改后就可以启动ELK,通过以下命令启动

chown -R es:es /you_path/elasticsearch-6.3.0
cd /you_path/elasticsearch-6.3.0
./bin/elasticsearch -d        // -d 后台运行,我会在另外一篇文章里使用supervisor方法统一启动ELK

启动成功后访问elasticsearch的默认9200端口,就会出现类似以下的内容
部署ELK-6.3.0_第2张图片

如果没有启动成功,在启动命令的时候去掉-d参数,根据报错信息修改配置参数等

二、logstash的安装
logstash的安装就非常简单了,把下载的文件解压到相应的目录下,然后根据你的需求写一个配置文件,再启动就ok了,这里面我贴出来一个简单的配置文件:

vim /you_path/logstash-6.3.0/config/test.conf
# 没有这个文件则创建,创建什么文件名无所谓,后面会根据这个文件来启动logstash

input {
        file {#这里数据源是采集的本地日志文件
                path => ["/tmp/test_data"]
                codec => json {
                        charset => "UTF-8"
                }
        }
}

output {
        elasticsearch {
                hosts => ["172.168.254.26:9200"] #ES服务的地址
                index => "lalala-%{+YYYY.MM.dd}" #建立索引的格式
                document_type => "test"
                #user => "elastic"
                #password => "changeme"
        }
       

保存并退出,指定这个文件来启动logstash

cd /you_path/logstash-6.3.0
nohup ./bin/logstash -f config/test.conf &> run.log &      // 后台运行logstash

启动完成之后因为没有安装kibana,展示不出来logstash收集的数据,所有接着安装kibana

三、kibana的安装
kibana的安装更简单了,解压缩之后直接启动程序即可。这个前提条件是elasticsearch和kibana是在一台服务器里安装的,如果elasticsearch在其他服务器里面安装则需要修改相应的配置,我想没有多少人会分开安装吧?下面是启动命令:

cd /you_path/kibana-6.3.0-linux-x86_64/
nohup ./bin/kibana -H 0.0.0.0 &> run.log &      // 后台运行kibana

es和kibana在不用主机的情况下,需要修改kibana配置文件,定义好es主机的地址

vi config/kibana.yml

server.port: 5601
server.host: "192.168.94.128"  #kibana服务的ip
elasticsearch.hosts: ["http://192.168.94.128:9200"]  #es服务的信息

ok,稍等一会则完成启动,可以看出kibana的页面是越做越好看
部署ELK-6.3.0_第3张图片
到这里ELK的三大组件全部安装成功,并成功启动。现在展示一个收集日志的流程


之前在logstash的test.conf文件中定义了日志的目录,现在添加一些数据以便查看

vim /tmp/test_data

{"user": "test", "age": "11"}
{"user": "test1", "age": "12"}
{"user": "test2", "age": "13"}
{"user": "test3", "age": "14"}
{"user": "test4", "age": "15"}
{"user": "test5", "age": "16"}
{"user": "test6", "age": "17"}
{"user": "test7", "age": "18"}
{"user": "test8", "age": "19"}
{"user": "test9", "age": "20"}

日志文件中已经填入内容,这时访问kibana,来创建索引
部署ELK-6.3.0_第4张图片
部署ELK-6.3.0_第5张图片

这时会显示在test.conf中定义的index,添加索引是支持正则的,所以在Index pattern中可以填入“lalala-*”,像如下图片一样,然后点击Next step
部署ELK-6.3.0_第6张图片

然后选择@timestamp,选择这个是为每个字段标记时间,可以让收集到的数据在时间轴上展示,到此添加一个index完成
部署ELK-6.3.0_第7张图片

点击Discover,选择咱们的index,这时右侧就展示了收集到的所有数据。
部署ELK-6.3.0_第8张图片

你可能感兴趣的:(系统运维)