supervisor的常用操作命令有哪些?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 2867 次浏览 • 2020-03-16 17:10 • 来自相关话题

数据收集引擎:Logstash

zkbhj 发表了文章 • 0 个评论 • 1950 次浏览 • 2019-12-11 21:17 • 来自相关话题

Logstash介绍

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。





 
集中、转换和存储你的数据
 Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。(当然,我们最喜欢的是Elasticsearch)

输入:采集各种样式、大小和来源的数据

数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。





 
过滤器:实时解析和转换数据

数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。

Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响: 
利用 Grok 从非结构化数据中派生出结构从 IP 地址破译出地理坐标将 PII 数据匿名化,完全排除敏感字段整体处理不受数据源、格式或架构的影响





 
输出:选择你的存储,导出你的数据

尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。

Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。





安装Logstash





 
首先,让我们通过最基本的Logstash管道来测试一下刚才安装的Logstash

Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器。输入插件从数据源那里消费数据,过滤器插件根据你的期望修改数据,输出插件将数据写入目的地。





 
接下来,允许Logstash最基本的管道,例如:
bin/logstash -e 'input { stdin {} } output { stdout {} }'(画外音:选项 -e 的意思是允许你从命令行指定配置)

启动以后,下面我们在命令行下输入"hello world"






用Logstash解析日志

 在上一小节中,你已经创建了一个基本的Logstash管道来测试你的Logstash设置。在现实世界中,一个Logstash管理会稍微复杂一些:它通常有一个或多个input, filter 和 output 插件。

在这一小节中,你将创建一个Logstash管道,并且使用Filebeat将Apache Web日志作为input,解析这些日志,然后将解析的数据写到一个Elasticsearch集群中。你将在配置文件中定义管道,而不是在命令行中定义管道配置。

在开始之前,请先下载示例数据。

配置Filebeat来发送日志行到Logstash

在你创建Logstash管道之前,你需要先配置Filebeat来发送日志行到Logstash。Filebeat客户端是一个轻量级的、资源友好的工具,它从服务器上的文件中收集日志,并将这些日志转发到你的Logstash实例以进行处理。Filebeat设计就是为了可靠性和低延迟。Filebeat在主机上占用的资源很少,而且Beats input插件将对Logstash实例的资源需求降到最低。

(画外音:注意,在一个典型的用例中,Filebeat和Logstash实例是分开的,它们分别运行在不同的机器上。在本教程中,Logstash和Filebeat在同一台机器上运行。)

关于Filebeat请参考《开始使用Filebeat》
 
更多:https://www.cnblogs.com/cjsblog/p/9459781.html 查看全部
Logstash介绍

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。

874963-20180811151005760-1802603955.png

 
集中、转换和存储你的数据
 Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。(当然,我们最喜欢的是Elasticsearch)

输入:采集各种样式、大小和来源的数据

数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

874963-20180811145656085-1071322041.png

 
过滤器:实时解析和转换数据

数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。

Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响: 
  • 利用 Grok 从非结构化数据中派生出结构
  • 从 IP 地址破译出地理坐标
  • 将 PII 数据匿名化,完全排除敏感字段
  • 整体处理不受数据源、格式或架构的影响


874963-20180811145809984-850775448.png

 
输出:选择你的存储,导出你的数据

尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。

Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。
874963-20180811150315582-1149748851.png


安装Logstash

QQ截图20191211211319.jpg

 
首先,让我们通过最基本的Logstash管道来测试一下刚才安装的Logstash

Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器。输入插件从数据源那里消费数据,过滤器插件根据你的期望修改数据,输出插件将数据写入目的地。

874963-20180811152809345-286170144.png

 
接下来,允许Logstash最基本的管道,例如:
bin/logstash -e 'input { stdin {} } output { stdout {} }'
(画外音:选项 -e 的意思是允许你从命令行指定配置)

启动以后,下面我们在命令行下输入"hello world"

874963-20180811153425324-1597854249.png


用Logstash解析日志

 在上一小节中,你已经创建了一个基本的Logstash管道来测试你的Logstash设置。在现实世界中,一个Logstash管理会稍微复杂一些:它通常有一个或多个input, filter 和 output 插件。

在这一小节中,你将创建一个Logstash管道,并且使用Filebeat将Apache Web日志作为input,解析这些日志,然后将解析的数据写到一个Elasticsearch集群中。你将在配置文件中定义管道,而不是在命令行中定义管道配置。

在开始之前,请先下载示例数据。

配置Filebeat来发送日志行到Logstash

在你创建Logstash管道之前,你需要先配置Filebeat来发送日志行到Logstash。Filebeat客户端是一个轻量级的、资源友好的工具,它从服务器上的文件中收集日志,并将这些日志转发到你的Logstash实例以进行处理。Filebeat设计就是为了可靠性和低延迟。Filebeat在主机上占用的资源很少,而且Beats input插件将对Logstash实例的资源需求降到最低。

(画外音:注意,在一个典型的用例中,Filebeat和Logstash实例是分开的,它们分别运行在不同的机器上。在本教程中,Logstash和Filebeat在同一台机器上运行。)

关于Filebeat请参考《开始使用Filebeat》
 
更多:https://www.cnblogs.com/cjsblog/p/9459781.html

PHP如何高效并且快速方便的读取html中的指定内容便于抓取数据?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4800 次浏览 • 2019-11-03 10:25 • 来自相关话题

PHPStorm上传文件时提示invalid descendent file name "\",怎么解决?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 5126 次浏览 • 2019-06-05 17:53 • 来自相关话题

Linux上如何查找文件里含有特定字符串?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4775 次浏览 • 2019-02-27 16:11 • 来自相关话题

如何查找yum方式安装的软件安装到哪个目录了?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4724 次浏览 • 2019-01-23 11:50 • 来自相关话题

给小米手机线刷新系统时,出现‘err:'MySQL' 不是内部或外部命令’问题怎么解决?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4862 次浏览 • 2018-12-13 16:22 • 来自相关话题

新一代开源配置中心:Apollo

zkbhj 发表了文章 • 0 个评论 • 2953 次浏览 • 2018-05-17 17:59 • 来自相关话题

 Apollo(Github主页)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有额外支持。

.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。
 
更多参阅:https://yq.aliyun.com/articles/74601 查看全部

overall-architecture.png

 Apollo(Github主页)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有额外支持。

.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。
 
更多参阅:https://yq.aliyun.com/articles/74601

如何在linux上用grep命令进行数量统计?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 5938 次浏览 • 2018-02-23 15:36 • 来自相关话题

理解Redis的几种数据结构

zkbhj 发表了文章 • 0 个评论 • 2765 次浏览 • 2018-01-29 14:31 • 来自相关话题

一、Redis数据库的优势

Redis是一个先进的Key-Value键值存储数据库,通常作为数据结构服务器。 

支持strings, hashes, lists, sets, sorted sets, bitmaps 和hyperloglogs

二、Redis数据结构

1、string - 字符串
Redis的字符串为SDS(Simple Dynamic String)可以存储任何东西,最大长度可达515兆。
#redis-cli.exe
127.0.0.1:6379> set name 'cbb'
OK
127.0.0.1:6379> get name
"cbb"SDS的数据结构如下:
struct sdshdr {
// 记录 buf 数组中已使用字节的数量
// 等于 SDS 所保存字符串的长度
int len;
// 记录 buf 数组中未使用字节的数量
int free;
// 字节数组,用于保存字符串
char buf[];
};常用命令:set, get
 
2,Hash - 哈希值

Redis的哈希值是字符串字段和字符串值之间的映射,所有它们被用来表示对象。
#redis-cli.exe
127.0.0.1:6379> HMSET user:1 username ccc password 123 age 20
OK
127.0.0.1:6379> HGETALL user:1 //取所有key
1> "username"
2> "ccc"
3> "passwrod"
4> "123"
5> "age"
6> "20"

127.0.0.1:6379> hget user:1 username //取一个key
"ccc"上面的Hash数据类型,用于存储用户的基本信息,user:1是键。

hash解决了用户信息对象的存储:如用户ID为key,value为姓名name,年龄age,生日birthday等。 
用普通的key/value结构存储: a,set u001 “张三, 18, 20010101”
这种方式的缺点是增加了序列化/反序列化的开销,并且在需要修改其中一项信息时,需要把整个对象取回,并且修改操作需要对并发进行保护,引入CAS等复杂问题。b,mset user:001:name “李三” user:001:age 18 user:001:birthday “20010101” 这种方法是用户信息对象有多少个成员就存成多少个key-value对儿,虽然省去了序列化开销和并发问题,但是用户ID为重复存储,如果存在大量这样的数据,内存浪费严重。

常用命令:hmset, hset, hget, hgetall 
3,List - 列表

列表是简单的字符串列表,排序插入顺序。可以添加元素到Redis列表的头部或尾部。#redis-cli.exe
127.0.0.1:6379> lpush tutor redis
<integer> 1
127.0.0.1:6379> lpush tutor mongodb
<integer> 2
127.0.0.1:6379> lpush tutor rabitmq
<integer> 3
127.0.0.1:6379> lrange tutor 0 10
1> "rabitmq"
2> "mongodb"
3> "redis"节点的定义:
typedef struct listNode {
// 前置节点
struct listNode *prev;
// 后置节点
struct listNode *next;
// 节点的值
void *value;
} listNode;List的定义
typedef struct list {
// 表头节点
listNode *head;
// 表尾节点
listNode *tail;
// 链表所包含的节点数量
unsigned long len;
// 节点值复制函数
void *(*dup)(void *ptr);
// 节点值释放函数
void (*free)(void *ptr);
// 节点值对比函数
int (*match)(void *ptr, void *key);
} list;补充:
 
链表被广泛用于实现 Redis 的各种功能, 比如列表键, 发布与订阅, 慢查询, 监视器, 等等。因为链表表头节点的前置节点和表尾节点的后置节点都指向 NULL , 所以 Redis 的链表实现是无环链表。通过为链表设置不同的类型特定函数, Redis 的链表可以用于保存各种不同类型的值。

常用命令:lpush, rpush, lpop, rpop, lrange等 
4,Set - 集合

Set是字符串的无序集合。在Redis中可以添加、删除和测试值是否存在。
#redis-cli.exe
127.0.0.1:6379> sadd total 123
<integer> 1
127.0.0.1:6379> sadd total 234
<integer> 1
127.0.0.1:6379> sadd total 345
<integer> 1
127.0.0.1:6379> smembers total
1> "123"
2> "234"
3> "345"常用命令:sadd, srem, spop, sdiff, smembers, sunion等
 
5,Sort Set - 有序集合

与Set类似,字符串不重复,但其是有序的 
常用命令:zadd, zrange,zrem,zcard等
 
6,Pub/Sub - 消息订阅

发布(Publish)和订阅(Subscribe)

~两客户端之间~ 
client1: 




client2: 






当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。 
这一功能最明显的用法是作为实时消息系统,比如普通的即时聊天,群聊等功能。 查看全部
一、Redis数据库的优势

Redis是一个先进的Key-Value键值存储数据库,通常作为数据结构服务器。 


支持strings, hashes, lists, sets, sorted sets, bitmaps 和hyperloglogs


二、Redis数据结构

1、string - 字符串
Redis的字符串为SDS(Simple Dynamic String)可以存储任何东西,最大长度可达515兆。
#redis-cli.exe
127.0.0.1:6379> set name 'cbb'
OK
127.0.0.1:6379> get name
"cbb"
SDS的数据结构如下:
struct sdshdr {
// 记录 buf 数组中已使用字节的数量
// 等于 SDS 所保存字符串的长度
int len;
// 记录 buf 数组中未使用字节的数量
int free;
// 字节数组,用于保存字符串
char buf[];
};
常用命令:set, get
 
2,Hash - 哈希值

Redis的哈希值是字符串字段和字符串值之间的映射,所有它们被用来表示对象。
#redis-cli.exe
127.0.0.1:6379> HMSET user:1 username ccc password 123 age 20
OK
127.0.0.1:6379> HGETALL user:1 //取所有key
1> "username"
2> "ccc"
3> "passwrod"
4> "123"
5> "age"
6> "20"

127.0.0.1:6379> hget user:1 username //取一个key
"ccc"
上面的Hash数据类型,用于存储用户的基本信息,user:1是键。

hash解决了用户信息对象的存储:如用户ID为key,value为姓名name,年龄age,生日birthday等。 
用普通的key/value结构存储: 
a,set u001 “张三, 18, 20010101” 

这种方式的缺点是增加了序列化/反序列化的开销,并且在需要修改其中一项信息时,需要把整个对象取回,并且修改操作需要对并发进行保护,引入CAS等复杂问题。
b,mset user:001:name “李三” user:001:age 18 user:001:birthday “20010101” 
这种方法是用户信息对象有多少个成员就存成多少个key-value对儿,虽然省去了序列化开销和并发问题,但是用户ID为重复存储,如果存在大量这样的数据,内存浪费严重。

常用命令:hmset, hset, hget, hgetall 
3,List - 列表

列表是简单的字符串列表,排序插入顺序。可以添加元素到Redis列表的头部或尾部。
#redis-cli.exe
127.0.0.1:6379> lpush tutor redis
<integer> 1
127.0.0.1:6379> lpush tutor mongodb
<integer> 2
127.0.0.1:6379> lpush tutor rabitmq
<integer> 3
127.0.0.1:6379> lrange tutor 0 10
1> "rabitmq"
2> "mongodb"
3> "redis"
节点的定义:
typedef struct listNode {
// 前置节点
struct listNode *prev;
// 后置节点
struct listNode *next;
// 节点的值
void *value;
} listNode;
List的定义
typedef struct list {
// 表头节点
listNode *head;
// 表尾节点
listNode *tail;
// 链表所包含的节点数量
unsigned long len;
// 节点值复制函数
void *(*dup)(void *ptr);
// 节点值释放函数
void (*free)(void *ptr);
// 节点值对比函数
int (*match)(void *ptr, void *key);
} list;
补充:
 
  • 链表被广泛用于实现 Redis 的各种功能, 比如列表键, 发布与订阅, 慢查询, 监视器, 等等。
  • 因为链表表头节点的前置节点和表尾节点的后置节点都指向 NULL , 所以 Redis 的链表实现是无环链表。
  • 通过为链表设置不同的类型特定函数, Redis 的链表可以用于保存各种不同类型的值。


常用命令:lpush, rpush, lpop, rpop, lrange等 
4,Set - 集合

Set是字符串的无序集合。在Redis中可以添加、删除和测试值是否存在。
#redis-cli.exe
127.0.0.1:6379> sadd total 123
<integer> 1
127.0.0.1:6379> sadd total 234
<integer> 1
127.0.0.1:6379> sadd total 345
<integer> 1
127.0.0.1:6379> smembers total
1> "123"
2> "234"
3> "345"
常用命令:sadd, srem, spop, sdiff, smembers, sunion等
 
5,Sort Set - 有序集合

与Set类似,字符串不重复,但其是有序的 
常用命令:zadd, zrange,zrem,zcard等
 
6,Pub/Sub - 消息订阅

发布(Publish)和订阅(Subscribe)

~两客户端之间~ 
client1: 
QQ截图20180129142948.jpg

client2: 

QQ截图20180129143032.jpg


当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。 
这一功能最明显的用法是作为实时消息系统,比如普通的即时聊天,群聊等功能。