ELK-日志收集系统在Centos上环境安装

文章目录

    • ELK-日志收集系统在Centos上环境安装
  • 前言
  • 安装
    • elastcsearch6.5.4安装
      • 准备
      • 学习资料
      • 启动
        • 创建新用户
        • 取掉只能本机访问的配置
        • 配置跨域访问
        • 启动命令
        • 测试
    • 安装分词ik
      • 安装elasticsearch-head
    • LogStash6.5.4安装
      • 学习资料
      • 准备
      • 配置
      • 启动
      • 命令行参数
      • 注意
    • Kibana6.5.4安装
      • 学习资料
      • 安装
      • 启动
  • windows安装
  • nxlog在windows安装

前言

版本: ELK6.5.4
两台机器

名称 ip 作用
windows系统 192.168.2.32 本机,测试
centos7 192.168.2.33 安装elastcsearch6.5.4

elk-stack-guide-cn.pdf电子书,提取码glws

这里先介绍一个杀死占用指定端口的进程方法:

netstat -nlp | grep :9200|awk '{print $7}' | awk -F"/" '{ print $1 }'|xargs kill -9

上面代码杀死占用9200端口的进程

安装

elastcsearch6.5.4安装

准备

Elastic中文官网,基本上下载速度很慢,毕竟跨越国家了。
从我的网盘下载elastcsearch6.5.4,提取码:naqy

  1. 创建目录elk:mkdir /url/local/elk
  2. 将elasticsearch-6.5.4.tar.gz传到elk目录下
  3. 解压:tar -zxvf elasticsearch-6.5.4.tar.gz

学习资料

  1. ElasticSearch权威指南或者ElasticSearch权威指南

  2. Elasticsearch 基础入门

启动

创建新用户

因为安全问题elasticsearch不让用root用户直接运行,所以要创建新用户
参考Linux用户和权限管理,使用useradd命令创建一个chenyuan用户。
修改elasticsearch-6.5.4拥有都为chenyuan用户,命令:chown -R chenyuan /url/local/elk/elasticsearch-6.5.4

取掉只能本机访问的配置

命令:vim config/elasticsearch.yml

# 去掉 network.host 前边的注释,将它的值改成0.0.0.0
network.host: 0.0.0.0

配置跨域访问

命令:vim config/elasticsearch.yml
添加

http.cors.allow-origin: "*"
http.cors.enabled: true

这两个配置是支持跨域访问用的,这样的话后续安装的head插件和kibana才能够正常的访问es的查询接口。

启动命令

进入/url/local/elk/elasticsearch-6.5.4
切换用户执行elasticsearch命令:sudo -u chenyuan bin/./elasticsearch

如果想以后台方式启动,则在末尾加上-d,比如sudo -u chenyuan bin/./elasticsearch -d
关于启动方式:

  1. sudo -u chenyuan bin/./elasticsearch:执行启动,日志输出到控制台stdout
  2. sudo -u chenyuan bin/./elasticsearch -d:以daemon守护进程启动(后台运行),日志输出到/url/local/elk/elasticsearch-6.5.4/logs/elasticsearch.log
  3. nohup sudo -u chenyuan bin/./elasticsearch > /var/logs/test.log 2>&1 & 将标准输出和标准错误输出都重定向到/var/logs/test.log文件里

可能遇到的问题

  1. 问题:max file descriptors [65535]xxxxx
    例如:max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
    修改/etc/security/limits.conf,添加如下:
* - nproc 65536
* - nofile 65536
  1. 问题:max number of threads [3802]xxxx
    例如:max number of threads [3802] for user [chenyuan] is too low, increase to at least [4096]
    修改/etc/security/limits.d/90-nproc.conf,添加如下:
* soft nproc unlimited
root soft nproc unlimited 
  1. 问题:max virtual memory areas
    例如:vm.max_map_count [65530] likely too low, increase to at least [262144]
    以root用户执行命令:sudo sysctl -w vm.max_map_count=262144
    上述方法修改之后,如果重启虚拟机将失效,所以:

解决办法:

在 /etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144

执行 命令:sysctl -p
如果vm.max_map_count = 262144表示配置正确
即可永久修改。

启动很慢,命令启动日志:

[2019-02-23T09:03:24,612][INFO ][o.e.p.PluginsService     ] [YURwwIO] loaded module [x-pack-watcher]
[2019-02-23T09:03:24,612][INFO ][o.e.p.PluginsService     ] [YURwwIO] no plugins loaded
[2019-02-23T09:04:36,610][INFO ][o.e.x.s.a.s.FileRolesStore] [YURwwIO] parsed [0] roles from file [/usr/local/elk/elasticsearch-6.5.4/config/roles.yml]
[2019-02-23T09:04:48,889][INFO ][o.e.x.m.j.p.l.CppLogMessageHandler] [YURwwIO] [controller/2392] [Main.cc@109] controller (64 bit): Version 6.5.4 (Build b616085ef32393) Copyright (c) 2018 Elasticsearch BV
[2019-02-23T09:04:51,157][DEBUG][o.e.a.ActionModule       ] [YURwwIO] Using REST wrapper from plugin org.elasticsearch.xpack.security.Security
[2019-02-23T09:04:53,758][INFO ][o.e.d.DiscoveryModule    ] [YURwwIO] using discovery type [zen] and host providers [settings]
[2019-02-23T09:05:02,526][INFO ][o.e.n.Node               ] [YURwwIO] initialized
[2019-02-23T09:05:02,540][INFO ][o.e.n.Node               ] [YURwwIO] starting ...
[2019-02-23T09:05:04,737][INFO ][o.e.t.TransportService   ] [YURwwIO] publish_address {192.168.2.33:9300}, bound_addresses {[::]:9300}
[2019-02-23T09:05:05,104][INFO ][o.e.b.BootstrapChecks    ] [YURwwIO] bound or publishing to a non-loopback address, enforcing bootstrap checks
[2019-02-23T09:05:08,110][INFO ][o.e.m.j.JvmGcMonitorService] [YURwwIO] [gc][young][4][26] duration [768ms], collections [1]/[2.1s], total [768ms]/[54.4s], memory [113.1mb]->[98.6mb]/[1015.6mb], all_pools {[young] [51.9mb]->[33.2mb]/[66.5mb]}{[survivor] [6.9mb]->[8.3mb]/[8.3mb]}{[old] [54.2mb]->[57.1mb]/[940.8mb]}
[2019-02-23T09:05:08,186][INFO ][o.e.m.j.JvmGcMonitorService] [YURwwIO] [gc][4] overhead, spent [1s] collecting in the last [2.1s]
[2019-02-23T09:05:09,380][INFO ][o.e.c.s.MasterService    ] [YURwwIO] zen-disco-elected-as-master ([0] nodes joined), reason: new_master {YURwwIO}{YURwwIOOQBqs6RrOyyqfSQ}{yY4qVOEsS6q56blUe8gWKg}{192.168.2.33}{192.168.2.33:9300}{ml.machine_memory=1021906944, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true}
[2019-02-23T09:05:09,435][INFO ][o.e.c.s.ClusterApplierService] [YURwwIO] new_master {YURwwIO}{YURwwIOOQBqs6RrOyyqfSQ}{yY4qVOEsS6q56blUe8gWKg}{192.168.2.33}{192.168.2.33:9300}{ml.machine_memory=1021906944, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true}, reason: apply cluster state (from master [master {YURwwIO}{YURwwIOOQBqs6RrOyyqfSQ}{yY4qVOEsS6q56blUe8gWKg}{192.168.2.33}{192.168.2.33:9300}{ml.machine_memory=1021906944, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true} committed version [1] source [zen-disco-elected-as-master ([0] nodes joined)]])
[2019-02-23T09:05:09,907][INFO ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [YURwwIO] publish_address {192.168.2.33:9200}, bound_addresses {[::]:9200}
[2019-02-23T09:05:09,920][INFO ][o.e.n.Node               ] [YURwwIO] started
[2019-02-23T09:05:44,075][WARN ][o.e.m.j.JvmGcMonitorService] [YURwwIO] [gc][young][17][27] duration [22.2s], collections [1]/[23s], total [22.2s]/[1.2m], memory [132mb]->[97.8mb]/[1015.6mb], all_pools {[young] [66.5mb]->[533.7kb]/[66.5mb]}{[survivor] [8.3mb]->[5.6mb]/[8.3mb]}{[old] [57.1mb]->[91.7mb]/[940.8mb]}
[2019-02-23T09:05:44,321][WARN ][o.e.m.j.JvmGcMonitorService] [YURwwIO] [gc][17] overhead, spent [22.2s] collecting in the last [23s]
[2019-02-23T09:05:56,374][WARN ][o.e.m.j.JvmGcMonitorService] [YURwwIO] [gc][19] overhead, spent [10.8s] collecting in the last [11s]
[2019-02-23T09:05:59,843][WARN ][o.e.x.s.a.s.m.NativeRoleMappingStore] [YURwwIO] Failed to clear cache for realms [[]]
[2019-02-23T09:06:01,512][INFO ][o.e.l.LicenseService     ] [YURwwIO] license [e64dcf35-113e-4c71-b3cf-a7993b3f027d] mode [basic] - valid
[2019-02-23T09:06:02,134][WARN ][o.e.c.s.ClusterApplierService] [YURwwIO] cluster state applier task [apply cluster state (from master [master {YURwwIO}{YURwwIOOQBqs6RrOyyqfSQ}{yY4qVOEsS6q56blUe8gWKg}{192.168.2.33}{192.168.2.33:9300}{ml.machine_memory=1021906944, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true} committed version [2] source [local-gateway-elected-state]])] took [47.9s] above the warn threshold of 30s
[2019-02-23T09:06:02,183][INFO ][o.e.g.GatewayService     ] [YURwwIO] recovered [2] indices into cluster_state
[2019-02-23T09:06:02,186][WARN ][o.e.c.s.MasterService    ] [YURwwIO] cluster state update task [local-gateway-elected-state] took [48.7s] above the warn threshold of 30s
[2019-02-23T09:06:08,171][INFO ][o.e.c.r.a.AllocationService] [YURwwIO] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[666][2]] ...]).

测试

重新打开一个终端,执行命令:curl localhost:9200,说明本机可以访问
换台电脑,在chrome浏览器打开: http://192.168.2.33:9200,有结果则表示外网可访问

安装分词ik

ik分词各版本下载地址,下载成功后,我的是 elasticsearch-analysis-ik-6.5.4.zip,注意版本要与elasticsearch对应上,将包上传到/url/local/elk/elasticsearch-6.5.4/plugins/ik(ik目录在自己创建),然后解决unzip elasticsearch-analysis-ik-6.5.4.zip
重启elasticsearch,如果输出日志里有[2019-02-23T15:05:04,127][INFO ][o.e.p.PluginsService ] [YURwwIO] loaded plugin [analysis-ik]表示安装ik成功

安装elasticsearch-head

这个只是测试,可以不安装
该插件能直接对 Elasticsearch 的数据进行增删改查,因此存在安全性的问题,建议生产环境下不要使用该插件!
要求本机安装了nodejs,阿里云centos环境之Gradle/Nodejs安装(十六)
elasticsearch-head的源码位置。
进入 /url/local/elk目录。
执行git命令,两者源码一样:git clone git://github.com/mobz/elasticsearch-head.git或wget https://github.com/mobz/elasticsearch-head/archive/master.zip。

cd elasticsearch-head
npm install --registry https://registry.npm.taobao.org  --unsafe-perm=true --allow-root
#前台启动方式
npm run start
#或者后台启动方式
nohup npm run start &

打开http://192.68.2.33:9100/,能成功打开页面

注意要把9100端口对外开放。
问题:system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
原因:Centos6不支持SecComp,而ES5.4.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决方法:在elasticsearch.yml中新增配置bootstrap.system_call_filter,设为false,注意要在Memory下面:
bootstrap.memory_lock: false

效果如下

LogStash6.5.4安装

学习资料

Logstash 最佳实践

准备

从我的网盘下载elastcsearch6.5.4,提取码:naqy

  1. 创建目录elk:mkdir /url/local/elk
  2. 将logstash-6.5.0.tar.gz传到elk目录下
  3. 解压:tar -zxvf logstash-6.5.0.tar.gz

配置

编辑 /usr/local/logstash/config/logstash.yml配置文件修改如下内容:

node.name: cpy04.dev.xjh.com    #设置节点名称,一般写主机名
path.data: /usr/local/logstash/plugin-data    #创建logstash 和插件使用的持久化目录
config.reload.automatic: true    #开启配置文件自动加载
config.reload.interval: 10    #定义配置文件重载时间周期
http.host: "cpy04.dev.xjh.com"    #定义访问主机名,一般为域名或IP

启动

进入mkdir /url/local/elk/logstash-6.5.0/bin目录下,执行logstash脚本,当然logstash需要其它参数的配置,这在下面讲。如果想后台运行,你需要同时在命令前面加 nohup,后面加 &。

命令行参数

Logstash 命令行参数,比较重要的是-e和-f。
-e是后面跟配置,比如:./logstash -e ‘input { stdin { } } output { stdout {} }’
-e是后面跟配置文件,比如将input { stdin { } } output { stdout {} }放在test.conf配置文件里,命令行就变成./logstash -f test.conf

注意

input输入是文件的话,输入插件默认使用 “\n” 判断日志中每行的边界位置

启动命令:nohup bin/./logstash -f myconf/nxlog_logstash.conf --config.reload.automatic &
停止命令:netstat -nlp | grep :9600|awk ‘{print $7}’ | awk -F"/" ‘{ print $1 }’|xargs kill -9

Kibana6.5.4安装

学习资料

kibana中文教程

安装

从我的网盘下载elastcsearch6.5.4,提取码:naqy

  1. 将kibana-6.5.4-linux-x86_64.tar.gz传到elk目录下
  2. 解压:tar -zxvf kibana-6.5.4-linux-x86_64.tar.gz
  3. 创建一个logs目录

编辑conf/kibana.yml配置文件

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
kibana.index: ".newkibana"
logging.dest: /usr/local/elk/kibana-6.5.4-linux-x86_64/logs/kibana.log #配置kibana的日志文件路径,不然默认是messages里记录日志
xpack.security.enabled: false   #添加这条,这条是配置kibana的安全机制,暂时关闭。

默认是kibana.index: ".kibana"会报Kibana server is not ready yet错误,这里配置为.newkibana

启动

前台启动:bin/./kibana
后台启动:nohup /bin/./kibana &

启动成功后,占用5601端口。
访问http://192.168.2.33:5601试试,注意5601端口要对外开放.由于我们并没有安装x-pack,所以此时是没有用户名和密码的,可以直接访问的:
由于kibana是使用node.js开发的,所以进程名称为node,可以使用ps aux|grep node与netstat -antlp|grep 5601<//kbd>做对比验证进程是否是node,效果

windows安装

windows安装可参考ELK学习记录三 :elasticsearch、logstash及kibana的安装与配置(windows),其中除了logStash需要安装到windows上外,其它没必需,因为logStash负责收集日志的,与客户端亲密性更高。
因为 windows 平台上没有 inode 的概念,Logstash 某些版本在 windows 平台上监听文件不是很靠谱。windows 平台上,推荐考虑使用 nxlog 作为收集端

nxlog在windows安装

官网下载地址,下载nxlog-ce-2.10.2150.msi,点击安装。
64位默认安装路径:C:\Program Files (x86)\nxlog,
32位默认安装路径:C:\Program Files\nxlog,32
日志文件默认路径:C:\Program Files (x86)\nxlog\data\nxlog.log。
修改conf下nxlog.conf配置文件

<Input testfile>Module im_fileFile "D:\\jar\\dongli\\logs\\spring-boot.log"SavePos TRUE
</Input>
<Output out>Module om_tcpHost 192.168.1.238Port 514
</Output>
<Route 1>Path testfile => out
</Route>

上面配置是读取D:\jar\dongli\logs\spring-boot.log,通过tcp协议发送到192.168.1.238:514地址上,而192.168.1.238:514我是用logstash监听514端口的。
所以,上面配置意思是读取配置文件发送给logstash。

ELK-日志收集系统在Centos上环境安装相关推荐

  1. ELK日志收集系统(一)

    ELK日志收集系统(一) 一:软件包下载地址 二:环境准备 三:kibana安装与配置 四:安装nginx 五:filebeat安装配置 5.1 配置filebeat收集nginx日志 5.2 kib ...

  2. 深入浅出ELK日志收集系统搭建

    先看一下目录图 背景 试想这么一种场景:Nginx负载了2个Tomcat,那么日志查看就很麻烦了,每次查看日志都要登录2台服务器,挨个搜索,2台还好,如果5台呢?10台呢?那查看日志就可费劲了,所以需 ...

  3. ELK 日志收集系统方案

    文章目录 背景 ELK使用组件简介 方案1 ELK 方案二 EFK 方案三: FELK 方案四:个性化框架 总结: 日志展示及查询 环境 背景 在项目初期的时候,大家都是赶着上线,一般来说对日志没有过 ...

  4. 你居然还去服务器上捞日志,搭个日志收集系统难道不香么!

    摘要 ELK日志收集系统进阶使用,本文主要讲解如何打造一个线上环境真实可用的日志收集系统.有了它,你就可以和去服务器上捞日志说再见了! ELK环境安装 ELK是指Elasticsearch.Kiban ...

  5. java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香吗?...

    作者:MacroZheng 链接:https://juejin.im/post/5eef217d51882565d74fb4eb 来源:掘金 SpringBoot实战电商项目mall(35k+star ...

  6. java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香么!...

    作者:MacroZheng 链接:https://juejin.im/post/5eef217d51882565d74fb4eb 摘要 ELK日志收集系统进阶使用,本文主要讲解如何打造一个线上环境真实 ...

  7. Go语言学习之11 日志收集系统kafka库实战

    本节主要内容: 1. 日志收集系统设计 2. 日志客户端开发 1. 项目背景     a. 每个系统都有日志,当系统出现问题时,需要通过日志解决问题     b. 当系统机器比较少时,登陆到服务器上查 ...

  8. ELK 日志分析系统和部署

    目录 前言 一.日志分析 1.1  我们需要收集哪些日志 1.2  日志收集后,如何展示(可视化) 1.3   日志收集展示出来后,怎么使用 1.4  我们要怎么收集日志 二.ELK 日志分析系统简介 ...

  9. ELK日志分析系统(企业级查看日志系统)

    一. ELK日志分析系统简介 ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch.Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询.排序 ...

最新文章

  1. 5月以来的学习,软件工程+设计模式+J2EE开发+portal开发,以及SOA技术
  2. javaweb学习总结(十五)——JSP基础语法
  3. Unity3D学习(五):实现一个简单的视觉感知
  4. 9型转x型 cobol_兰州一餐馆推鸳鸯牛肉面 9种面型一面多吃
  5. 基本的排序算法php,php四种基础排序算法
  6. 一文解析Apache Avro数据
  7. django 1.8 官方文档翻译: 3-3-4 管理文件
  8. Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
  9. JavaWeb EL表达式, JSTL标签及过滤器综合学习
  10. mysql 右模糊_面试小知识:MySQL索引相关
  11. 过拟合产生的原因有哪些
  12. VS2017配置opencv-c++
  13. #36328;#36234;#23457;#26680;#26426;#21046;#30340;gladder#25554;#20214;
  14. 计算器算贝塞尔公式_我不是灯光设计师,但是我会算空间的平均照度
  15. 翻译软件Bob安装教程
  16. Java图片识别技术原理-只取图片像素。。。
  17. 三代测序数据分析实战
  18. 计算机自检后反复重启 主引导,电脑重装系统时,按错了意外重启然后就一直这样怎么办啊!...
  19. 如何使用 哑节点(dummy node),高效解决问题
  20. 具有引导性的移动应用界面设计模式

热门文章

  1. linux 驱动命令 mknod,linux中的mknod命令的详细解释
  2. Nginx服务器常用的几个操作命令
  3. C语言面试干货——指定结构体初始化器(GCC手册解析)
  4. airflow+mysql搭建步骤2022年2月最新版
  5. 重温经典《闻香识女人》
  6. 深度学习-各种Relu激活函数
  7. 婚恋系统交友系统婚恋交友平台搭建红娘加盟积分充值兑换个人资料置顶同城交友系统
  8. java defunct怎么杀掉_杀死Linux中的defunct进程(僵尸进程)的方法指南
  9. mariadb galera 集群部署
  10. 揭秘热捧质押式回购图谋