3.用admin账户创建流和大屏面板
添加Manage Alerts,例如app_name = roadnet
分享–》选择用户或者团队–》选择权限–》点击Add Collborator–》点击Save
同理构建大屏分享给指定用户
截取日志中的数据进行指标统计
有很多种方式去截取
-
数据不规则,无格式
-
正则表达式
-
grok 推荐
-
数据规则,例如:log使用json格式
-
使用json抽取 推荐
有很多自己选
官网推荐使用grok抽取
以在 grok 里预定义好命名正则表达式,Grok 支持把预定义的 grok 表达式 写入到文件中
USERNAME [a-zA-Z0-9._-]+
USER %{USERNAME}
第一行,用普通的正则表达式来定义一个 grok 表达式;第二行,通过打印赋值格式,用前面定义好的 grok 表达式来定义另一个 grok 表达式。
grok 表达式的打印复制格式的完整语法是下面这样的:
%{PATTERN_NAME:capture_name:data_type}
-
http://doc.yonyoucloud.com/doc/logstash-best-practice-cn/filter/grok.html
-
http://grokdebug.herokuapp.com/
常用总结
-
(?<temMsg>(.*)(?=Report)/?)
获取Report之前的字符,作为temMsg字段的值 -
(?<temMsg>(?=Report)(.*)/?)
获取Report之后的字符,作为temMsg字段的值 -
(?<temMsg>(?<=report).*?(?=msg))
截取report和msg之间的值 不包含report和msg本身,作为temMsg字段的值 -
(?<temMsg>(report).*?(?=msg))
截取 包含report但不包含msg -
(?<temMsg>(?<=report).*?(msg))
截取 不包含report但包含msg -
(?<temMsg>(report).*?(msg|request))
输出以report开头,以msg或者以request结尾的所有包含头尾信息 -
(?<temMsg>(report).*?(?=(msg|request)))
输出以report开头,以msg或者以request结尾的不包含头尾信息
自定义索引映射
Graylog本身是使用默认映射包括用于设置timestamp
,message
,full_message
,和source
索引的消息的字段:
$ curl -X GET ‘http://localhost:9200/_template/graylog-internal?pretty’
{
“graylog-internal” : {
“order” : -1,
“index_patterns” : [
“graylog_*”
],
“settings” : {
“index” : {
“analysis” : {
“analyzer” : {
“analyzer_keyword” : {
“filter” : “lowercase”,
“tokenizer” : “keyword”
}
}
}
}
},
“mappings” : {
“message” : {
“_source” : {
“enabled” : true
},
“dynamic_templates” : [
{
“internal_fields” : {
“mapping” : {
“type” : “keyword”
},
“match_mapping_type” : “string”,
“match” : “gl2_*”
}
},
{
“store_generic” : {
“mapping” : {
“type” : “keyword”
},
“match_mapping_type” : “string”
}
}
],
“properties” : {
“gl2_processing_timestamp” : {
“format” : “yyyy-MM-dd HH:mm:ss.SSS”,
“type” : “date”
},
“gl2_accounted_message_size” : {
“type” : “long”
},
“gl2_receive_timestamp” : {
“format” : “yyyy-MM-dd HH:mm:ss.SSS”,
“type” : “date”
},
“full_message” : {
“fielddata” : false,
“analyzer” : “standard”,
“type” : “text”
},
“streams” : {
“type” : “keyword”
},
“source” : {
“fielddata” : true,
“analyzer” : “analyzer_keyword”,
“type” : “text”
},
“message” : {
“fielddata” : false,
“analyzer” : “standard”,
“type” : “text”
},
“timestamp” : {
“format” : “yyyy-MM-dd HH:mm:ss.SSS”,
“type” : “date”
}
}
}
},
“aliases” : { }
}
为了扩展 Elasticsearch 和 Graylog 的默认映射,您可以创建一个或多个自定义索引映射并将它们作为索引模板添加到 Elasticsearch。
假设我们有一个数据架构,如下所示:
| 字段名称 | 字段类型 | 例子 |
| — | — | — |
| http_method
| keyword | GET |
| http_response_code
| long | 200 |
| ingest_time
| date | 2016-06-13T15:00:51.927Z |
| took_ms
| long | 56 |
将自定义索引映射的以下索引模板保存到名为 的文件中graylog-custom-mapping.json
:
{
“template”: “graylog_*”,
“mappings” : {
“message” : {
“properties” : {
“http_method” : {
“type” : “keyword”
},
“http_response_code” : {
“type” : “long”
},
“ingest_time” : {
“type” : “date”,
“format”: “strict_date_time”
},
“took_ms” : {
“type” : “long”
}
}
}
}
}
上述模板仅兼容 Elasticsearch 6.X。如果将 Graylog 4.0 与 Elasticsearch 7.x 一起使用,请使用下面的模板,将其另存为
graylog-custom-mapping-7x.json
.
{
“template”: “graylog_*”,
“mappings”: {
“properties”: {
“http_method”: {
“type”: “keyword”
},
“http_response_code”: {
“type”: “long”
},
“ingest_time”: {
“type”: “date”,
“format”: “strict_date_time”
},
“took_ms”: {
“type”: “long”
}
}
}
最后,使用以下命令将索引映射加载到 Elasticsearch:
$ curl -X PUT -d @‘graylog-custom-mapping.json’ -H ‘Content-Type: application/json’ ‘http://localhost:9200/_template/graylog-custom-mapping?pretty’
{
“acknowledged” : true
}
从那时起创建的每个 Elasticsearch 索引都会有一个由原始graylog-internal
索引模板和新graylog-custom-mapping
模板组成的索引映射:
- https://docs.graylog.org/en/4.1/pages/configuration/elasticsearch.html
自定义分析器
https://docs.graylog.org/en/4.1/pages/configuration/server.conf.html
elasticsearch_analyzer = standard
-
用于message 和 full_message 字段的分析器(标记器)。“标准”过滤器通常是一个好主意。
-
所有支持的分析器是:standard, simple, whitespace, stop, keyword, pattern, language, snowball,自定义
-
Elasticsearch 文档:https : //www.elastic.co/guide/en/elasticsearch/reference/5.6/analysis.html
-
请注意,此设置仅对新创建的索引生效。
使用Nginx代理web界面
标准的代理
server
{
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name graylog.example.org;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/;
proxy_pass http://127.0.0.1:9000;
}
}
前缀代理
如果您想在一个域名下为多个不同的应用程序提供服务,您还可以使用路径前缀为 Graylog Web 界面提供服务
server
{
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name applications.example.org;
location /graylog/
{
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/graylog/;
rewrite ^/graylog/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:9000;
}
}
-
Web interface:
http://applications.example.org/graylog/
-
REST API:
http://applications.example.org/graylog/api/
https://docs.graylog.org/en/4.1/pages/configuration/web_interface.html
新建的用户,去登录就报错,新用户没法登陆
翻看graylog的日志,错误如下:
java.security.InvalidKeyException: Illegal key size
解决方案
- 解决方案:去官方下载JCE无限制权限策略文件。
jdk 5: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR
jdk6: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
JDK7的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html