{ 
    "id": "CiscoMeraki",
    "title": "[Deprecated] Cisco Meraki", 
    "publisher": "Cisco", 
    "descriptionMarkdown": "The [Cisco Meraki](https://meraki.cisco.com/) connector allows you to easily connect your Cisco Meraki (MX/MR/MS) logs with Microsoft Sentinel. This gives you more insight into your organization's network and improves your security operation capabilities.", 
    "additionalRequirementBanner":"These queries are dependent on a parser based on a Kusto Function deployed as part of the solution.",
    "graphQueries": [ 
     { 
         "metricName": "Total data received", 
         "legend": "CiscoMeraki", 
         "baseQuery": "CiscoMeraki" 
     } 
    ], 
          "sampleQueries": [ 
           { 
               "description" : "Total Events by Log Type", 
               "query": "CiscoMeraki \n | summarize count() by LogType"    
           },
        {
            "description" : "Top 10 Blocked Connections",
            "query": "CiscoMeraki \n | where LogType == \"security_event\" \n | where Action == \"block\" \n | summarize count() by SrcIpAddr, DstIpAddr, Action, Disposition \n | top 10 by count_"  
        }
        ], 
            "dataTypes": [ 
            { 
               "name": "CiscoMeraki", 
               "lastDataReceivedQuery": "CiscoMeraki \n            | summarize Time = max(TimeGenerated)\n            | where isnotempty(Time)" 
            } 
        ], 
             "connectivityCriterias": [ 
                { 
                    "type": "IsConnectedQuery", 
                    "value": [ 
                    "CiscoMeraki \n      | summarize LastLogReceived = max(TimeGenerated)\n            | project IsConnected = LastLogReceived > ago(7d)" 
             ] 
                } 
            ], 
            "availability": { 
            "status": 1,
            "isPreview": false
            }, 
            "permissions": { 
            "resourceProvider": [ 
                   { 
                       "provider": "Microsoft.OperationalInsights/workspaces", 
                       "permissionsDisplayText": "write permission is required.", 
                       "providerDisplayName": "Workspace", 
                       "scope": "Workspace", 
                       "requiredPermissions": { 
                       "write": true, 
                       "delete": true 
                    } 
                } 
            ],
            "customs": [
                {
                    "name": "Cisco Meraki",
                    "description": "must be configured to export logs via Syslog"
                }
            ]
    }, 
            "instructionSteps": [
                { 
                    "title": "", 
                    "description": "**NOTE:** This data connector depends on a parser based on a Kusto Function to work as expected which is deployed as part of the solution. To view the function code in Log Analytics, open Log Analytics/Microsoft Sentinel Logs blade, click Functions and search for the alias CiscoMeraki and load the function code or click [here](https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/CiscoMeraki/Parsers/CiscoMeraki.txt). The function usually takes 10-15 minutes to activate after solution installation/update.",
                    "instructions": [ 
                    ]    
                },  
                { 
                    "title": "1. Install and onboard the agent for Linux", 
                    "description": "Typically, you should install the agent on a different computer from the one on which the logs are generated.\n\n>  Syslog logs are collected only from **Linux** agents.", 
                    "instructions": [ 
                        { 
                        "parameters": { 
                        "title": "Choose where to install the agent:", 
            "instructionSteps": [ 
                    { 
                    "title": "Install agent on Azure Linux Virtual Machine", 
                    "description": "Select the machine to install the agent on and then click **Connect**.", 
                    "instructions": [ 
                        { 
                        "parameters": { 
                        "linkType": "InstallAgentOnLinuxVirtualMachine" 
                        }, 
                        "type": "InstallAgent" 
                        } 
                    ]    
                }, 
                    { 
                    "title": "Install agent on a non-Azure Linux Machine", 
                    "description": "Download the agent on the relevant machine and follow the instructions.", 
                    "instructions": [ 
                        { 
                        "parameters": { 
                        "linkType": "InstallAgentOnLinuxNonAzure" 
                        }, 
                        "type": "InstallAgent" 
                        } 
                    ] 
                } 
            ] 
                }, 
                    "type": "InstructionStepsGroup" 
                    } 
                ] 
                    }, 
    { 
            "title": "2. Configure the logs to be collected", 
            "description":"Follow the configuration steps below to get Cisco Meraki device logs into Microsoft Sentinel. Refer to the [Azure Monitor Documentation](https://docs.microsoft.com/azure/azure-monitor/agents/data-sources-json) for more details on these steps.\n For Cisco Meraki logs, we have issues while parsing the data by OMS agent data using default settings. \nSo we advice to capture the logs into custom table **meraki_CL** using below instructions. \n1. Login to the server where you have installed OMS agent.\n2. Download config file [meraki.conf](https://aka.ms/sentinel-ciscomerakioms-conf) \n\t\twget -v https://aka.ms/sentinel-ciscomerakioms-conf -O meraki.conf \n3. Copy meraki.conf to the /etc/opt/microsoft/omsagent/**workspace_id**/conf/omsagent.d/ folder. \n\t\tcp meraki.conf /etc/opt/microsoft/omsagent/<<workspace_id>>/conf/omsagent.d/\n4. Edit meraki.conf as follows:\n\n\t a. meraki.conf uses the port **22033** by default. Ensure this port is not being used by any other source on your server\n\n\t b. If you would like to change the default port for **meraki.conf** make sure that you dont use default Azure monitoring /log analytic agent ports I.e.(For example CEF uses TCP port **25226** or **25224**) \n\n\t c. replace **workspace_id** with real value of your Workspace ID (lines 14,15,16,19)\n5. Save changes and restart the Azure Log Analytics agent for Linux service with the following command:\n\t\tsudo /opt/microsoft/omsagent/bin/service_control restart\n6. Modify /etc/rsyslog.conf file - add below template preferably at the beginning / before directives section \n\t\t$template meraki,\"%timestamp% %hostname% %msg%\\n\" \n7. Create a custom conf file in /etc/rsyslog.d/ for example 10-meraki.conf and add following filter conditions.\n\n\t With an added statement you will need to create a filter which will specify the logs coming from the Cisco Meraki to be forwarded to the custom table.\n\n\t reference: [Filter Conditions — rsyslog 8.18.0.master documentation](https://rsyslog.readthedocs.io/en/latest/configuration/filters.html)\n\n\t Here is an example of filtering that can be defined, this is not complete and will require additional testing for each installation.\n\t\t if $rawmsg contains \"flows\" then @@127.0.0.1:22033;meraki\n\t\t & stop\n\t\t if $rawmsg contains \"firewall\" then @@127.0.0.1:22033;meraki\n\t\t & stop\n\t\t if $rawmsg contains \"urls\" then @@127.0.0.1:22033;meraki\n\t\t & stop\n\t\t if $rawmsg contains \"ids-alerts\" then @@127.0.0.1:22033;meraki\n\t\t & stop\n\t\t if $rawmsg contains \"events\" then @@127.0.0.1:22033;meraki\n\t\t & stop\n\t\t if $rawmsg contains \"ip_flow_start\" then @@127.0.0.1:22033;meraki\n\t\t & stop\n\t\t if $rawmsg contains \"ip_flow_end\" then @@127.0.0.1:22033;meraki\n\t\t & stop \n8. Restart rsyslog\n\t\t systemctl restart rsyslog",
            "instructions":[
                {
                    "parameters": {
                        "fillWith": [
                            "WorkspaceId"
                        ],
                        "label": "Workspace ID"
                    },
                    "type": "CopyableLabel"
                }
            ]
    },

            {
                "title": "3. Configure and connect the Cisco Meraki device(s)",
                "description":"[Follow these instructions](https://documentation.meraki.com/General_Administration/Monitoring_and_Reporting/Meraki_Device_Reporting_-_Syslog%2C_SNMP_and_API) to configure the Cisco Meraki device(s) to forward syslog. Use the IP address or hostname for the Linux device with the Linux agent installed as the Destination IP address."
            }
]
} 
