title: Zabbix LLD Value should be a JSON object
body: <p>Alright! Following is the scenario with respective queries:</p>
  
  <p>1) I am using a bash script to generate JSON object for status of custom processes.</p>
  
  <p>2) Providing the bash inside zabbix_agentd.conf file:</p>
  
  <pre><code>UserParameter=service.check[*],/usr/lib/zabbix/externalscripts/service_check.bash
  </code></pre>
  
  <p>I want to provide the process names as parameters to the bash file here in UserParameter, how do I do that?</p>
  
  <p>3) Restarting the zabbix-agent and checking with <code>zabbix-get</code> yields an empty JSON (because we have not given any process names):</p>
  
  <pre><code>{
      "data":[
  
  
      ]
  }
  </code></pre>
  
  <p>4) If I provide a process name into UserParameter as:</p>
  
  <pre><code>UserParameter=service.check[*],/usr/lib/zabbix/externalscripts/service_check.bash apache2 ntp cron
  </code></pre>
  
  <p>It yields the following:</p>
  
  <pre><code>{
       "data":[
  </code></pre>
  
  <p>which I know is wrong, since I need to pass the process names in a different way. I tried passing them inside the bash script and even then it generates an invalid json as above.</p>
  
  <p>5) The JSON generated will be taken care by the Zabbix discovery rule of type "Zabbix agent", where it will create different items out of process names. Following is the JSON that my script should send:</p>
  
  <pre><code>{"data":[{"{#NAME}":"apache2","{#STATUS}":"RUNNING","{#VALUE}":"1"},{"{#NAME}":"ntp","{#STATUS}":"RUNNING","{#VALUE}":"1"},{"{#NAME}":"cron","{#STATUS}":"STOPPED","{#VALUE}":"0"}]}
  </code></pre>
  
  <p>I could have used <code>zabbix-sender</code> for the same, but it would need me to run the sender for every key-value that I need to send. Also, this way I have to be concerned with manipulating data at one place only, and the rest will be taken care of.</p>
  
  <p>Hope this is clear enough and explains my situation.</p>