linux 安装ELK日志收集系统

配置前提:安装java环境,详见博客

日志采集策略方案:
1、Filebeat(采集数据)+Elasticsearch(建立索引)+Kibana(展示)
     适合案例:nginx日志采集,tomcat日志采集,服务端api单行日志采集,服务端api多行日志采集(包含错误日志)
     不适合案例:对采集数据进行加工过滤处理
2、Filebeat(采集数据)+Logstash(过滤)+Elasticsearch(建立索引)+Kibana(展示)
    适合案例:适合日志通过Logstash过滤或者按照一定模板输出到es中
   

Elasticsearch部署
1、下载Elasticsearch软件(/mnt/elk目录下)
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
然后上传到当前路径下,解压文件
tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz

2、创建elsearch用户组及elsearch用户
groupadd elsearch
useradd elsearch -g elsearch
chown -R elsearch:elsearch elasticsearch-7.8.1

3、修改配置文件
vi /mnt/elk/elasticsearch-7.8.1/config/elasticsearch.yml

#这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name: my-application   
node.name: node-1 

#创建日志和数据存放路径,目录需要手动创建
path.data: /mnt/elasticsearch/data
path.logs: /mnt/log/elasticsearch_log

#ES监听地址
network.host: 0.0.0.0    #允许外网个访问
http.port: 9200
discovery.seed_hosts: ["172.16.61.49"]         #内网ip,如果有多个es,后面用逗号隔开
cluster.initial_master_nodes: ["node-1"] 

4、在此赋予文件权限
我们将整个文件夹授权给elsearch 用户,不然在启动会报错,显示没有权限
如果不设置启动报错内容地址如下https://blog.csdn.net/chengyuqiang/article/details/89845051
 chown -R elsearch  /mnt/elk/elasticsearch-7.8.1
 chown -R elsearch  /mnt/elasticsearch
 chown -R elsearch  /mnt/log/elasticsearch_log

5、修改系统配置参数
vim /etc/security/limits.conf       ##必须是在root账号权限下才可以,切换到其他用户会报错,没有权限
增加以下内容:
elsearch soft nofile 65536
elsearch hard nofile 65536
elsearch soft nproc 4096
elsearch hard nproc 4096

vi /etc/security/limits.d/20-nproc.conf
增加和修改如下:
elsearch    soft    nproc     65536
root       soft    nproc     unlimited

vi /etc/sysctl.conf
增加一行:
vm.max_map_count = 655360
如果不重启,上面配置不生效,可以用 sysctl -a|grep vm.max_map_count  查看结果
让上面配置生效,无需重启服务使用命令:  sysctl -p

修改elasticsearch内存占用大小,不然后期文件变大,就会因为内存不足报错
vi /mnt/elk/elasticsearch-7.8.1/config/jvm.options

-Xms1g
-Xmx1g

修改成
-Xms1g
-Xmx10g


6、切换到elsearch用户启动ES(用root用户启动会报错)
su elsearch
cd bin
./elasticsearch
./elasticsearch -d 或者 ./elasticsearch &      ##后台启动 
或者这样   ./elasticsearch & -Xmx10g -Xms10g      ##如果数据库过大后期就会报错,设置内存
tail -f  /mnt/log/elasticsearch_log/elasticsearch_log   ##可以看到后台启动日志


如图所示:

界面显示如下:


7、安装elasticsearch分词
点击下载,找到对应的版本分词zip文件


#进入es安装目录下的plugins下,创建ik文件夹
cd /mnt/elk/elasticsearch-7.8.1/plugins
mkdir ik

#将下载好的zip包放入ik文件夹下,执行解压
unzip elasticsearch-analysis-ik-7.8.1.zip

最后杀掉进程重新启动


Kibana部署
1、下载Kibana(/mnt/elk目录下)
下载地址:https://www.elastic.co/cn/downloads/kibana
然后上传到当前路径下,解压文件
tar -zxvf kibana-7.8.1-linux-x86_64.tar.gz

2、修改配置文件(/mnt/elk/kibana-7.8.1-linux-x86_64/config目录下)
编辑kibana.yml文件,打开注释,并修改相关参数
vi kibana.yml

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://118.178.11.111:9200"]

如图所示:

3、后台启动kibana(/mnt/elk/kibana-7.8.1-linux-x86_64/bin目录下)
./kibana --allow-root &     前台方式启动
nohup ./kibana --allow-root &   后台方式启动
如果你购买的是阿里云服务器,需要配置安全组出入方向5601端口
如图所示:

4、语言设置中文模式 ---》按照自己的习惯
/mnt/elk/kibana-7.8.1-linux-x86_64/config/kibana.yml  修改如下:
i18n.locale: "zh-CN"
如图所示:

设置完成后再重启
重点:kibana 不容易找到进程,ps -ef|grep kibana  ,使用方法如下:
尝试使用 fuser -n tcp 5601
kill -9 端口


重点:当系统出现Kibana server is not ready yet,解决方法:

利用 elasticsearch-head 插件去查看一下索引,发现果然有 .kibana_2 索引,并且还有其他以 .kibana 开头的索引,将这些索引都删除了。

重新执行启动即可

https://learnku.com/articles/46345



安装filebeat部署
重点说明:这个主要是采集数据,不具备过滤功能,所以会使用到
Logstash
1、下载filebeat(/mnt/elk目录下)     -----》用迅雷下载比较快,下载完成后上传到linux服务器
      解压文件:tar -zxvf filebeat-7.10.0-linux-x86_64.tar.gz

2、修改配置文件(/mnt/elk/filebeat-7.10.0-linux-x86_64目录下)
 vim filebeat.yml
修改以下几个字段
(1)、输入源配置,修改如下
原始:

将enabled 修改成true
将paths 后面跟采集数据源日志,
重点:在paths 下一行增加  tail_files: true  会导致无法采集,在es删除索引,配置该参数导致filebeat 无法创建索引,所以有时候不能随便乱加参数



(2)、输出日志只能选一种,我选择es,修改如下:
原始:

将localhost改成ES服务器IP地址,如果有用户名和密码,需要放开下面内容

(3)、后台方式启动
前台方式启动:./filebeat -e -c filebeat.yml &
后台方式启动:nohup ./filebeat -e -c filebeat.yml &

查看日志可以到/mnt/elk/filebeat-7.10.0-linux-x86_64/logs/filebeat 目录下

重启后如图所示,可以看到重启成功:


在看下es数据概览情况,已经创建了filebeat,如图所示

源文件 /mnt/log/nginx_log/accesslogs/test.log文件输入内容,分三次:
vim /mnt/log/nginx_log/accesslogs/test.log
hello world china
朱老师
李老师

数据日志如下:

重点:可以看到数据重复了,原因是vim 添加内容,所以解决方法是  echo "石头 123456" >> /mnt/log/nginx_log/accesslogs/test.log       ----》这种做法是追加内容,不是覆盖。
在es中删除filebeat索引,那么在此启动filebeat不会创建索引,需要删除/mnt/elk/filebeat-7.10.0-linux-x86_64/data目录,该目录存放着缓存,最后在重新启动就可以了。
rm -rf  /mnt/elk/filebeat-7.10.0-linux-x86_64/data

4、加入开机启动
在/etc/init.d/目录下创建filebeat_start.sh文件
touch  filebeat_start.sh
vi filebeat_start.sh

#!/bin/sh

#chkconfig: 2345 20 80

cd /mnt/elk/filebeat-7.10.0-linux-x86_64
nohup ./filebeat -e -c filebeat.yml &
wq!保存后 使用chmod设置可执行权限
chmod +x filebeat_start.sh
chkconfig --add filebeat_start.sh
chkconfig filebeat_start.sh on
shutdown -r now      ---重启系统
重启之后连接查看效果: ps -ef|grep filebeat   可以看到系统的服务了


Logstash部署

 Logstash 是一个实时数据收集引擎,可收集各类型数据并对其进行分析,过滤和归纳。按照自己条件分析过滤出符合数据导入到可视化界面。它可以实现多样化的数据源数据全量或增量传输,数据标准格式处理,数据格式化输出等的功能,常用于日志处理。工作流程分为三个阶段:

  (1)input数据输入阶段,可接收oracle、mysql、postgresql、file等多种数据源;
  (2)filter数据标准格式化阶段,可过滤、格式化数据,如格式化时间、字符串等;
  (3)output数据输出阶段,可输出到elasticsearch、mongodb、kfka等接收终端。
  那么,接下来将会对每个阶段进行讲解。

1、下载Logstash(/mnt/elk目录下)
下载地址:https://www.elastic.co/cn/downloads/logstash
然后上传到当前路径下,解压文件
tar -zxvf logstash-7.8.1.tar.gz

不同数据源配置方式不同,重启命令稍加变化,当mysql当数据源,需要安装插件
https://songzixian.com/linuxcmot/1010.html
https://www.cnblogs.com/blogjun/articles/8064646.html
https://www.cnblogs.com/renyutao/p/11253587.html


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

重点说明:文章上述都是采用第一种技术方案配合,接下来我要配置第二种方案,解决java的api服务器错误日志问题,请看下一篇博文介绍

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值