ELK日志(1)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ELK日志(1)

Elasticsearch

开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。

RESTFUL特点包括:

1、每一个URI代表1种资源;

2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;

3、通过操作资源的表现形式来操作资源;

4、资源的表现形式是XML或者HTML;

5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

官方网站: https://www.elastic.co中文社区: https://elasticsearch.cn官方参考文档: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/setup-configuration-memory.html下载地址: https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.6.0/elasticsearch-6.6.0.rpm 存储nosql非关系型数据库filebeat-6.6.0-x86_64.rpm 从nginx服务日志中读取数据并发送给rediskibana-6.6.0-x86_64.rpm 以图形化方式展示logstash-6.6.0.rpm 负责将redis缓存中的数据收集并提交给elasticsearchredis负责缓存数据库

前提条件

拓扑图如下:

前提环境:jdk-1.8.0

硬件要求:

主机

IP

内存

网络

node-1

192.168.8.1

4G

NAT

node-2

192.168.8.2

2/4G

NAT

node-3

192.168.8.3

2/4G

NAT

部署elasticsearch

  1. 安装elasticsearch:
[root@node-1 ~]# rpm -ivh /media/elk-6.6/elasticsearch-6.6.0.rpm
  1. elasticsearch目录和文件
/etc/elasticsearch/elasticsearch.yml #配置文件/etc/elasticsearch/jvm.options #java虚拟机/etc/init.d/elasticsearch #服务启动脚本/etc/sysconfig/elasticsearch #elasticsearch服务变量/usr/lib/sysctl.d/elasticsearch.conf #设置elasticsearch用户使用的内存大小/usr/lib/systemd/system/elasticsearch.service #添加系统服务文件/var/log/elasticsearch/elasticsearch.log #日志文件路径
  1. 修改配置文件:
1. [root@node-1 ~]# vim /etc/elasticsearch/elasticsearch.yml
2. node.name: node-1                            #群集中本机节点名
3. path.data: /data/elasticsearch               #数据目录
4. path.logs: /var/log/elasticsearch            #日志目录
5. bootstrap.memory_lock: true                  #锁定内存,需要和/etc/elasticsearch/jvm.options关联
6. network.host: 192.168.8.1,127.0.0.1          #监听的ip地址
7. http.port: 9200                              #端口号
  1. 创建数据目录,并修改权限
1. [root@node-1 ~]# mkdir -p /data/elasticsearch 
2. [root@node-1 ~]# chown -R elasticsearch.elasticsearch /data/elasticsearch/
  1. 分配锁定内存:

实验环境一般默认就是1g,所以就不需要更改。

1. [root@node-1 ~]# vim /etc/elasticsearch/jvm.options
2. -Xms1g        #分配最小内存
3. -Xmx1g        #分配最大内存,官方推荐为物理内存的一半,但最大为32G
  1. 修改锁定内存后,无法重启,解决方法如下
1. [root@node-1 ~]# systemctl edit elasticsearch
2. [Service]
3. LimitMEMLOCK=infinity
4.     按键F2保存退出
5. [root@node-1 ~]# systemctl daemon-reload
6. [root@node-1 ~]# systemctl restart elasticsearch
7.     启动后稍等一会,需要启动时间,查看端口打开就完成了。
8. [root@node-1 ~]# netstat -anpt | grep 9200
9. tcp6       0      0 192.168.8.1:9200        :::*                    LISTEN      105678/java         
10. tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN      105678/java
  1. 查看主机
  • 查看单主机

http://192.168.8.1:9200/

  • 查看群集健康状态

http://192.168.8.1:9200/_cluster/health?pretty

查看整个群集状态信息

http://192.168.8.1:9200/_cluster/state?pretty

  1. 下载es-head插件
  • 插件下载地址

https://github.com/mobz/elasticsearch-head

  • 下载后,解压,复制crx目录下es-head.crx到桌面改名es-head.crx为es-head.crx.zip。
  • 解压es-head.crx.zip到es-head.crx目录,把目录es-head.crx,上传到谷歌浏览器更多工具→扩展程序。

  • 勾选开发者模式→加载已解压的扩展程序→选择刚解压的文件即可。

  • 打开后修改左上角的IP为本机IP,连接成功即可图形化的显示集群状态,后面配置好集群后就可以查看整个集群的图形化状态。

  1. 创建索引:vipinfo,类型:users,序号:1,数据部分:...
[root@node-1 ~]# curl -XPUT '192.168.8.1:9200/vipinfo/users/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"name": "guofucheng","age": "45","job": "mingxing"}'

选项说明:

XPUT 创建

XDELETE 删除

扩展内容

curl命令是个功能强大的网络工具,可用来模拟客户端请求,抓取网页、网络监控等。

curl常见用法

get请求:curl urlpost请求:curl -d ‘xxx’ -X POST $urlproxy使用:curl -x ‘ http://127.0.0.1:8080’ $url :指定 HTTP 请求通过 http://127.0.0.1:8080

具体参数

-H: “Content-type: application/json” 添加 HTTP 请求头 curl -H 'Content-type: application/json' $url-G: 把data数据当成get请求的参数发送,用来构造 URL 的查询字符串,与–data-urlencode结合使用-X:指定 HTTP 请求的方法 curl -X POST $url-d: 发送post请求数据,@file表示来自于文件--data-urlencode:发送post请求数据,会对内容进行url编码-u: username:password用户认证-o: 写文件,将服务器的响应保存成文件-v: verbose,打印更详细日志-s, --silent: 关闭一些提示输出,不输出错误和进度信息。-S:只输出错误信息-k:使用SSL时允许不安全的服务器连接-L:跟随跳转链接

XML与YAML

YAML 是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用。

YAML的语法比较简洁直观,特点是使用空格来表达层次结构,其最大优势在于数据结构方面的表达,所以 YAML 更多应用于编写配置文件,其文件一般以 .yml 为后缀。

一、 json与xml的相同点

1. json与xml是一种远程数据传输交换格式。

2. json是轻量级的,xml标记电子文件具有结构性的语言。

二、json与xml的不同点

1.xml缺点:xml是远程数据传输,交换格式数据庞大,比较占宽带,解析异常复杂,不易于维护,同时在不同服务器中的解析格式不同,造成大量数据重复。

2. json优点:因为文件格式压缩,格式简单,占宽带小,易于维护

实例比较

XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。

  1. XML

用XML表示中国部分省市数据如下:

1. <?xml version="1.0" encoding="utf-8"?>
2. <country>
3.     <name>中国</name>
4.     <province>
5.         <name>黑龙江</name>
6.         <cities>
7.             <city>哈尔滨</city>
8.             <city>大庆</city>
9.         </cities>
10.     </province>
11.     <province>
12.         <name>广东</name>
13.         <cities>
14.             <city>广州</city>
15.             <city>深圳</city>
16.             <city>珠海</city>
17.         </cities>
18.     </province>
19.     <province>
20.         <name>台湾</name>
21.         <cities>
22.             <city>台北</city>
23.             <city>高雄</city>
24.         </cities>
25.     </province>
26.     <province>
27.         <name>新疆</name>
28.         <cities>
29.             <city>乌鲁木齐</city>
30.         </cities>
31.     </province>
32. </country>
  1. JSON
1. {
2. "name": "中国",
3. "province": [{
4. "name": "黑龙江",
5. "cities": {
6. "city": ["哈尔滨", "大庆"]
7.         }
8.     }, {
9. "name": "广东",
10. "cities": {
11. "city": ["广州", "深圳", "珠海"]
12.         }
13.     }, {
14. "name": "台湾",
15. "cities": {
16. "city": ["台北", "高雄"]
17.         }
18.     }, {
19. "name": "新疆",
20. "cities": {
21. "city": ["乌鲁木齐"]
22.         }
23.     }]
24. }


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
6天前
|
存储 监控 安全
|
3月前
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志
|
3月前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
3月前
|
存储 数据可视化 Linux
在Linux中,如何使用ELK进行日志管理和分析?
在Linux中,如何使用ELK进行日志管理和分析?
|
3月前
|
数据可视化 Java API
如何在项目中快速引入Logback日志并搭配ELK使用
如何在项目中快速引入Logback日志并搭配ELK使用
|
3月前
|
存储 监控 Ubuntu
一键搞定:用脚本轻松部署ELK,让日志分析变得简单又高效
【8月更文挑战第13天】ELK栈由Elasticsearch、Logstash和Kibana组成,用于日志存储、解析及展示,是大数据领域广泛采用的日志解决方案。鉴于其安装配置复杂,本文提供了一个适用于Ubuntu 16.04的ELK自动安装Shell脚本示例。脚本首先确保Java环境安装,接着添加Elastic.co的APT仓库并安装ELK组件,最后启动所有服务。通过自动化流程,简化部署工作,减少人为错误,提升效率。实际应用中还需根据具体需求调整配置和服务设置。
54 0
|
2天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
66 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
29天前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
176 3
|
29天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1607 14