简介:
我在企业内部部署了域控,使用了自己的域控解析客户端,但是其他域怎么解析呢?转发到上游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日志,也可以这么跟踪的。
标签:ELK,log,elk,kibana,elasticsearch,日志,docker,name From: https://www.cnblogs.com/jackadam/p/17108346.html