ELK简单教程,收集log日志,文本日志

简介:#

我在企业内部部署了域控,使用了自己的域控解析客户端,但是其他域怎么解析呢?转发到上游DNS就好了。

 

 

 好死不死,有个终端使用了一些不太好的软件,申请解析一些垃圾网站,被上游DNS警告了。

查到的结果是:我的dns服务器,申请解析垃圾网站。

所以就需要给dns上日志了。

虽说windows的dns服务器自己也能记录日志,但是这个是调试日志,不是生产日志,记录范围,长度都不尽人意。

上日志,那就ELK吧。所以就有了这篇文章

一:ELK简介:#

那么,ELK 到底是什么呢? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

二:docker安装#

我还是习惯用docker,类似虚拟机,不破坏主系统,配置简单。

复制代码
version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.6.1  #镜像
    container_name: elk_elasticsearch  #定义容器名称
    restart: always  #开机启动,失败也会一直重启
    environment:
      - cluster.name=elasticsearch
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - ELASTIC_PASSWORD=Elastic@123456  # Password for the 'elastic' user 
      - KIBANA_PASSWORD=123456  #Password for the 'kibana_system' user 这个无效,已经
      - LICENSE=basic
      - MEM_LIMIT=1073741824
    volumes:
      - /storage/data/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
      - /storage/data/elk/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
      - /storage/data/elk/elasticsearch/logs:/usr/share/elasticsearch/logs #数据文件挂载
    ports:
      - 9200:9200
      
      
  kibana:
    image:  docker.elastic.co/kibana/kibana:8.6.1
    container_name: elk_kibana
    restart: always
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200 #设置访问elasticsearch的地址
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml #配置文件
    ports:
      - 5601:5601
      
networks:
  default:
    external: true
    name: mynet
复制代码

networks,请看docker-compose ipv6的处理

有个配置文件kibana.yml

server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: "kibana_system"
elasticsearch.password: "aqkUP3ds_1iH-Wvvq12b"
i18n.locale: "zh-CN"
elasticsearch.hosts:对应的elastic主机地址,使用docker-compose 的service name即可。
elasticsearch.username: "kibana_system"   kibana在elastic中的用户名
elasticsearch.password: "aqkUP3ds_1iH-Wvvq12b"  对应密码
 

本来这个kibana密码应该可以设在docker-compose中,可是有bug,设了无效,只能进容器改

复制代码
[root@ylc-fedora elasticsearch]# docker exec -it elk_elasticsearch sh
sh-5.0$ ./bin/elasticsearch-reset-password -u kibana_system auto
This tool will reset the password of the [kibana_system] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]y


Password for the [kibana_system] user successfully reset.
New value: -tYBUOmEcsBnK-rWg2uO
复制代码

这样重设一下即可。

再改kibana.yml配置密码

重启kibana 

 docker restart elk_kibana

 

 

 

 

三:访问elasticsearch#

http://192.168.2.12:9200

8.x的版本已经更新了什么协议,默认是打开认证的。

账号:elastic

密码:docker-compose当中设置的Elastic@123456

看到下面这些,就算成功了

复制代码
{
  "name" : "9fdacce9f5ce",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "SwtizdNDQWqqeUyZhSetGQ",
  "version" : {
    "number" : "8.6.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "180c9830da956993e59e2cd70eb32b5e383ea42c",
    "build_date" : "2023-01-24T21:35:11.506992272Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.2",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}
复制代码

四:访问kibana#

http://192.168.2.12:5601

 

 

 

 这里不是使用kibana的账号密码,是elasticsearch的账号密码,和访问9200的是一样的。

我们只设置了一个:

Elastic@123456

注意:kibana在docker中并不支持IPV6,只能用ipv4访问,如果需要ipv6,请自行假设nginx代理

五:DNS server调试日志#

开启DNS server 调试日志

 

 随意了,反正是一个log文本日志。

六:filebate#

Download Filebeat • Lightweight Log Analysis | Elastic

这里下载filebeat,windows建议使用zip格式,不要用msi格式,因为msi格式貌似文件不完整,还是测试版。

下载解压到任意路径,

 

 安装到服务:

install-service-filebeat.ps1,右键-属性-有个什么信任,打勾,我这信任以后就不出来,没办法截图。

在管理员的powershell中运行下面命令,允许脚本运行。

set-executionpolicy remotesigned  

然后运行下面脚本,即可注册为windows服务

./install-service-filebeat.ps1

配置filebeat:

修改filebeat.yml

监听c:\dns\*.log文件

 

上传到elasticsearch服务器的信息d

 

 

 服务管理器重启一下filebeat,就可以了

六:查看日志#

使用kibana来查看日志

登录kibana,找到日志,右边有个流式传输,就是自动刷新显示新日志

 

 我手动使用这个dns解析一个域名,看日志会不会更新

nslookup www.baidu.com 192.168.2.15

 

 等一下,就会出现结果,可以看到是192.168.2.15,申请解析 www.baidu.com

 

自己的程序写log日志,也可以这么跟踪的。

 

作者:上官飞鸿

出处:https://www.cnblogs.com/jackadam/p/17108346.html

版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。

posted @   上官飞鸿  阅读(986)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2018-02-10 python 安装 scapy windows 10 64bit
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示