diff --git a/.env.swp b/.env.swp new file mode 100644 index 0000000000000000000000000000000000000000..30411c128cce3be3ab2473aa2cacf7a30ee302d0 --- /dev/null +++ b/.env.swp @@ -0,0 +1,2 @@ +[server] +log ansible_host=127.0.0.1 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..65dedec339d76256f885ee5458184d2a3c13f0bc --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +\.env diff --git a/README.md b/README.md index 59d0c15c899d07313d75af9fc536bb217764f97c..ec0ec99a67144503732c1a253d53bae6af6fcbc5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,48 @@ # log_server �𠯫隤䔶撩��滚膥 + +## 鞈��坔冗蝯鞉�� +resources �鍂靘�摮䀹𦆮頠罸�𠉛㮾��𡏭身摰𡁏�𠉛鍂 + +tasks �鍂靘�摮䀹𦆮��憿𧼮�䀹𦆮閬�摰㕑�腈��閮剖�𡁶�Ansible Playbook��垍�� + +.env.swp Ansible Playbook銝餅�笔��彍瑼� + +install.yml �鍂靘�摰㕑�脲���銋见�𦯀辣 + +config.yml �鍂靘�閮剖�𡁶㮾��靝�贝身摰� + +## Ansible Playbook ��滢�𨀣�蝔� +1. 撠�.env.swp瑼𥪜�齿㺿���.env +2. 閮剖��.env銝哨���齿�厩�銝餅�笔�滩�䳢P嚗�虾銝�甈∟身摰𡁜�𡁜蝱 +3. 撠�./resources/.env.swp瑼𥪜�齿㺿���.env嚗峕迨�搴onarQube���鞈��坔澈����銋讠㮾��𡏭身摰𡄯�諹�贝䌊銵諹身摰𡁜末 +4. �贝�䔶誑銝𧢲��誘摰㕑�脲���銋见�𦯀辣 +``` +ansible-playbook -i .env install.yml --ask-become-pass +``` +5. 頛詨�亦蒈�亦鍂撖�蝣� +6. 蝑匧�券�函�����憟𦯀辣�賢�㕑�嘥�峕�琜�䔶蒂銝娍�埝�㕑歲Fail +7. �贝�䔶誑銝𧢲��誘閮剖�𡁏�滚�坔膥 +``` +ansible-playbook -i .env config.yml --ask-become-pass +``` +8. 頛詨�亦蒈�亦鍂撖�蝣� +9. 蝑匧�券�函�����憟𦯀辣�賢�㕑�嘥�峕�琜�䔶蒂銝娍�埝�㕑歲Fail + +## ��滚�躰����𦻖��� + +5044 Port�摔ogstash��滚�� + +5601 Port�摘ibana��滚�� + +9200, 9300 Port�慟lasticsearch��滚�� + +�𧋦隡箸�滚膥��笔�蓥�见�䕘�屸�鞱身����见�见�𡝗��/var/log/dpkg.log��滚�辷�屸�鞱身��撠晍pkg.log銝剔��批捆�誯�榢ilebeat��𥪜�Logstash�𡁜�𡝗�琜�峕�敺峕聢撘誩�𡝗�𥪜縧Elasticsearch嚗䔶�𢁅ibana����� + +雿惩虾隞仿�誯�𦒘耨�㺿�删垢銝餅�笔�蓥�讠�/opt/filebeat/filebeat.yml閮剖�𡁏�枏�𡝗�娍���皞琜�諹�����/opt/logstash/pipeline/dpkg.conf�脰�諹���坔�𡝗�� + +## Logstash ��𡝗�鞱身摰𡁶㮾��𣈯���� + +[grok ��坔飛](https://blog.johnwu.cc/article/elk-logstash-grok-filter.html) + +[grok debug](https://grokdebug.herokuapp.com/) \ No newline at end of file diff --git a/config.yml b/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..071bc61021354b213ed992d912d3807bc7a040ed --- /dev/null +++ b/config.yml @@ -0,0 +1,8 @@ +--- +- hosts: log + remote_user: petercheng + become: yes + tasks: + # ��嘥�见�𣇉頂蝯� + - name: "閮剖�𡁶頂蝯勗��彍" + include_tasks: tasks/config/init.yml \ No newline at end of file diff --git a/install.yml b/install.yml new file mode 100644 index 0000000000000000000000000000000000000000..f83f180c9ee8a00e5c1d880393424863193284bb --- /dev/null +++ b/install.yml @@ -0,0 +1,16 @@ +--- +- hosts: log + remote_user: petercheng + become: yes + tasks: + # ��嘥�见�𣇉頂蝯� + - name: "�函頂蝯望凒�鰵" + include_tasks: tasks/install/init.yml + + # 摰㕑�𨌯ocker + - name: "摰㕑�𨌯ocker" + include_tasks: tasks/install/docker.yml + + # 摰㕑�𨌯ocker-Compose + - name: "摰㕑�𨌯ocker" + include_tasks: tasks/install/docker-compose.yml \ No newline at end of file diff --git a/resources/docker/.env.swp b/resources/docker/.env.swp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/resources/docker/docker-compose.yml b/resources/docker/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..37f652cc4c25275f07c2471c576db9408104abaa --- /dev/null +++ b/resources/docker/docker-compose.yml @@ -0,0 +1,59 @@ +version: '3' +services: + elasticsearch: + image: 'docker.elastic.co/elasticsearch/elasticsearch:7.5.0' + container_name: 'elasticsearch' + networks: + - log-networks + ports: + - 0.0.0.0:9200:9200 + - 0.0.0.0:9300:9300 + volumes: + - ./elasticsearch/data:/usr/share/elasticsearch/data + - ./elasticsearch/config:/usr/share/elasticsearch/config + environment: + - discovery.type=single-node + restart: always + kibana: + image: 'docker.elastic.co/kibana/kibana:7.5.0' + container_name: 'kibana' + networks: + - log-networks + depends_on: + - elasticsearch + ports: + - 0.0.0.0:5601:5601 + volumes: + - ./kibana/config:/usr/share/kibana/config + restart: always + filebeat: + image: 'docker.elastic.co/beats/filebeat:7.5.0' + container_name: 'filebeat' + networks: + - log-networks + volumes: + - /opt/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml + - /opt/filebeat/data:/usr/share/filebeat/data + - /opt/filebeat/logs:/usr/share/filebeat/logs + - /var/log:/log/local + depends_on: + - elasticsearch + - logstash + restart: always + logstash: + image: 'docker.elastic.co/logstash/logstash:7.5.0' + container_name: 'logstash' + networks: + - log-networks + ports: + - 0.0.0.0:5044:5044 + volumes: + - /opt/logstash/config:/usr/share/logstash/config + - /opt/logstash/pipeline:/usr/share/logstash/pipeline + depends_on: + - elasticsearch + restart: always +networks: + log-networks: + driver: bridge + diff --git a/resources/elasticsearch.tar.gz b/resources/elasticsearch.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b938a71591d02a2a29f9d51935663d2cbbdeea3d Binary files /dev/null and b/resources/elasticsearch.tar.gz differ diff --git a/resources/filebeat.tar.gz b/resources/filebeat.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f5a3aa45fc8b0ca36b1dd1212eddf1fd934f81aa Binary files /dev/null and b/resources/filebeat.tar.gz differ diff --git a/resources/kibana.tar.gz b/resources/kibana.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2a6f6d77ee2bde5e8bcfc4889d413c79a6b24e80 Binary files /dev/null and b/resources/kibana.tar.gz differ diff --git a/resources/logstash.tar.gz b/resources/logstash.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b9148f4adbbf2fb5b6bb48dc6e8762c738d9868e Binary files /dev/null and b/resources/logstash.tar.gz differ diff --git a/tasks/config/init.yml b/tasks/config/init.yml new file mode 100644 index 0000000000000000000000000000000000000000..3c869a8e5091755ce956031e767527deab01ca8e --- /dev/null +++ b/tasks/config/init.yml @@ -0,0 +1,59 @@ +--- + - name: "銴�ˊDocker-Compose.yml���删垢璈笔膥" + copy: + src: ./resources/docker/docker-compose.yml + dest: /opt/docker-compose.yml + owner: root + group: root + follow: yes + mode: "644" + - name: "銴�ˊDocker�兛憓�霈𦠜彍���删垢璈笔膥" + copy: + src: ./resources/docker/.env + dest: /opt/.env + owner: root + group: root + follow: yes + mode: "644" + - name: "銴�ˊ�贝�袏lasticsearch����鞈���" + unarchive: + src: ./resources/elasticsearch.tar.gz + dest: /opt + - name: "閮剖�鍃lasticsearch鞈��坔冗甈𢠃��" + file: + path: /opt/elasticsearch/data + mode: "777" + owner: root + group: root + recurse: yes + - name: "銴�ˊ�贝�𤅎ilebeat����鞈���" + unarchive: + src: ./resources/filebeat.tar.gz + dest: /opt + - name: "閮剖�鎄ilebeat鞈��坔冗甈𢠃��" + file: + path: /opt/filebeat/data + mode: "777" + owner: root + group: root + recurse: yes + - name: "閮剖�鎄ilebeat鞈��坔冗甈𢠃��" + file: + path: /opt/filebeat/logs + mode: "777" + owner: root + group: root + recurse: yes + - name: "銴�ˊ�贝�㕙ibana����鞈���" + unarchive: + src: ./resources/kibana.tar.gz + dest: /opt + - name: "銴�ˊ�贝�𥴰ogstash����鞈���" + unarchive: + src: ./resources/logstash.tar.gz + dest: /opt + - name: "�贝�㷉ocker-Compose" + shell: "docker-compose -f /opt/docker-compose.yml up -d --build" + args: + executable: /bin/bash + \ No newline at end of file diff --git a/tasks/install/docker-compose.yml b/tasks/install/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..c194c8ecfd57d7621436a537d1656b2fe9c2796e --- /dev/null +++ b/tasks/install/docker-compose.yml @@ -0,0 +1,19 @@ +--- + #摰��𡃏�𦠜彍 + - shell: echo $(uname -s)-$(uname -m) + register: os + + #摰㕑�𨌯ocker-Compose + - name: "銝贝��Docker-Compose 1.25.0" + get_url: + url: https://github.com/docker/compose/releases/download/1.25.0/docker-compose-{{ os.stdout }} + dest: /usr/local/bin/docker-compose + mode: "755" + - name: "閮剖�鋽ocker-Compose�嘑銵屸����" + file: + src: /usr/local/bin/docker-compose + dest: /usr/bin/docker-compose + owner: root + group: root + state: link + follow: yes \ No newline at end of file diff --git a/tasks/install/docker.yml b/tasks/install/docker.yml new file mode 100644 index 0000000000000000000000000000000000000000..4693cabc7c6babc68ab7b8d80fcae301d5f1737c --- /dev/null +++ b/tasks/install/docker.yml @@ -0,0 +1,44 @@ +--- + #摰��𡃏�𦠜彍 + - shell: echo $(lsb_release -cs) + register: release_name + + #摰㕑�𨌯ocker + - name: "蝘駁膄��羓�㇄ocker" + apt: + pkg: + - docker + - docker-engine + - docker.io + - containerd + - runc + - docker-ce + purge: yes + state: absent + - name: "摰㕑�苷�贝��Docker����銋讠㮾靘脲�批�𦯀辣" + apt: + pkg: + - apt-transport-https + - ca-certificates + - curl + - gnupg-agent + - software-properties-common + state: present + update_cache: yes + - name: "銝贝�匧�㕑�𨌯ocker����銋见�𦯀辣摨亮PG Key" + apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + state: present + - name: "銝贝��Docker憟𦯀辣摨思�皞�" + apt_repository: + repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ release_name.stdout }} stable + state: present + filename: docker.list + - name: "摰㕑�𨌯ocker" + apt: + pkg: + - docker-ce + - docker-ce-cli + - containerd.io + state: present + update_cache: yes \ No newline at end of file diff --git a/tasks/install/init.yml b/tasks/install/init.yml new file mode 100644 index 0000000000000000000000000000000000000000..200ffc538ebd96f9b5b2e9b1fb8a2616dff8a17f --- /dev/null +++ b/tasks/install/init.yml @@ -0,0 +1,6 @@ +--- + +# ��嘥�见�𣇉頂蝯� +- name: "�函頂蝯望凒�鰵" + apt: + upgrade: dist \ No newline at end of file