自动采集网站内容(修改logstash配置,监控日志文件(-9200logstash) )
优采云 发布时间: 2021-12-28 22:18自动采集网站内容(修改logstash配置,监控日志文件(-9200logstash)
)
Elastic Stack 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时搜索、分析和可视化数据
Elasticsearch 是一个分布式的、RESTful 风格的搜索和数据分析引擎
Kibana 是一个免费且开放的用户界面,可让您直观地管理和显示 Elasticsearch 数据
Beats 是一个免费开放的平台,集成了多种单一用途的数据采集器,可以将数据发送到 Logstash 或 Elasticsearch
Logstash 是一个免费开放的服务器端数据处理管道,可以从多个来源采集
数据,转换数据,然后将数据发送到您喜欢的“存储库”
一、下载图片(图片)
搜索镱的图像(图像)
docker search elasticsearch
docker search kibana
docker search logstash
获取图像(图像)
docker pull elasticsearch:7.6.0 #镜像名称:Tag
docker pull kibana:7.6.0 #镜像名称:Tag
docker pull logstash:7.6.0 #镜像名称:Tag
注意:版本要统一
二、创建ELK.yml
ELK.yml
version: "3.5"
services:
elasticsearch:
container_name: elasticsearch
image: elasticsearch:7.6.0 #镱像(image)
restart: always #重启方式
environment:
discovery.type: single-node #环境变量:运行模式 单例
ports:
- "9200:9200" #端口映射
- "9300:9300"
kibana:
container_name: kibana
image: kibana:7.6.0 #镱像(image)
restart: always #重启方式
environment:
I18N_LOCALE: "zh-CN" #指定中文
ports:
- "5601:5601" #端口映射
logstash:
container_name: logstash
image: logstash:7.6.0
restart: always
volumes: #文件夹映射,本地:容器
- "/Users/iChochy/logs:/usr/share/logstash/logs"
ports:
- "5044:5044"
- "9600:9600"
卷自定义监控文件夹
注意:注意YML文件的写入,不要有Tab字符,否则会导致文件解析错误和启动容器(container)失败
# 错误信息
yaml.scanner.ScannerError: mapping values are not allowed here
三、运行容器
添加主机hosts
127.0.0.1 elasticsearch
命令启动
docker-compose -f ELK.yml up -d
docker-compose
-f #指定构建文件
up #创建并启动容器
-d #后台运行容器(container),打印容器(container)ID
四、查看容器的运行状态
弹性搜索访问:9200
logstash 访问:9600
Kibana 访问:5601,进入 Kibana
运行docker ps查询容器的运行状态,可以查看容器的ID
mleo$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b8cb2effede logstash:7.6.0 "/usr/local/bin/dock…" 2 hours ago Up About an hour 0.0.0.0:5044->5044/tcp, 0.0.0.0:9600->9600/tcp logstash
69b8bc678e4e kibana:7.6.0 "/usr/local/bin/dumb…" 3 weeks ago Up 2 hours 0.0.0.0:5601->5601/tcp kibana
8c655f5b7493 elasticsearch:7.6.0 "/usr/local/bin/dock…" 3 weeks ago Up 2 hours 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elasticsearch
运行 docker logs id 查看容器运行日志
例:持续查看logstash日志
docker logs 1b8cb2effede -f
五、修改logstash配置,监控日志文件
input {
beats {
port => 5044
}
file {
path => "/usr/share/logstash/logs/*" #监控的文件路径
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["http://elasticsearch:9200"] #elasticsearch请求地址
index => "ichochy" #索引名称
}
}
六、采集
日志
在logstash监控的文件路径下动态添加日志文件,可以自动采集
日志到elasticsearch
touch web.log #创建日志文件
echo "www.ichochy.com" > web.log #添加日志信息
查看logstash日志信息查看打印的日志
{
"@version" => "1",
"path" => "/usr/share/logstash/logs/web.log",
"host" => "1b8cb2effede",
"@timestamp" => 2020-07-10T14:07:16.633Z,
"message" => "www.ichochy.com"
}
七、搜索和分析日志
访问:5601,进入Kibana
在Discover中可以看到刚刚添加的日志数据,开始执行...