ELK收集windows服务器日志笔记
一、软件版本
1.jdk-8u211-linux-x64.rpm
2.elasticsearch-6.8.1.rpm
3.logstash-6.8.1.rpm
4.kibana-6.8.1-x86_64.rpm
5.winlogbeat-6.8.4-windows-x86_64 在windows服务器安装配置
说明:elasticsearch做集群 主机1:192.168.1.102 主机2:192.168.1.104
logstash和kibana安装在主机1上
二、安装软件
2.1 主机1和主机2:jdk-8u211-linux-x64.rpm和elasticsearch-6.8.1.rpm 并配置elasticsearch
说明:elasticsearch依赖jdk环境,所以先安装jdk-8u211-linux-x64.rpm
yum -y localinstall jdk-8u211-linux-x64.rpm
yum -y localinstall elasticsearch-6.8.1.rpm
创建数据目录和日志目录及权限修改
[root@linux-elk1 ~]# mkdir -p /elk/{data,logs}
[root@linux-elk1 ~]# chown elasticsearch.elasticsearch /elk/ -R
修改内存限制,内存锁定需要进行配置需要2g以上内存,否则会导致无法启动elasticsearch。
[root@linux-elk1 ~]# vim /usr/lib/systemd/system/elasticsearch.service
在[Service]下加入下面这行内容
LimitMEMLOCK=infinity
[root@linux-elk1 ~]# vim /etc/elasticsearch/jvm.options
-Xms2g
-Xmx2g #最小和最大内存限制.
编辑配置文件:vim /etc/elasticsearch/elasticsearch.yml
[root@logsystem src]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-log
node.name: node-1
path.data: /elk/data
path.logs: /elk/logs
network.host: 192.168.1.102
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.1.102","192.168.1.104"]
设置开机启动
systemctl enable elasticsearch.service
systemctl daemon-reload
systemctl start elasticsearch.service
查看状态
systemctl status elasticsearch.service
正在运行,查看端口
ss -tnl
查看信息,也是一种检测。若能出现如下信息,则说明配置正确
curl http://192.168.1.102:9200
集群有状态: green ,red , yellow
绿色表示一切是好的(集群功能齐全)
黄色意味着所有数据是可用的,但是一些副本尚未分配(集群功能齐全)
红色意味着一些数据不可用
即使一个集群是红色的,它仍然是部分功能(即它将继续搜索请求从服务可用的碎片)但是你可能需要尽快修复它,因为你有缺失的数据。
Restful API:
四类API
1. 检查集群,节点,索引等健康与否,以及获取其相应状态
2.管理集群,节点,索引及元数据
3.执行CRUD操作
4.执行高级操作,如paging ,filtering等
ES访问接口:9200/tcp
语法:
curl -X<VERB> '<PROTOCOL>://host:port/<PATH>?QUERY_STRING/' -d '<BODY>'
查看elasticsearch相关信息 json格式的
[root@logsystem ~]# curl http://192.168.1.102:9200/_cluster/health?pretty=true
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
[root@logsystem ~]# curl -X GET http://192.168.1.102:9200/_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.1.102 7 95 1 0.00 0.01 0.05 mdi * node-1
[root@logsystem ~]# curl -X GET http://192.168.1.102:9200/_cat/indices?help
[root@logsystem ~]# curl -X GET 'http://192.168.1.102:9200/_cluster/state/version?pretty'
{
"cluster_name" : "elasticsearch",
"cluster_uuid" : "qKuBK9TlQ3G-Rj6IFAXzTQ",
"version" : 16,
"state_uuid" : "SzhdF4PvRIGFbwlI_PD_cg"
}
2.2主机1: logstash-6.8.1.rpm 并配置
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.8.1.rpm
yum -y localinstall logstash-6.8.1.rpm
[root@logsystem ~]cd /etc/logstash/conf/
vim system-log.conf
input{
beats{
add_field => {"myid"=>"windows_log"}
port => 5044
}
beats {
add_field => {"myid"=>"nginx_log"}
port => 5400
}
stdin{}
}
output{
if [myid] == "windows_log"{
elasticsearch{
hosts=>"192.168.1.102:9200"
index=>"%{type}-%{+YYYY-MM-dd}"
}
}
if [myid] == "nginx_log"{
elasticsearch{
hosts=>"192.168.1.102:9200"
index=>"nginx_pj_log-%{+YYYY-MM-dd}"
}
}
stdout{ codec=>rubydebug }
}
启动logstash:
[root@logsystem src]# nohup logstash -f /etc/logstash/conf.d/server_log.conf &
测试配置文件是否有语法错误:
[root@logsystem ~]logstash -f /etc/logstash/conf/system-log.conf
数据类型
Array: [item1,item2,...]
Boolean: true,false
Bytes:
Codec: 编码器
Hash: key=>value
Number:
Password:
Path:文件系统路径
String:字符串
字段引用 []
条件判断: == ,!=,<,>, in ,not in ,and,or ....
常用imput Plugin
imput插件:
File :从指定的文件中读取事件流,按行来标记一个事件。
使用FileWatch(Ruby开发)来监听文件是否变化; .sincedb保存文件的相关信息数据库中。
[root@logsystem logstash]# rpm -ql logstash |grep "patterns" 查找pattern
elasticsearch服务收到数据验证:
2.3主机1:安装配置kibana
[root@logsystem src]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.8.1-x86_64.rpm
安装
[root@logsystem src]# yum localinstall kibana-6.8.1-x86_64.rpm -y
配置
[root@logsystem src]# vim /etc/kibana/kibana.yml
server.port: 5601 #监听端口
server.host: "192.168.1.102" #监听地址
elasticsearch.hosts: ["http://192.168.1.102:9200"] #elasticsearch服务器地址
i18n.locale: "zh-CN" #修改中文
[root@logsystem src]# systemctl start kibana
[root@logsystem src]# systemctl enable kibana
查看服务
访问:http://192.168.1.102:5601
2.4 收集服务器日志上安装winlogbeat-6.8.4-windows-x86_64
解压到 C:\Program Files
重新命名文件夹为winlogbeat
用管理员身份打开windows的 powershell
运行以下命令来安装服务
PS C:\Users\Administrator> cd 'C:\Program Files\Winlogbeat'
PS C:\Program Files\Winlogbeat> .\install-service-winlogbeat.ps1
不能安装时,令来关闭一些安全防护,输入命令后按Y确认
PS C:\Program Files\Winlogbeat> set-executionpolicy remotesigned
PS C:\Program Files\Winlogbeat> set-executionpolicy Bypass
winlogbeat.yml 配置文件修改:
winlogbeat.event_logs:
- name: Application #应用程序事件;
ignore_older: 8h #忽略8小时后的日志,初次启用传日志很有用;
provider: #过虑源yml列表
- Application Error
- Application Hang
- Windows Error Reporting
- name: Security #安全日志
ignore_older: 8h
event_id: 4624, 4625, 4700-4800, -4735 #事件ID 匹配中事件ID发送
- name: System #系统日志
ignore_older: 8h
检查配置语法
. \winlogbeat.exe test config -c .\winlogbeat.yml -e
启动winlogbeat
C:\Program Files\Winlogbeat> Start-Service winlogbeat
Windlogbeat基本配置
1.配置发送日志到logstash
output.logstash:
# The Logstash hosts
hosts: ["10.10.10.10:5044"]
2.配置发送日志到elasticsearch
output.elasticsearch:
hosts: ["10.10.10.10:9200"]
template.name: "winlogbeat"
template.path: "winlogbeat.template.json"
template.overwrite: false
坑1:插件存放路径
报错:
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: Property [elasticsearch.version] is missing for plugin [head]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) ~[elasticsearch-5.2.2.jar:5.2.2]
原因:新版本的elasticsearch不允许插件放入/usr/share/elasticsearch/plugins 目录下。(插件bigdesk,head ...)
解决:把插件移到其它目录即可
ELK收集windows服务器日志笔记的更多相关文章
- salt收集windows服务器日志时间
定义收集时间区间: time.ps1 $a = get-date $b = $a.adddays(-) $c = $b.tostring('yyyy-MM-dd') $d = get-date -fo ...
- elk收集windows日志
参考网站:https://www.secpulse.com/archives/55636.html https://blog.csdn.net/qq_38094271/article/details/ ...
- ELK收集Nginx自定义日志格式输出
1.ELK收集日志的有两种常用的方式: 1.1:不修改源日志格式,简单的说就是在logstash中转通过 grok方式进行过滤处理,将原始无规则的日志转换为规则日志(Logstash自定义日志格式) ...
- 带你了解zabbix整合ELK收集系统异常日志触发告警~
今天来了解一下关于ELK的“L”-Logstash,没错,就是这个神奇小组件,我们都知道,它是ELK不可缺少的组件,完成了输入(input),过滤(fileter),output(输出)工作量,也是我 ...
- ELK收集Nginx|Tomcat日志
1.Nginx 日志收集,先安装Nginx cd /usr/local/logstash/config/etc/,创建如下配置文件,代码如下 Nginx.conf input { file { typ ...
- 搭建ELK收集PHP的日志
架构: filebeat --> redis -->logstash --> es --> kibana 每个客户端需要安装filebeat收集PHP日志 filebeat把收 ...
- elk收集tomcat的日志
logstash收集tomcat的日志 不要修改下tomcat中server.xml的日志格式,否则tomcat无法启动,试过多次,不行,就用自带的日志让logstash去收集 首先给tomcat日志 ...
- ELK收集tomcat访问日志并存取mysql数据库案例
这个案例中,tomcat产生的日志由filebeat收集,然后存取到redis中,再由logstash进行过滤清洗等操作,最后由elasticsearch存储索引并由kibana进行展示. 1.配置t ...
- ELK收集tomcat状态日志
1.先查看之前的状态日志输出格式:在logs/catalina.out这个文件中 最上面的日志格式我们可能不太习惯使用,所以能输出下面的格式是最好的,当然需要我们自定义日志格式,接下来看看如何修改 2 ...
随机推荐
- 网络基础TCP/IP
TCP/IP协议族各层的作用如下 应用层 决定了向用户提供应用服务时通信的活动: 各类通用的应用服务.FTP(File Transfer Protocol,文件传输协议).DNS(Domain Nam ...
- DARLING in the FRANXX
那是一种叫比翼的鸟,这种鸟只有半边翅膀,如果雌鸟和雄鸟不紧靠在一起的话,它们就无法飞上天空,是不完整的生物. 但是,为什么,我总认为这种生活方式是如此美丽,感觉如此美丽. 那是一种叫比翼的鸟,我以前从 ...
- Django(一):url路由配置和模板渲染
urls.py路由用法 url基本概念 url格式 urls.py的作用 url解析过程 include的作用 kwarg的作用 name的作用 URL概念 URL(Uniform Resoure L ...
- Mint UI 之loadmore组件的坑:内部元素头部被遮挡了一部分
前端经常会遇到数据分页加载的需求,mint-ui组件为大家提供了loadmore组件 但是我在使用的时候,遇到了一个问题:写好布局和样式以及逻辑之后,我的mt-loadmore标签的头部总是不顶在父元 ...
- 一篇文章搞清楚HashMap和TreeMap的内部结构
一.HashMap 1.基于哈希表的 Map 接口的实现. 此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 Has ...
- spring源码学习(三)--spring循环引用源码学习
在spring中,是支持单实例bean的循环引用(循环依赖)的,循环依赖,简单而言,就是A类中注入了B类,B类中注入了A类,首先贴出我的代码示例 @Component public class Add ...
- Tomcat系列(一)- 整体架构
整体架构 我们想要了解一个框架,首先要了解它是干什么的,Tomcat我们都知道,是用于处理连接过来的Socket请求的.那么Tomcat就会有两个功能: 对外处理连接,将收到的字节流转化为自己想要的R ...
- spyder错误合集
SyntaxError: invalid syntax是非法语句的意思,检查语法是否出现错误,漏写等 SyntaxError: (unicode error) 'unicodeescape' co ...
- Maven使用教程二:nexus私服搭建及使用
nexus安装 从nexus官网 下载最新的安装包 1.打开命令行,切换到nexus-3.2.1-01/bin目录下,回车.例:C:\Nexus\nexus-3.2.1-01\bin 2.输入:nex ...
- Win32 API编程——前言
一丶什么是Win32 API? 微软为了保护操作系统的安全性和稳定性,把系统分为内核层和用户层(内核层的代码只能在当CPU的特权级为R0状态下执行,用户层的代码在CPU特权级为R0和R3都能执行),w ...