日志分析

Elasticsearch 2.3.0 安装成服务

我是研究僧i 提交于 2019-12-09 14:56:15
linux下作为服务 Elasticsearch创建了debian安装包和rpm安装包,可以在官网的下载页面中进行下载。安装包需要依赖JAVA,除此就没有任何依赖。 在debian系统下可以使用 标准的系统工具,init脚本放在 /etc/init.d/elasticsearch下,配置文件默认放在 /etc/default/elasticsearch下。从Debian软件包安装好后默认是不启动服务的。其原因是为了防止实例不小心加入群集。安装好后用dpkg -i命令来确保,当系统启动后启动Elasticsearch需要运行下面的两个命令: sudo update-rc.d elasticsearch defaults 95 10 sudo /etc/init.d/elasticsearch start 当用户运行Debian8或者Ubuntu14或者更高版本的时候,系统需要用systemd 来代替update-rc.d,在这种情况下,请使用systemd来运行,参见下面的介绍。 Elasticsearch通常的建议是使用Oracle的JDK。可以用下面的命令安装。 sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer

secilog 1.16 发布 增加了集群,离线日志导入,日志过滤和归并等

天大地大妈咪最大 提交于 2019-12-09 12:26:14
日志分析软件 secilog 1.16发布,增加了集群,离线日志导入,日志过滤和归并,日志管理,配置管理等。上篇文章 1.15 ,有兴趣可以了解一下。本次升级主要增加以下功能: 集群 主要是采集器可以分布式集群部署,支持横向扩展,理论上支持海量数据。 配置文件中增加了两项: secilog.master=true 采集器主从节点标志,当是从节点的时候,内容要修改成 false master.ip= 当采集器是从节点的时候,需要指定主节点的 ip ,同时要确保系统 7017 , 7018 端口畅通。 离线日志导入 离线日志导入,可以上传文本文件到服务器上,供服务器来分析,可以支持多个文件一次上传: 点击选择文件后会打开本地选择文件对话框,然后选择一个或者多个文本文件。选择文件后,点击开始上传。系统会把文件上传到服务器中。对上传到服务器上的文件,后台的采集器会每各 10 分钟检查是否有新的上传文件,如果有新的文件,后台会分析新上传的文件。 日志过滤和归并 : 过滤规则是指满足条件的日志直接忽略掉,不进行入库操作。 合并规则是指,同时多条日志中,满足相同条件的日志合并成一条日志记录到数据库中。 日志管理 : 日志管理主要是对日志进行管理,包括日志的删除和备份。由于日志是不停的增加,当磁盘不足的时候会严重的影响系统的运行。所以当磁盘空间不足 80% 的时候系统后台会强制删除日志

Elasticsearch 2.3.0 索引映射管理

筅森魡賤 提交于 2019-12-07 15:34:47
增加映射 API允许你向索引(index)添加文档类型(type),或者向文档类型(type)中添加字段(field)。 PUT secisland { "mappings": { "log": { "properties": { "message": { "type": "string" } } } } } 添加索引名为secisland,文档类型为log,其中包含字段message,字段类型是字符串。 PUT secisland/_mapping/user { "properties": { "name": { "type": "string" } } } 向已经存在的索引secisland添加文档类型为user,包含字段name,字段类型是字符串。 PUT secisland/_mapping/log { "properties": { "user_name": { "type": "string" } } } 已经存在的索引secisland,文档类型为log,添加新的字段user_name,字段类型是字符串。 多个索引 设置映射,可以一次向多个索引添加文档类型 PUT /{index}/_mapping/{type} { body } {index}可以有多种方式,逗号分隔,比如test1,test2,test3 _all,表示所有索引, 通配符,*表示所有,test

Elasticsearch 2.3.0 索引别名

*爱你&永不变心* 提交于 2019-12-07 15:15:45
别名管理 在Elasticsearch所有的API中,对应的是一个或者多个索引。Elasticsearch可以对一个或者多个索引指定别名,通过别名可以查询到一个或者多个索引的内容,在内部,Elasticsearch会自动把别名映射到响应的索引上。可以对别名编写过滤器或者路由,在系统中别名不能重复,也不能和索引名重复。其实在Elasticsearch的别名机制有点像数据库中的视图。例如:把索引test1增加一个别名alias1。 请求:POST 'http://localhost:9200/_aliases 参数: { "actions" : [ { "add" : { "index" : "test1", "alias" : "alias1" } } ] } 删除别名: 请求是一样的,参数不一样。 { "actions" : [ { "remove" : { "index" : "test1", "alias" : "alias1" } } ] } 注意:别名没有修改的语法,当需要修改别名的时候,可以先删除别名,然后再增加别名,例如: { "actions" : [ { "remove" : { "index" : "test1", "alias" : "alias1" } }, { "add" : { "index" : "test1", "alias" : "alias2" }

三个实例演示 Java Thread Dump 日志分析

人盡茶涼 提交于 2019-12-07 14:29:27
jstack Dump 日志文件中的线程状态 dump 文件里,值得关注的线程状态有: 死锁, Deadlock (重点关注) 执行中, Runnable 等待资源, Waiting on condition (重点关注) 等待获取监视器, Waiting on monitor entry(重点关注) 暂停, Suspended 对象等待中, Object.wait() 或 TIMED_WAITING 阻塞, Blocked (重点关注) 停止, Parked 下面我们先从第一个例子开始分析,然后再列出不同线程状态的含义以及注意事项,最后再补充两个实例。 综合 示范一: Waiting to lock 和 Blocked 实例如下: "RMI TCP Connection(267865)-172.16.5.25" daemon prio=10 tid=0x00007fd508371000 nid=0x55ae waiting for monitor entry [ 0x00007fd4f8684000 ] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.log4j.Category.callAppenders(Category.java:201) - waiting to lock

Elasticsearch 2.20 高亮显示

╄→尐↘猪︶ㄣ 提交于 2019-12-06 08:12:56
Elasticsearch中的高亮显示是来源于lucene的功能,他允许在一个或者多个字段上突出显示搜索内容, lucene支持三种高亮显示方式highlighter, fast-vector-highlighter, postings-highlighter,第一种是默认的标准类型。下面先看一个实例,在搜索前,先增加一条文档。 请求:PUT http://localhost:9200/secilog/log/10?pretty 参数: { "type":"file", "message":"secilog is a log real-time analyse software,it's full text search is based on Elasticsearch " } 文档创建好后,我们在进行高亮搜索: 请求:POST http://localhost:9200/secilog/log/_search?pretty 参数: { "query": { "term": { "message": "analyse" } }, "highlight": { "fields": { "message": { } } } } 返回结果如下: { "took" : 1, "timed_out" : false, "_shards" : { "total" : 1,

关于反爬虫和恶意攻击的一些策略和思路

て烟熏妆下的殇ゞ 提交于 2019-12-02 22:56:12
前段时间 Guang.com 经常受到恶意 spider 攻击,疯狂抓取网站内容,一系列机器人 spam 发广告,对网站性能有较大影响。 下面我说说一些反恶意 spider 和 spam 的策略和思路。 1. 通过日志分析来识别恶意爬虫 / 攻击 less guang.com_access.log | awk -F- '{print $1}' | sort | uniq -c | sort -rn | head -n 50 首先分析 access log ,类聚统计出访问量前 50 IP 排除白名单 IP 和正常 spider ( baidu , google...) host 112.94.32.135 //查看可疑ip是不是baidu、google等常规爬虫。 分析可以 ip 请求时间、频率、路径等,你可以很容易发现这是否是一个 spider ,下面那明显是一个 spider 。 less access.log | grep '112.94.32.135' | less 112.94.32.135 - - [1/Oct/2012:00:00:50 +0800] "GET /baobei/1888476 HTTP/1.1" 200 107876 "-" "Mozilla/4.0" 112.94.32.135 - - [1/Oct/2012:00:00:50 +0800] "GET

nginx日志分析——用sed彩色标记特定内容

时光毁灭记忆、已成空白 提交于 2019-12-01 02:48:37
实时过滤日志 只显示nginx访问日志中返回500状态码的日志行: tail -f access_log.log | grep 500 --color 注意: tail -f 之后,只能使用管道一次,如下命令将无任何输出 tail -f access_log.log | grep 500 | grep 500 用颜色标记日志中的特定内容 比如,nginx日志格式为: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 日志内容为: 192.168.1.181 - - [13/Apr/2011:15:19:10 +0800] "GET /tomcat.png HTTP/1.1" 304 0 "http://192.168.1.9/" "Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0" "-" 192.168.1.181 - - [13/Apr/2011:15:19:10 +0800] "GET /favicon.ico HTTP/1.1"

R语言-分析nginx日志

自古美人都是妖i 提交于 2019-11-27 03:09:25
R语言分析nginx日志 nginx日志举例 172.16.1.1 - - [04/Feb/2015:23:40:01 +0800] "POST /api/message/query HTTP/1.1" 200 52 "-" "Apache-HttpClient/4.2 (java 1.5)" "-" "message.test.com" "172.16.3.159" "-" "0.116" "-" "0.116" "-" remote_addr_ac_logon 取出time、url、请求大小, sub(/\[/,"",$4) 去掉时间中的中括号, sub(/Feb/,"2",$4) 把Fed替换为2 awk 的 sub 函数用于替换字符串,语句单独使用,如果使用赋值语句,如 a=sub(/Feb/,"2",$4) 则 a=1 ,返回替换次数 cat message-access.log | awk 'BEGIN {print "time,url,size"} {sub(/\[/,"",$4);sub(/Feb/,"2",$4);print $4","$7","$10}' > message-time.log 然后使用R语言导入这个文件,用 ggplot2 画图,在R语言中通过使用 ddply 函数做统计分组, ddply 的使用参见: ddply使用 但R语言做统计分组效率较低