Для ELK стека (checker + grubber)

Discussion in 'Инструменты' started by molemime, 9 May 2019.

  1. molemime

    molemime Member

    Joined:
    6 Dec 2017
    Messages:
    53
    Likes Received:
    20
    Reputations:
    0
    Писал для себя, но может кому еще пригодится.

    3 скрипта на Python. Чекают доступность службы Elasticsearch на 9200 порту, снимают статистику по имеющимся индексам, смотрят поля (mapping) индекса, а еще если очень лень запускать nmap - резольвят пройденные адреса через dig (PTR запись от DNS провайдера). Полученную информацию хранят в xml файлах, удобно смотреть их на локальном web сервере. На вход идут списки IPv4 с открытым 9200 портом. Тестил только в Linux, но если что - пишите может и в форточках запустим...

    1. grubb.py - Грабит статистику по индексам.
      Code:
      molemime@host:/var/www/elkgrubb$ python grubb.py source.txt
      molemime@host:/var/www/elkgrubb$ ls -l result
      итого 72
      -rw-r--r-- 1 molemime molemime     3 мая  9 02:48 116.62.12.11.xml
      -rw-r--r-- 1 molemime molemime  9587 мая  9 02:52 117.81.232.133.xml
      -rw-r--r-- 1 molemime molemime 12356 мая  9 02:52 119.3.55.15.xml
      -rw-r--r-- 1 molemime molemime  2852 мая  9 02:53 120.26.67.24.xml
      -rw-r--r-- 1 molemime molemime   615 мая  9 02:53 120.55.44.3.xml
      -rw-r--r-- 1 molemime molemime  2468 мая  9 02:53 120.79.79.141.xml
      -rw-r--r-- 1 molemime molemime  6923 мая  9 02:53 121.43.170.117.xml
      -rw-r--r-- 1 molemime molemime 15395 мая  9 02:53 129.232.195.66.xml
      -rw-r--r-- 1 molemime molemime   985 мая  9 02:52 195.181.246.18.xml
      molemime@host:/var/www/elkgrubb$ cat result/120.55.44.3.xml
      <?xml version='1.0'?>
      <document date="1557352380">
          <server>
              <ip>120.55.44.3</ip>
              <cluster_name>elasticsearch</cluster_name>
              <server_name>search.001</server_name>
              <indexes_count>113</indexes_count>
          </server>
          <index id="0">
              <key name="health">yellow</key>
              <key name="status">open</key>
              <key name="index">kuaiyinb_20181008</key>
              <key name="uuid">lXwUK3jFTCupcpV2obxVcw</key>
              <key name="pri">5</key>
              <key name="rep">1</key>
              <key name="docs.count">1274</key>
              <key name="docs.deleted">220</key>
              <key name="store.size">5.9mb</key>
              <key name="pri.store.size">5.9mb</key>
          </index>
      </document>
    2. indexes.py - Анализирует каждый индекс.
      Code:
      molemime@host:/var/www/elkgrubb$ ls -l result
      итого 164
      drwxr-xr-x 2 molemime molemime 118784 мая  9 03:09 116.62.12.11
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 117.81.232.133
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 119.3.55.15
      drwxr-xr-x 2 molemime molemime   4096 мая  9 02:56 120.26.67.24
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 120.55.44.3
      drwxr-xr-x 2 molemime molemime   4096 мая  9 02:56 120.79.79.141
      drwxr-xr-x 2 molemime molemime   4096 мая  9 02:56 121.43.170.117
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 129.232.195.66
      -rw-r--r-- 1 molemime molemime  15395 мая  9 02:53 129.232.195.66.xml
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 195.181.246.18
      molemime@host:/var/www/elkgrubb$ ls result/117.81.232.133
      _activity_record2.xml                     _exam_result_record2.xml
      _attendance_clock_point_record2.xml       _item_class_sale_amount_record3.xml
      _attendance_clock_record2.xml             _item_return_record2.xml
      _attendance_daily_record2.xml             _model_manage_record2.xml
      _attendance_leave_record2.xml             _ownappearance_record2.xml
      _attendance_supplement_clock_record3.xml  _sale_item_record2.xml
      _clean_record1.xml                        _sale_record2.xml
      _competeappearance_record2.xml            _short_item_record2.xml
      _cust_sale_amount_record2.xml             _store_sale_amount_record3.xml
      _cust_sale_amount_record3.xml             _survey_record2.xml
      _cust_sale_store_num_record2.xml          _train_experience_record1.xml
      _exam_record_analyse2.xml                 _train_record2.xml
      molemime@host:/var/www/elkgrubb$ cat result/117.81.232.133/_activity_record2.xml
      <?xml version='1.0'?>
      
      <document date="1557353412.65" server="117.81.232.133">
          <index name="activity_record2" url="http://117.81.232.133:9200/activity_record2/_search">
              <field id="0">createdBy</field>
              <field id="1">deletionDate</field>
              <field id="2">orgName</field>
              <field id="3">lastUpdatedBy</field>
              <field id="4">activityType</field>
              <field id="5">userId</field>
              <field id="6">townId</field>
              <field id="7">loginType</field>
              <field id="8">custName</field>
              <field id="9">termstoreId</field>
              <field id="10">custOrgType</field>
              <field id="11">type</field>
              <field id="12">storeAddr</field>
              <field id="13">phone</field>
              <field id="14">provinceId</field>
              <field id="15">orgDescription</field>
              <field id="16">traderName</field>
              <field id="17">enduserAddress</field>
              <field id="18">createBy</field>
              <field id="19">employeeId</field>
              <field id="20">lastUpdateDate</field>
              <field id="21">custOrgParentId</field>
              <field id="22">orgParentId</field>
              <field id="23">tags</field>
              <field id="24">employeeMobile</field>
              <field id="25">traderCode</field>
              <field id="26">activityId</field>
              <field id="27">termstoreCode</field>
              <field id="28">userCreatedBy</field>
              <field id="29">pictureUrl</field>
              <field id="30">storeType2</field>
              <field id="31">custId</field>
              <field id="32">termstoreShortName</field>
              <field id="33">loginId</field>
              <field id="34">custOrgCode</field>
              <field id="35">creationDate</field>
              <field id="36">traderId</field>
              <field id="37">cardAddr</field>
              <field id="38">orgCode</field>
              <field id="39">storeType1</field>
              <field id="40">usable</field>
              <field id="41">nation</field>
              <field id="42">cityId</field>
              <field id="43">homeAddr</field>
              <field id="44">userCreationDate</field>
              <field id="45">birthday</field>
              <field id="46">custCode</field>
              <field id="47">custOrgCodePath</field>
              <field id="48">employeeCode</field>
              <field id="49">orgType</field>
              <field id="50">userType</field>
              <field id="51">custOrgId</field>
              <field id="52">storeType3</field>
              <field id="53">deletionFlag</field>
              <field id="54">remark</field>
              <field id="55">districtId</field>
              <field id="56">career</field>
              <field id="57">gender</field>
              <field id="58">orgCodePath</field>
              <field id="59">isMarried</field>
              <field id="60">custOrgName</field>
              <field id="61">enduserMobile</field>
              <field id="62">employeeIdCard</field>
              <field id="63">orgId</field>
              <field id="64">termstoreName</field>
              <field id="65">guiderCustomerId</field>
              <field id="66">enduserName</field>
              <field id="67">userName</field>
              <field id="68">employeeName</field>
          </index>
      </document>
    3. lookup.py - Резольвит отработанные IP адреса.
      Code:
      molemime@host:/var/www/elkgrubb$ python lookup.py
      molemime@host:/var/www/elkgrubb$ ls -l result
      итого 168
      drwxr-xr-x 2 molemime molemime 118784 мая  9 03:09 116.62.12.11
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 117.81.232.133
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 119.3.55.15
      drwxr-xr-x 2 molemime molemime   4096 мая  9 02:56 120.26.67.24
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 120.55.44.3
      drwxr-xr-x 2 molemime molemime   4096 мая  9 02:56 120.79.79.141
      drwxr-xr-x 2 molemime molemime   4096 мая  9 02:56 121.43.170.117
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 129.232.195.66
      -rw-r--r-- 1 molemime molemime  15395 мая  9 02:53 129.232.195.66.xml
      drwxr-xr-x 2 molemime molemime   4096 мая  9 03:10 195.181.246.18
      -rw-r--r-- 1 molemime molemime    678 мая  9 03:21 nslookup_all.xml
      molemime@host:/var/www/elkgrubb$ cat result/nslookup_all.xml
          <nslookup domain="rdns1.alidns.com.">
                  120.55.44.3</nslookup>
          <nslookup domain="ns1.host-h.net.">
                  129.232.195.66</nslookup>
          <nslookup domain="hidden-master.aliyun.com.">
                  121.43.170.117</nslookup>
          <nslookup domain="rdns1.alidns.com.">
                  120.79.79.141</nslookup>
          <nslookup domain="ecs-119-3-55-15.compute.hwclouds-dns.com.">
                  119.3.55.15</nslookup>
          <nslookup domain="133.232.81.117.broad.sz.js.dynamic.163data.com.cn.">
                  117.81.232.133</nslookup>
          <nslookup domain="94599.s.time4vps.cloud.">
                  195.181.246.18</nslookup>
          <nslookup domain="rdns1.alidns.com.">
                  116.62.12.11</nslookup>
          <nslookup domain="hidden-master.aliyun.com.">
                  120.26.67.24</nslookup>
    Скачать: Yandex.Disk
     
    #1 molemime, 9 May 2019
    Last edited: 9 May 2019