<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: how to write a simple miner documentation in General Topics</title>
    <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158651#M99415</link>
    <description>&lt;P&gt;hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Great - one last question. &amp;nbsp;What if I have a comma delimited file that I want to parse various fields out of. &amp;nbsp;For example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;#IP, date, category, ...&lt;/P&gt;
&lt;P&gt;1.1.1., 2017-01-01, bot, ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks...&lt;/P&gt;</description>
    <pubDate>Mon, 29 May 2017 19:18:38 GMT</pubDate>
    <dc:creator>vb0398</dc:creator>
    <dc:date>2017-05-29T19:18:38Z</dc:date>
    <item>
      <title>how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/156793#M99405</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;I'm a new user, so hopefully this is a simple question.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I installed minemeld via source code on ubuntu 14.04 using the instructions on this page :&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;A href="https://github.com/PaloAltoNetworks/minemeld-ansible" target="_blank"&gt;https://github.com/PaloAltoNetworks/minemeld-ansible&lt;/A&gt;&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;The installation went smoothly and there were no errors.&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;I then went through the exercise of writing a test miner using these instructions : &amp;nbsp;&lt;A href="https://github.com/PaloAltoNetworks/minemeld/wiki/How-To-Write-a-Simple-Miner" target="_blank"&gt;https://github.com/PaloAltoNetworks/minemeld/wiki/How-To-Write-a-Simple-Miner&lt;/A&gt;&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;I create the ytexample.py file in the detailed directory, replaced&amp;nbsp;&lt;SPAN&gt;/opt/minemeld/local/config/committed-config.yml with the node information available in the "How-To.." webpage, and restarted the minemeld service. &amp;nbsp;From this point, I check the minemeld-engine.log file, and I see the following error:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;minemeld-engine.log:2017-05-15T23:46:45 (14879)config._load_and_validate_config_from_file ERROR: Invalid config /opt/minemeld/local/config/committed-config.yml: Unknown node class minemeld.ft.ytexample.YTExample in testYT&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;Has anybody seen this error before?&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;Thanks...&lt;/P&gt;</description>
      <pubDate>Mon, 15 May 2017 23:51:19 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/156793#M99405</guid>
      <dc:creator>vb0398</dc:creator>
      <dc:date>2017-05-15T23:51:19Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/157003#M99406</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/63193"&gt;@vb0398&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;that guide should be updated, there are 2 additional steps:&lt;/P&gt;
&lt;P&gt;- open the file nodes.json in the main directory of the minemeld engine and add the following to the dictionary of nodes:&lt;/P&gt;
&lt;PRE&gt;[...]
},
&lt;STRONG&gt;"minemeld.ft.ytexample.YTExample": {"class": "minemeld.ft.ytexample.YTExample"}&lt;/STRONG&gt;
}&lt;/PRE&gt;
&lt;P&gt;- run "/opt/minemeld/engine/current/bin/pip install -e /opt/minemeld/engine/core"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NOTE&lt;/STRONG&gt;: If you are looking into&amp;nbsp;creating a new Miner my suggestion is to use external extensions, they are more flexible and agile. The same code of the Miner in the guide has been packaged as an extension here:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/PaloAltoNetworks/youtube-miner" target="_blank"&gt;https://github.com/PaloAltoNetworks/youtube-miner&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 17 May 2017 07:03:41 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/157003#M99406</guid>
      <dc:creator>lmori</dc:creator>
      <dc:date>2017-05-17T07:03:41Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/157330#M99407</link>
      <description>&lt;P&gt;Hi &lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;&amp;nbsp;- Thanks for your reply.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I did those last 2 steps, and it still doesn't work. &amp;nbsp;The error this time in the minemeld-engine.log :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ImportError: No module named YTExample&lt;BR /&gt;ImportError: No module named YTExample&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I will go ahead and try the extension route.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 May 2017 07:26:20 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/157330#M99407</guid>
      <dc:creator>vb0398</dc:creator>
      <dc:date>2017-05-19T07:26:20Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/157332#M99408</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/63193"&gt;@vb0398&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;it seems that python is not able to find the YTExample module containing the Miner class.&lt;/P&gt;
&lt;P&gt;Please could you attach the nodes.json file&amp;nbsp;? is the YTExample.py in minemeld/ft directory ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;luigi&lt;/P&gt;</description>
      <pubDate>Fri, 19 May 2017 07:49:50 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/157332#M99408</guid>
      <dc:creator>lmori</dc:creator>
      <dc:date>2017-05-19T07:49:50Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/157482#M99409</link>
      <description>&lt;P&gt;hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;In your documentation, it says to name the file, 'ytexample.py' - all lowercase, and that is the name of the file in the "/opt/minemeld/engine/core/minemeld/ft" directory. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Attached the nodes.json file&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 May 2017 17:56:15 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/157482#M99409</guid>
      <dc:creator>vb0398</dc:creator>
      <dc:date>2017-05-19T17:56:15Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158253#M99410</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/63193"&gt;@vb0398&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;sorry for the late reply. There is a typo in you nodes.json file, the line should read:&lt;/P&gt;
&lt;PRE&gt;[...]
    "minemeld.ft.ytexample.YTExample": {
        "class": "minemeld.ft.ytexample&lt;STRONG&gt;:&lt;/STRONG&gt;YTExample"
    }
[...]&lt;/PRE&gt;
&lt;P&gt;instead in your file you have:&lt;/P&gt;
&lt;PRE&gt;[...]
    "minemeld.ft.ytexample.YTExample": {
        "class": "minemeld.ft.ytexample.YTExample"
    }
[...]&lt;/PRE&gt;
&lt;P&gt;(":" is a Python thing)&lt;/P&gt;</description>
      <pubDate>Thu, 25 May 2017 05:50:10 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158253#M99410</guid>
      <dc:creator>lmori</dc:creator>
      <dc:date>2017-05-25T05:50:10Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158573#M99411</link>
      <description>&lt;P&gt;Ah - ok - corrected nodes.json - same error...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; "class": "minemeld.ft.threatq:Export"&lt;BR /&gt; },&lt;BR /&gt; "minemeld.ft.tmt.DTIAPI": {&lt;BR /&gt; "class": "minemeld.ft.tmt:DTIAPI"&lt;BR /&gt; },&lt;BR /&gt; "minemeld.ft.vt.Notifications": {&lt;BR /&gt; "class": "minemeld.ft.vt:Notifications"&lt;BR /&gt; },&lt;BR /&gt; "minemeld.ft.mm.JSONSEQMiner": {&lt;BR /&gt; "class": "minemeld.ft.mm:JSONSEQMiner"&lt;BR /&gt; },&lt;BR /&gt; "minemeld.ft.ytexample.YTExample": {&lt;BR /&gt; "class": "minemeld.ft.ytexample.YTExample"&lt;BR /&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;2017-05-28T23:57:10 (6730)launcher.main INFO: multiprocessing: #cores: 1&lt;BR /&gt;2017-05-28T23:57:10 (6730)launcher.main INFO: multiprocessing: max #chassis: 1&lt;BR /&gt;2017-05-28T23:57:10 (6730)launcher.main INFO: Number of chassis: 1&lt;BR /&gt;2017-05-28T23:57:10 (6734)loader.load INFO: Loading minemeld_nodes:minemeld.ft.ytexample.YTExample&lt;BR /&gt;2017-05-28T23:57:10 (6734)launcher._run_chassis ERROR: Exception in chassis main procedure&lt;BR /&gt;Traceback (most recent call last):&lt;BR /&gt; File "/opt/minemeld/engine/core/minemeld/run/launcher.py", line 53, in _run_chassis&lt;BR /&gt; c.configure(fts)&lt;BR /&gt; File "/opt/minemeld/engine/core/minemeld/chassis.py", line 102, in configure&lt;BR /&gt; config=ftconfig.get('config', {})&lt;BR /&gt; File "/opt/minemeld/engine/core/minemeld/ft/__init__.py", line 5, in factory&lt;BR /&gt; node_class = load(MM_NODES_ENTRYPOINT, classname)&lt;BR /&gt; File "/opt/minemeld/engine/core/minemeld/loader.py", line 128, in load&lt;BR /&gt; return mmep.ep.load()&lt;BR /&gt; File "/opt/minemeld/engine/current/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2302, in load&lt;BR /&gt; return self.resolve()&lt;BR /&gt; File "/opt/minemeld/engine/current/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2308, in resolve&lt;BR /&gt; module = __import__(self.module_name, fromlist=['__name__'], level=0)&lt;BR /&gt;&lt;STRONG&gt;ImportError: No module named YTExample&lt;/STRONG&gt;&lt;BR /&gt;Process Process-1:&lt;BR /&gt;Traceback (most recent call last):&lt;BR /&gt; File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap&lt;BR /&gt; self.run()&lt;BR /&gt; File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run&lt;BR /&gt; self._target(*self._args, **self._kwargs)&lt;BR /&gt; File "/opt/minemeld/engine/core/minemeld/run/launcher.py", line 53, in _run_chassis&lt;BR /&gt; c.configure(fts)&lt;BR /&gt; File "/opt/minemeld/engine/core/minemeld/chassis.py", line 102, in configure&lt;BR /&gt; config=ftconfig.get('config', {})&lt;BR /&gt; File "/opt/minemeld/engine/core/minemeld/ft/__init__.py", line 5, in factory&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At this point, this is just an exercise for me, and I think I'm going to punt. &amp;nbsp;Really, I'm interested in generating&amp;nbsp;a process to download a feed of IP addresses. &amp;nbsp;Does that just involve making a prototype?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 29 May 2017 00:23:07 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158573#M99411</guid>
      <dc:creator>vb0398</dc:creator>
      <dc:date>2017-05-29T00:23:07Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158582#M99412</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/63193"&gt;@vb0398&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;what is the protocol and format of the IP address list you want to pull ? Chances you just a need a prototype for it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Looking at you nodes.json you still have a dot instead of a colon in the&amp;nbsp;&lt;SPAN&gt;minemeld.ft.ytexample.YTExample entrypoint between minemeld.ft.ytexample and YTExample, it should look like this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;"minemeld.ft.ytexample.YTExample": {
"class": "minemeld.ft.ytexample:YTExample"
}&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN&gt;after fixing this you should run:&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;sudo -u minemeld /opt/minemeld/engine/current/bin/pip install -e /opt/minemeled/engine/core/&lt;/PRE&gt;</description>
      <pubDate>Mon, 29 May 2017 06:43:47 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158582#M99412</guid>
      <dc:creator>lmori</dc:creator>
      <dc:date>2017-05-29T06:43:47Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158647#M99413</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; Got it...I thought I made the appropriate changes, but it looks like I didn't. &amp;nbsp;Now it works - thanks again..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regarding what I'm really trying to do:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm downloading an IP list feed via HTTPS. &amp;nbsp;There are some comments at the top of the file, and then there's just an IP per line.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Perhaps something like the zeustracker prototype would be similar? &amp;nbsp;(i.e.,&amp;nbsp;&lt;A href="https://github.com/PaloAltoNetworks/minemeld-node-prototypes/blob/master/prototypes/zeustracker.yml" target="_blank"&gt;https://github.com/PaloAltoNetworks/minemeld-node-prototypes/blob/master/prototypes/zeustracker.yml&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 29 May 2017 17:54:39 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158647#M99413</guid>
      <dc:creator>vb0398</dc:creator>
      <dc:date>2017-05-29T17:54:39Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158648#M99414</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/63193"&gt;@vb0398&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;for a simple text file feed over HTTP you don't need a new class of Miner as there is already one implementing that protocol and format (minemeld.ft.http.HttpFT).&lt;/P&gt;
&lt;P&gt;Suggestion, do this:&lt;/P&gt;
&lt;P&gt;- in CONFIG click on the hamburger icon (bottom right) and search the prototype openbl.base&lt;/P&gt;
&lt;P&gt;- click on the prototype and then click NEW, this will create a local copy of the prototype and you can change name and config&lt;/P&gt;
&lt;P&gt;- in the config section of the new prototype modify the URL to point to your feed, the source_name, the confidence&lt;/P&gt;
&lt;P&gt;- using the ignore_regex field you can specify regular expression to filter out the comments. The one in openbl.base will ignore all the lines starting with #&lt;/P&gt;
&lt;P&gt;- you can then click OK to save the prototype and use it for a new Miner&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the engine does not start when you commit, just check the minemeld-engine.logs file to see the error in the prototype. You can then create a new version of the prototype with the fixes and use it for another Miner.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;luigi&lt;/P&gt;</description>
      <pubDate>Mon, 29 May 2017 18:13:17 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158648#M99414</guid>
      <dc:creator>lmori</dc:creator>
      <dc:date>2017-05-29T18:13:17Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158651#M99415</link>
      <description>&lt;P&gt;hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Great - one last question. &amp;nbsp;What if I have a comma delimited file that I want to parse various fields out of. &amp;nbsp;For example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;#IP, date, category, ...&lt;/P&gt;
&lt;P&gt;1.1.1., 2017-01-01, bot, ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks...&lt;/P&gt;</description>
      <pubDate>Mon, 29 May 2017 19:18:38 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158651#M99415</guid>
      <dc:creator>vb0398</dc:creator>
      <dc:date>2017-05-29T19:18:38Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158653#M99416</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/63193"&gt;@vb0398&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;you could have success using minemeld.ft.csv.CSVFT class to parse the CSV file and skip the comment using the ignore_regex parameter. See the docs about the parameters accepted by that Miner class here:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/PaloAltoNetworks/minemeld-core/blob/master/docs/nodeconfig.rst" target="_blank"&gt;https://github.com/PaloAltoNetworks/minemeld-core/blob/master/docs/nodeconfig.rst&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And you can use bambenekconsulting.&lt;SPAN&gt;c2_ipmasterlist as a starting prototype for your experiments.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 29 May 2017 19:43:36 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158653#M99416</guid>
      <dc:creator>lmori</dc:creator>
      <dc:date>2017-05-29T19:43:36Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158741#M99417</link>
      <description>&lt;P&gt;hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; Thanks for all your help so far...one other question - if the feed you're downloading is gzipped, what is the appropriate way to gunzip the file for processing within minemeld?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;thanks...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2017 21:37:58 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158741#M99417</guid>
      <dc:creator>vb0398</dc:creator>
      <dc:date>2017-05-30T21:37:58Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158743#M99418</link>
      <description>&lt;P&gt;If the file is compressed by the HTTP Server on the fly (&lt;A href="https://en.wikipedia.org/wiki/HTTP_compression" target="_blank"&gt;https://en.wikipedia.org/wiki/HTTP_compression&lt;/A&gt;) in gzip, the python library used by the CSV and HTTP Miner (that is python requests) should automatically take care of decompressing the file.&lt;/P&gt;
&lt;P&gt;If instead the feed is contained in&amp;nbsp;a gzip file you need a new Miner subclassing the HTTP or CSV Miner to decmpress gzip on the fly. This is possible and easy to do but it requires some coding.&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2017 21:59:52 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/158743#M99418</guid>
      <dc:creator>lmori</dc:creator>
      <dc:date>2017-05-30T21:59:52Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/159045#M99419</link>
      <description>&lt;P&gt;hi&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Thanks for your reply. &amp;nbsp;Actually, the file is stored on the webserver gzipped, so I think I will need to code something myself to gunzip the file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there an example somewhere I can look at for reference?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2017 21:49:13 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/159045#M99419</guid>
      <dc:creator>vb0398</dc:creator>
      <dc:date>2017-06-01T21:49:13Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/186596#M99420</link>
      <description>&lt;P&gt;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for the additional tips, it'd be great to get those in the documentation if possible. I mean these two additional steps:&lt;/P&gt;
&lt;P&gt;that guide should be updated, there are 2 additional steps:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face="arial black,avant garde"&gt;open the file nodes.json in the main directory of the minemeld engine and add the corresponding dictionary entry&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face="arial black,avant garde"&gt;run "/opt/minemeld/engine/current/bin/pip install -e /opt/minemeld/engine/core"&lt;/FONT&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Actually, do you think we could get a guide on writing external extensions? Maybe it could replace the existing "write a simple miner" guide in the wiki.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I had the same issues in writing my miner (this one for Imperva's "Incapsula" cloud WAF public IP ranges), though after rebooting the VM it seems to have successfully updated everything and the miner is functional. I'm attaching the following files:&lt;/P&gt;
&lt;PRE&gt;/opt/minemeld/engine/core/minemeld/ft/incapsula.py
/opt/minemeld/local/prototypes/incapsula.yml
/opt/minemeld/engine/core/nodes.json&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've looked at the youtube-miner repo but as a non-developer would find it a little helpful to get a high-level outline of the required structure for an external extension. It would be nice to be able to rewrite this standard miner as an extension.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks again!&lt;/P&gt;
&lt;P&gt;Nasir&lt;/P&gt;</description>
      <pubDate>Sun, 12 Nov 2017 22:15:55 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/186596#M99420</guid>
      <dc:creator>nbilal</dc:creator>
      <dc:date>2017-11-12T22:15:55Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/187994#M99421</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11678"&gt;@lmori&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've been trying to rewrite my incapsula miner as an external extension by parroting the youtube-miner example, but after installing it via the external extension menu under System &amp;gt; Extensions &amp;gt; Git and successfully activating it, I get the "COMMIT FAILED: Unknown node class minemeld.ft.incapsula.IPv4 in miner_incapsula_ipv4" in the web UI.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am attaching my minemeld-engine.log, minemeld-web.log, and supervisor.log. Also, here is the link to the github repo containing the extension:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/bilalbox/incapsula-miner" target="_blank"&gt;https://github.com/bilalbox/incapsula-miner&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd be very appreciative of any pointers you could provide! I'm assuming there is some additional config required in my extension in order to force an update the local nodes.json in my minemeld VM?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Nasir&lt;/P&gt;</description>
      <pubDate>Mon, 20 Nov 2017 15:44:59 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/187994#M99421</guid>
      <dc:creator>nbilal</dc:creator>
      <dc:date>2017-11-20T15:44:59Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/187998#M99422</link>
      <description>&lt;P&gt;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/18892"&gt;@nbilal&lt;/a&gt; : There are a couple of issues.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First, you're duplicating entry points in the minemeld.json file. The second entry should be "&lt;SPAN class="pl-s"&gt;incapsulaminer.IPv6&lt;SPAN class="pl-pds"&gt;" instead of&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN class="pl-s"&gt;&lt;SPAN class="pl-pds"&gt;"&lt;/SPAN&gt;incapsulaminer.node:IPv4".&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="pl-s"&gt;Then, in the prototype file (incapsula.yml), you should reference these entry points (incapsulaminer.IPv4 and incapsulaminer.IPv6) instead of the non-existant ones &lt;STRONG&gt;minemeld.ft.&lt;/STRONG&gt;incapsula.IPv4 and &lt;STRONG&gt;minemeld.ft.&lt;/STRONG&gt;incapsula.IPv6&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Nov 2017 15:57:11 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/187998#M99422</guid>
      <dc:creator>xhoms</dc:creator>
      <dc:date>2017-11-20T15:57:11Z</dc:date>
    </item>
    <item>
      <title>Re: how to write a simple miner documentation</title>
      <link>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/188015#M99423</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/6710"&gt;@xhoms&lt;/a&gt;.&amp;nbsp;...rookie mistakes! I also had to fix a bad import statement (minemeld.ft can be referenced as "." in a local miner, but the full path "minemeld.ft.x" must be given in the external extension).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are good to go!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks again for your support,&lt;/P&gt;
&lt;P&gt;Nasir&lt;/P&gt;</description>
      <pubDate>Mon, 20 Nov 2017 17:34:27 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-topics/how-to-write-a-simple-miner-documentation/m-p/188015#M99423</guid>
      <dc:creator>nbilal</dc:creator>
      <dc:date>2017-11-20T17:34:27Z</dc:date>
    </item>
  </channel>
</rss>

