在docker部署的方式下,如何跨过容器解析日志,同时配置日志参数?以及如何先通过docker快速部署一个es集群。
我相信,通过这篇文章,这些问题会得解答。并且,在熟悉docker部署的方式以后,你会爱上这个方式。
本篇,默认你已经掌握了一些docker的基础命令,并对es集群有一定的了解。
1.通过docker-compose快速搭建es集群
我选择的版本7.13.4,各位同学根据自己的需要改动配置文件中的镜像版本。如果拉取官方镜像慢,可自行切换镜像源。
注:${ip}需要修改成你自己服务器的ip,其他配置非必要不需要修改。
###提前创建数据目录 mkdir -p /data/es-9200/data mkdir -p /data/es-9200/logs mkdir -p /data/es-9201/data mkdir -p /data/es-9201/logs mkdir -p /data/es-9202/data mkdir -p /data/es-9202/logs ###授权权限 chow -R elk:elk /data/es-920* ### 创建docker-compose文件 touch docker-compose.yml ### 在文件中增加如下内容 version: '3.2' services: elasticsearch01: image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 container_name: es-9200 volumes: - /data/es-9200/data:/usr/share/elasticsearch/data:rw - /data/es-9200/logs:/data/elastic/logs:rw - /home/program/elk-config/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties:rw environment: node.name: "${HOSTNAME}-es9200" cluster.name: "docker-es" http.port: 9200 transport.port: 9300 network.host: "0.0.0.0" discovery.seed_hosts: "${ip}:9300" cluster.initial_master_nodes: "${ip}:9300" path.logs: "/data/elastic/logs" bootstrap.memory_lock: "true" xpack.ml.enabled: "false" xpack.security.enabled: "false" ES_JAVA_OPTS: "-Xmx1g -Xms1g -XX:ErrorFile=/data/elastic/logs/hs_err_pid%p.log -Xloggc:/data/elastic/logs/gc.log" ulimits: memlock: soft: -1 hard: -1 restart: always network_mode: "host" elasticsearch02: image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 container_name: es-9201 volumes: - /data/es-9201/data:/usr/share/elasticsearch/data:rw - /data/es-9201/logs:/data/elastic/logs:rw - /home/program/elk-config/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties:rw environment: node.name: "${HOSTNAME}-es9201" cluster.name: "docker-es" http.port: 9201 transport.port: 9301 network.host: "0.0.0.0" discovery.seed_hosts: "${ip}:9300" path.logs: "/data/elastic/logs" bootstrap.memory_lock: "true" xpack.ml.enabled: "false" xpack.security.enabled: "false" ES_JAVA_OPTS: "-Xmx1g -Xms1g -XX:ErrorFile=/data/elastic/logs/hs_err_pid%p.log -Xloggc:/data/elastic/logs/gc.log" ulimits: memlock: soft: -1 hard: -1 restart: always network_mode: "host" elasticsearch03: image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 container_name: es-9202 volumes: - /data/es-9202/data:/usr/share/elasticsearch/data:rw - /data/es-9202/logs:/data/elastic/logs:rw - /home/program/elk-config/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties:rw environment: node.name: "${HOSTNAME}-es9202" cluster.name: "docker-es" http.port: 9202 transport.port: 9302 network.host: "0.0.0.0" discovery.seed_hosts: "${ip}:9300" path.logs: "/data/elastic/logs" bootstrap.memory_lock: "true" xpack.ml.enabled: "false" xpack.security.enabled: "false" ES_JAVA_OPTS: "-Xmx1g -Xms1g -XX:ErrorFile=/data/elastic/logs/hs_err_pid%p.log -Xloggc:/data/elastic/logs/gc.log" ulimits: memlock: soft: -1 hard: -1 restart: always network_mode: "host" ### 在docker-compose.yml所在目录下执行命令,启动容器 docker-compose up ### 查看启动的容器,这里应该显示三个。es-9200,es-9201,es-9201 docker ps ### 查看容器日志,看是否报错。因为设置了restart: always,所以即使报错,也会一直重启。 docker logs -f es-9200 ### 如果没有报错,链接集群验证
思考,容器部署带来了什么?
docker-compose.yml参数解析
2.filebeat解析日志
### 解压压缩的filebeat.tar.gz tar -zxvf filebeat-7.13.4-linux-x86_64.tar.gz ### 进入解压的文件 cd filebeat-7.13.4-linux-x86_64 vim filebeat.yml ### 修改filebeat.yml,主要是如下配置。 filebeat.config.modules: path: path: ${path.config}/modules.d/*.yml reload.enabled: true reload.period: 10s ### 进入modules.d,修改elasticsearch.yml cd modules.d cp elasticsearch.yml.disabled elasticsearch.yml vim elasticsearch.yml ### 修改成如下配置,其他配置可按照自己需要修改.es ip根据实际修改 - module: elasticsearch server: enabled: true var.paths: - /data/es-9200/logs/*_server.json - /data/es-9201/logs/*_server.json - /data/es-9202/logs/*_server.json output.elasticsearch: hosts: ["localhost:9200"] setup.template.enable: false setup.ilm.enabled: false monitoring.enabled: true ### 修改完成以后,执行启动filebeat cd .. ./filebeat & ### 查看filebeat日志是否正常 tail -f logs/filebeat
至此,完整的es日志解析,已经完成了。
不过,纸上得来终觉浅,绝知此事要躬行。希望各位同学,动手实操。唯有实践,才能提升自己的能力。
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!