源码部署ELK日志分析管理系统

这篇具有很好参考价值的文章主要介绍了源码部署ELK日志分析管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

通常,日志被分散在储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。

集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

通过我们需要对日志进行集中化管理,将所有机器上的日志信息收集、汇总到一起。完整的日志数据具有非常重要的作用:
1)信息查找。通过检索日志信息,定位相应的bug,找出解决方案。
2)服务诊断。通过对日志信息进行统计、分析,了解服务器的负荷和服务运行状态,找出耗时请求进行优化等等。
3)数据分析。如果是格式化的log,可以做进一步的数据分析,统计、聚合出有意义的信息,比如根据请求中的商品id,找出TOP10用户感兴趣商品。

开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成:
1)ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
在elasticsearch中,所有节点的数据是均等的。
2)Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
3)Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

为什么要用到ELK?

一般我们需要进行日志分析场景是:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。

一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

一个完整的集中式日志系统,需要包含以下几个主要特点:

1)收集-能够采集多种来源的日志数据
2)传输-能够稳定的把日志数据传输到中央系统
3)存储-如何存储日志数据
4)分析-可以支持 UI 分析
5)警告-能够提供错误报告,监控机制

ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。

日志处理步骤:

1).将日志进行集中化管理
2).将日志格式化(logstash)并存储到Elasticsearch软件中
3).对日志进行索引(Elasticsearch)
4).对前端数据进行展示(Kibana)

ELK部署

基本环境:
服务器1:node1/192.168.1.2 4G内存 安装E,K
服务器2:node2/192.168.1.3 4G内存 安装E,L,A
服务器3:Apache/192.168.1.1 2G内存 安装L

服务器1,2配置

1)设置主机名

# 服务器1改名
hostname node1
bash

# 服务器2
hostname node2
bash

2)配置域名解析(服务器1,2都配置)

vim /etc/hosts
# 添加:
192.168.1.2 node1
192.168.1.3 node2

3).监控java环境,是否为1.8版,如不满足,更新Java环境。

java -version

服务器1,2都需要安装elasticsearch软件

配置完全相同
1).安装

rpm -ivh elasticsearch-5.5.0.rpm 
systemctl daemon-reload
systemctl enable elasticsearch.service 

2).编辑elasticsearch配置文件

vim /etc/elasticsearch/elasticsearch.yml 
修改:
cluster.name: my-elk-cluster 		17//群集时使用
node.name: node1               		23//服务器2改为node2
path.data: /data/elk_data 			33行
path.logs: /var/log/elasticsearch/ 	37行
bootstrap.memory_lock: false 		43行
network.host: 0.0.0.0 				55行
http.port: 9200 					59行
discovery.zen.ping.unicast.hosts: ["node1", "node2"]  68//群集节点配置

3).创建数据存放路径并授权

mkdir -p /data/elk_data
chown -R elasticsearch:elasticsearch /data/elk_data

4).启动elasticsearch并查看是否成功启动

systemctl start elasticsearch.service 
netstat -anpt |grep 9200				//有延迟,等一会儿

5).分别在服务器1和2上查看节点信息

firefox http://192.168.1.2:9200 &
firefox http://192.168.1.3:9200 &

6).查看集群状态

# 服务器1查看群集的健康情况
firefox http://192.168.6.20:9200/_cluster/health?pretty &	
//status显示green表示节点健康运行

# 服务器2查看群集的健康情况
firefox http://192.168.6.50:9200/_cluster/health?pretty &	
//status显示green表示节点健康运行
(两台node浏览器显示)

安装elasticsearch-head插件

只服务器1安装即可
1).编译安装node-v8组件,安装时间比较长,40分钟左右

tar -zxvf node-v8.2.1.tar.gz -C /usr/src
cd /usr/src/node-v8.2.1
./configure && make && make install

2).安装phantomjs组件

tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/src
cd /usr/src/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin/

3).安装Elasticsearch-head组件

tar -zvxf elasticsearch-head.tar.gz -C /usr/src
cd /usr/src/elasticsearch-head/
npm install							//安装依赖包

4).修改Elasticsearch主配置文件

vim /etc/elasticsearch/elasticsearch.yml
// 在最后添加:
http.cors.enabled: true						//开启跨域访问支持,默认为false
http.cors.allow-origin: "*"					//跨域访问允许的域名地址

5).重启服务

systemctl restart elasticsearch.service
cd /usr/src/elasticsearch-head/
npm run start &
netstat -lnupt |grep 9100
netstat -lnupt |grep 9200

6).测试(node2访问也是一样的)

firefox http://192.168.6.20:9100 &

node2在访问时,需要输入node1的ip地址进行连接,此时浏览器显示的信息为上下显示node-1和node-2
源码部署ELK日志分析管理系统

(如果node2连接不上改一下访问地址,把http://localhost:9200改成http://node1:9200)

输入:

curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'Content-Type:application/json' -d '{"user":"zhang3","mesg":"hello world"}'

在浏览器中查看浏览数据,第二列多出index-demo

7、安装logstash组件(第三台)
先关闭防火墙和沙盒

systemctl stop firewalld
setenforce 0
rpm -ivh logstash-5.5.1.rpm
systemctl restart logstash.service 
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

logstash -e 'input { stdin{} } output { stdout{} }'

在加载完后输入(出现端口9600即可)

源码部署ELK日志分析管理系统

www.baidu.com
www.sina.com.cn

然后打断即可(ctrl+c)

logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug} }'

同上在加载完后输入(出现端口9600即可)
源码部署ELK日志分析管理系统

www.baidu.com

输入完会出现以下几条内容

{
    "@timestamp" => 2019-10-15T11:00:59.443Z,
      "@version" => "1",
          "host" => "node1",
       "message" => "www.baidu.com"
}
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.1.2:9200"]} }'

同上在加载完后输入(出现端口9600即可)
源码部署ELK日志分析管理系统

www.baidu.com
www.sina.com.cn
www.google.com

chmod o+r /var/log/messages
touch /etc/logstash/conf.d/system.conf

vim /etc/logstash/conf.d/system.conf
添加:

input {
        file{
                path => "/var/log/messages"
                type => "system"
                start_position => "beginning"
                }

        }
output {
        elasticsearch {
                hosts => ["192.168.1.2:9200"]
                index => "system-%{+YYYY.MM.dd}"
                        }
        }


systemctl restart logstash

8、安装kibana组件(在node1上)

rpm -ivh kibana-5.5.1-x86_64.rpm 
systemctl enable kibana.service
systemctl start kibana.service

vim /etc/kibana/kibana.yml 
// 修改:
server.port: 5601								2行
server.host: "0.0.0.0"							7行
elasticsearch.url: "http://192.168.1.2:9200"    21行
kibana.index: ".kibana"							30行

systemctl restart kibana

测试:
firefox http://192.168.1.2:5601
进入浏览器创建索引,名字为system-*,创建完毕可以看到图标和名字下方的字段。将鼠标悬停在字段上,可以显示add。
源码部署ELK日志分析管理系统
源码部署ELK日志分析管理系统

9、服务器node2(Apache)
1).安装httpd

yum -y install httpd
# 编辑一个网页:
echo 1111111111111111 > /var/www/html/index.html

2).安装logstash组件

systemctl stop firewalld
setenforce 0

rpm -ivh logstash-5.5.1.rpm 
systemctl daemon-reload
systemctl enable logstash.service

3).编写配置文件apache_log.conf

cd /etc/logstash/conf.d

vim apache_log.conf
添加:
input {
        file{
                path => "/var/log/httpd/access_log"
                type => "access"
                start_position => "beginning"
                }
        file{
                path => "/var/log/httpd/error_log"
                type => "error"
                start_position => "beginning"
                }
        }

output {
	if [type] == "access" {
        elasticsearch {
                hosts => ["192.168.1.2:9200"]
                index => "apache_access-%{+YYYY.MM.dd}"
                        }
        }
	if [type] == "error" {
        elasticsearch {
                hosts => ["192.168.1.2:9200"]
                index => "apache_error-%{+YYYY.MM.dd}"
                        }
        }

}

systemctl restart logstash

4).刷新日志脚本

/usr/share/logstash/bin/logstash -f apache_log.conf

在加载完后输入(出现端口9600即可)
源码部署ELK日志分析管理系统

www.cuixiaofang.com

如果不行出不来access error 重启各种服务 主要是执行4)的步骤!!!!

firefox http://192.168.1.2:9100

浏览器可以出现apache_access和apache_error两个

firefox http://192.168.1.2:5601

可以创建apache_access和apache_error两个索引

成功!!!文章来源地址https://www.toymoban.com/news/detail-484204.html

到了这里,关于源码部署ELK日志分析管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ELK企业级日志分析系统】安装与部署ELK详解

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash和kibana三个开源工具配合使用 , 完成更强大的,用户对日志的查询、排序、统计需求。 ElasticSearch ElasticSearch:是基于Lucene(一个 全文检索引擎的架构 )开发的分布式存储检索引擎,用来存储各类日志。 El

    2024年02月16日
    浏览(42)
  • 【ELK企业级日志分析系统】部署Filebeat+ELK详解

    接上文安装与部署ELK详解 (1)在Filebeat节点上,安装Apache服务 (2)修改Apache服务的配置文件 (3)开启Apache服务 (4)浏览器访问,验证Apache服务 (1) 安装Filebeat (2)设置filebeat的主配置文件 (3)启动filebeat (4)在Logstash组件所在节点上,新建一个Logstash配置文件(CentOS 7-3) (

    2024年02月16日
    浏览(44)
  • ELK日志分析系统的详细介绍与部署

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的 用户对日志的查询、排序、统计需求 。 集中化管理日志后,日志的统计和检索的效率降低。 ELK 提供了一个 完整的日志管理和分析解决方案 ,能够帮助用户

    2024年02月07日
    浏览(35)
  • 部署ELK+Kafka+Filebeat日志收集分析系统

    ELK是三个软件的统称,即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件都是开源软件,通常配合使用,并且都先后归于Elastic.co企业名下,故被简称为ELK协议栈。ELK主要用于部署在企业架构中,收集多台设备上多个服务的日志信息,并将其统一整合后提供给用户。

    2024年02月16日
    浏览(40)
  • ELK 企业级日志分析系统的概念、ELK Elasticsearch 集群部署

    1、ELK 简介 ELK平台是一套完整的日志集中处理解决方案,将 ==ElasticSearch、Logstash 和 Kiabana ==三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch 是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。 E

    2024年02月16日
    浏览(51)
  • 【ELK企业级日志分析系统】部署Filebeat+Kafka+Logstash+Elasticsearch+Kibana集群详解(EFLFK)

    参见安装与部署ELK详解 参见安装与部署EFLK详解 参见安装与部署Zookeeper集群详解 1.1.1 为什么需要消息队列(MQ) MQ(Message Queue)主要原因是由于 在高并发环境下,同步请求来不及处理,请求往往会发生阻塞 。比如大量的并发请求,访问数据库,导致行锁表锁,最后请求线程会

    2024年02月16日
    浏览(49)
  • 【ELK 使用指南 1】ELK + Filebeat 分布式日志管理平台部署

    在运维中, 日志是非常重要的工具 ,用于记录系统、应用程序或设备的运行状态、事件和异常情况。 1)故障排除和问题诊断 日志是排查故障和诊断问题的关键信息源。 通过分析日志文件,可以查找和定位系统故障、错误和异常,帮助运维人员迅速找出问题的根本原因,并

    2024年02月07日
    浏览(53)
  • SpringBoot小项目——简单的小区物业后台管理系统 & 认证鉴权 用户-角色模型 & AOP切面日志 & 全局异常【源码】

    基于SpringBoot的简单的小区物业后台管理系统,主要功能有报修的处理,楼宇信息和房屋信息的管理,业主信息的管理【核心】,以及数据统计分析模块Echarts绘图;此外采用用户-角色权限模型,结合自定义注解实现简单的权限管理功能,采用aop切面实现日志的存储,全局异常

    2024年02月06日
    浏览(51)
  • 抖音短视频矩阵管理系统源码开发部署(开源定制)

      短视频矩阵管理系统是专门为企业号商家、普通号商家提供帐号运营从流量 到转化成交的一站式服务方案,具体包含:点赞关注评论主动私信 ,评论区回复,自动潜客户挖掘,矩阵号营销,自动化营销,粉丝 管理等功能,可以帮助企业或商家快速批量制作高质量短视频,

    2024年02月13日
    浏览(41)
  • [ELK] ELK企业级日志分析系统

    1.1 ELK 简介与组件 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日

    2024年01月21日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包