diff --git a/install_config/group_vars/packet_dump_server.yml b/install_config/group_vars/packet_dump_server.yml new file mode 100644 index 0000000..dc73e2f --- /dev/null +++ b/install_config/group_vars/packet_dump_server.yml @@ -0,0 +1,22 @@ +nic_mgr: + name: eth0 + +log_kafkabrokers: + address: ['1.1.1.1:9092','2.2.2.2:9092'] + +packet_dump_log_level: 10 + +breakpad_upload_url: http://127.0.0.1:9000/api/2/minidump/?sentry_key=3556bac347c74585a994eb6823faf5c6 + +dump_rtp_pcap: + aws_access_key_id: "default" + aws_secret_access_key: "default" + aws_session_token: "c21f969b5f03d33d43e04f8f136e7682" + consume_bootstrap_servers: ['192.168.44.14:9092'] + endpoint_url: "http://192.168.44.67:9098/hos/" + produce_bootstrap_servers: "192.168.44.14:9092" + queue_size: 5000000 + coroutine_max_num: 200 + coroutine_num: 100 + qfull_mode: 0 + qfull_interval: 5 \ No newline at end of file diff --git a/install_config/hosts b/install_config/hosts index ab8e1fb..c40caa0 100644 --- a/install_config/hosts +++ b/install_config/hosts @@ -1,3 +1,3 @@ [mirror_traffic] - +[packet_dump_server] diff --git a/packet_dump_server.yml b/packet_dump_server.yml new file mode 100644 index 0000000..ebbacd0 --- /dev/null +++ b/packet_dump_server.yml @@ -0,0 +1,8 @@ +- hosts: packet_dump_server + remote_user: root + vars_files: + - install_config/group_vars/packet_dump_server.yml + roles: + - {role: framework, tags: framework} + - {role: packet_dump, tags: packet_dump} + - {role: dump_rtp_pcap, tags: dump_rtp_pcap} \ No newline at end of file diff --git a/roles/dump_rtp_pcap/files/dump_rtp_pcap-1.0.2.445da24-2.el7.x86_64.rpm b/roles/dump_rtp_pcap/files/dump_rtp_pcap-1.0.2.445da24-2.el7.x86_64.rpm new file mode 100644 index 0000000..5e83bb1 Binary files /dev/null and b/roles/dump_rtp_pcap/files/dump_rtp_pcap-1.0.2.445da24-2.el7.x86_64.rpm differ diff --git a/roles/dump_rtp_pcap/tasks/main.yml b/roles/dump_rtp_pcap/tasks/main.yml new file mode 100644 index 0000000..5f863fb --- /dev/null +++ b/roles/dump_rtp_pcap/tasks/main.yml @@ -0,0 +1,22 @@ +- name: "dump-rtp-pcap: copy dump-rtp-pcap rpm package to destination" + copy: + src: "{{ role_path }}/files/" + dest: /tmp/ansible_deploy/ + +- name: "dump-rtp-pcap: install dump-rtp-pcap rpm from localhost" + yum: + name: + - /tmp/ansible_deploy/dump_rtp_pcap-1.0.2.445da24-2.el7.x86_64.rpm + state: present + +- name: "dump-rtp-pcap: Template the dump_rtp_pcap.json" + template: + src: "{{ role_path }}/templates/dump_rtp_pcap.json.j2" + dest: /home/mesasoft/dump_rtp_pcap/dump_rtp_pcap.json + tags: template + +- name: "start dump_rtp_pcap" + systemd: + name: dump_rtp_pcap.service + enabled: yes + daemon_reload: yes diff --git a/roles/dump_rtp_pcap/templates/dump_rtp_pcap.json.j2 b/roles/dump_rtp_pcap/templates/dump_rtp_pcap.json.j2 new file mode 100644 index 0000000..08dfdcf --- /dev/null +++ b/roles/dump_rtp_pcap/templates/dump_rtp_pcap.json.j2 @@ -0,0 +1,23 @@ +{ + "endian":"little", + "aws_access_key_id": "{{ dump_rtp_pcap.aws_access_key_id }}", + "aws_secret_access_key": "{{ dump_rtp_pcap.aws_secret_access_key }}", + "aws_session_token": "{{ dump_rtp_pcap.aws_session_token }}", + "bucket_name": "rtp-log", + "consume_auto_offset_reset":"latest", + "consume_bootstrap_servers": ["{{ dump_rtp_pcap.consume_bootstrap_servers | join("\",\"") }}"], + "consume_topic": "INTERNAL-RTP-LOG", + "endpoint_url": "{{ dump_rtp_pcap.endpoint_url }}", + "file_prefix":"rtp_log", + "group_id": "rtp-log-1", + "produce_bootstrap_servers": "{{ dump_rtp_pcap.produce_bootstrap_servers }}", + "produce_topic": "VOIP-RECORD-LOG", + "region_name": "us-east-1", + "save_speed_emit_interval":30, + "upload_speed_emit_interval":30, + "queue_size":{{ dump_rtp_pcap.queue_size }}, + "coroutine_max_num":{{ dump_rtp_pcap.coroutine_max_num }}, + "coroutine_num":{{ dump_rtp_pcap.coroutine_num }}, + "qfull_mode":{{ dump_rtp_pcap.qfull_mode }}, + "qfull_interval":{{ dump_rtp_pcap.qfull_interval }} +} diff --git a/roles/packet_dump/files/packet_dump-1.0.8.2e723ab-2.el7.x86_64.rpm b/roles/packet_dump/files/packet_dump-1.0.8.2e723ab-2.el7.x86_64.rpm new file mode 100644 index 0000000..cb35f20 Binary files /dev/null and b/roles/packet_dump/files/packet_dump-1.0.8.2e723ab-2.el7.x86_64.rpm differ diff --git a/roles/packet_dump/files/packet_dump.service b/roles/packet_dump/files/packet_dump.service new file mode 100644 index 0000000..7afe11c --- /dev/null +++ b/roles/packet_dump/files/packet_dump.service @@ -0,0 +1,19 @@ +[Unit] +Description=packet dump service +After=After=network.target + +[Service] +Type=fork +WorkingDirectory=/home/mesasoft/packet_dump +ExecStart=/home/mesasoft/packet_dump/packet_dump +TimeoutSec=60s +RestartSec=10s +Restart=always +LimitNOFILE=524288 +LimitNPROC=infinity +LimitCORE=infinity +TasksMax=infinity +Delegate=yes + +[Install] +WantedBy=multi-user.target diff --git a/roles/packet_dump/files/systemd_exporter b/roles/packet_dump/files/systemd_exporter new file mode 100644 index 0000000..b075967 Binary files /dev/null and b/roles/packet_dump/files/systemd_exporter differ diff --git a/roles/packet_dump/tasks/main.yml b/roles/packet_dump/tasks/main.yml new file mode 100644 index 0000000..fc15304 --- /dev/null +++ b/roles/packet_dump/tasks/main.yml @@ -0,0 +1,63 @@ +- name: "copy packet_dump rpm to destination server" + copy: + src: "{{ role_path }}/files/packet_dump-1.0.8.2e723ab-2.el7.x86_64.rpm" + dest: /tmp/ansible_deploy/ + +- name: "copy packet_dump.service to destination server" + copy: + src: "{{ role_path }}/files/packet_dump.service" + dest: /usr/lib/systemd/system + mode: 0755 + +- name: "install packet_dump rpm from localhost" + yum: + name: + - /tmp/ansible_deploy/packet_dump-1.0.8.2e723ab-2.el7.x86_64.rpm + state: present + +- name: "Template the packet_dump.conf" + template: + src: "{{ role_path }}/templates/packet_dump.conf.j2" + dest: /home/mesasoft/packet_dump/conf/packet_dump.conf + tags: template + +- name: "create /var/www/html/troubleshooting" + file: + path: /var/www/html/troubleshooting + state: directory + +- name: "mkdir /opt/packet-dump-exporter/" + file: + path: /opt/packet-dump-exporter/ + state: directory + +- name: "copy systemd_exporter" + copy: + src: '{{ role_path }}/files/systemd_exporter' + dest: /opt/packet-dump-exporter/systemd_exporter + mode: 0755 + +- name: "templates packet-dump-exporter-systemd.service" + template: + src: "{{role_path}}/templates/packet-dump-exporter-systemd.service.j2" + dest: /usr/lib/systemd/system/packet-dump-exporter-systemd.service + tags: template + +- name: "start packet_dump" + systemd: + name: packet_dump.service + enabled: yes + daemon_reload: yes + +- name: "enable httpd" + systemd: + name: httpd + enabled: yes + daemon_reload: yes + +- name: 'packet-dump-exporter-systemd service start' + systemd: + name: packet-dump-exporter-systemd + enabled: yes + daemon_reload: yes + state: restarted diff --git a/roles/packet_dump/templates/packet-dump-exporter-systemd.service.j2 b/roles/packet_dump/templates/packet-dump-exporter-systemd.service.j2 new file mode 100644 index 0000000..2e99629 --- /dev/null +++ b/roles/packet_dump/templates/packet-dump-exporter-systemd.service.j2 @@ -0,0 +1,11 @@ +[Unit] +Description=Systemd Exporter +After=network.target + +[Service] +Type=simple +ExecStart=/opt/packet-dump-exporter/systemd_exporter --web.disable-exporter-metrics +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/roles/packet_dump/templates/packet_dump.conf.j2 b/roles/packet_dump/templates/packet_dump.conf.j2 new file mode 100644 index 0000000..a0727ed --- /dev/null +++ b/roles/packet_dump/templates/packet_dump.conf.j2 @@ -0,0 +1,17 @@ +[KAFKA] +BROKER_LIST={{ log_kafkabrokers.address | join(",")}} +KAFKA_OFFSET=largest + +[SYSTEM] +NIC_NAME={{ nic_mgr.name }} +LOG_LEVEL={{ packet_dump_log_level }} +LOG_PATH=log/packet_dump +PCAPNG_FILEPATH_PREFIX=/troubleshooting/ +PCAPNG_BASEPATH_PREFIX=/var/www/html/ + +[breakpad] +disable_coredump=1 +enable_breakpad=1 +breakpad_minidump_dir=/tmp/packet_dump/crashreport +enable_breakpad_upload=1 +breakpad_upload_url={{ breakpad_upload_url }}