Integração do OpenNMS Syslog

2

Estou tentando configurar o OpenNMS para receber mensagens do Syslog de um ASA. Meu arquivo de configuração do syslogd se parece com isso:

<configuration
    syslog-port="514"
    new-suspect-on-message="false"
    parser="org.opennms.netmgt.syslogd.CustonSyslogParser"
    forwarding-regexp="((.+?) (.*))\r?\n?$"
    matching-group-host="2"
    matching-group-message="3"
    />

As mensagens do syslog chegam neste formato:

Sep 13 08:36:37 192.168.75.254 %ASA-4-106023: Deny tcp src outside:144.5.5.255/
56607 dst inside:192.168.75.102/23 by access-group "outside_access_in" [0x0, 0x0]

Com essa configuração, posso obter mensagens do syslog no Opennms, mas elas aparecem como indeterminadas. Parece que esse regex não pode analisar. Quando eu testo esse regex em outros sites como regex101.com, ele diz claramente que não há uma correspondência. Eu criei um regex que combina com o que eu preciso:

\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*([\s\S]*)

MAS, quando eu adiciono isso à configuração, não consigo mais receber nenhuma mensagem do Syslog.

Alguém tem uma ideia de como eu faço isso acontecer? Eu passei muito tempo nisso como é.

    
por Joe 14.09.2017 / 19:27

2 respostas

0

Ok, então parece que descobri isso. Vou tentar postar uma resposta completa aqui esperando que isso ajude alguém. Os documentos não são os mais claros sobre isso.

As referências que usei para a configuração são Syslogd e TechTarget

Primeiro, você precisa configurar o $OPENNMS_HOME/etc/syslogd-configuration.xml para ter o seguinte:

<configuration
    syslog-port="10514"
    new-suspect-on-message="false"
    parser="org.opennms.netmgt.syslogd.CustomSyslogParser"
    forwarding-regexp="((.+?) (.*))\r?\n?$"
    matching-group-host="2"
    matching-group-message="3"
    />

<ueiList>
    <ueiMatch>
        <match type="regex" expression="YOUR REGEX HERE"/>
        <uei>uei.opennms.org/foo1/foo2/foo3</uei>
    </ueiMatch>
</ueiList>

O elemento ueiList foi meu primeiro problema. É aqui que você mapeia a mensagem do syslog para um uei personalizado. O uei pode ser personalizado para criar qualquer identificador exclusivo que você deseje ter.

Meu segundo problema foi mapear o uei personalizado para ter propriedades, como um nível de alerta. Isso é realizado através do $OPENNMS_HOME/etc/eventconf.xml Arquivo. Inseri o seguinte código logo abaixo da tag </global> para configurar propriedades para o meu novo uei personalizado.

<event>00-custom.conf
    <uei>uei.opennms.org/foo1/foo2/foo3</uei>
    <event-label>Event Label Here</event-label>
    <descr>
           An event description here
    </descr>
    <logmsg dest='logndisplay'>Here is the Log: %parm[all]%</logmsg>
    <severity>Critical</severity>
</event>

Com essas mensagens syslog, elas devem entrar com as propriedades desejadas. OBSERVAÇÃO: No meu cenário, estou usando mensagens syslog não padrão, e é por isso que preciso usar a configuração parser="org.opennms.netmgt.syslogd.CustomSyslogParser" no meu arquivo syslogd-confguration.xml . Se você estiver usando o Syslog-NG ou um syslog formatado melhor, há outras opções.

Para ajudar na solução de problemas, você pode ir para $OPENNMS_HOME/etc ou $OPENNMS_HOME/bin e executar o seguinte: opennms -v status isso deve mostrar todos os processos em execução para o NMS e seu status.

NOTA: Depois de alterar um arquivo de configuração, você deve executar service opennms restart (sistemas debian) para recarregar a nova configuração. Se você receber o erro da JVM ou "não foi possível conectar-se ao host local", é mais provável que você tenha violado uma dessas duas configurações. Até mesmo adicionar um espaço extra na parte superior do arquivo xml criará esse problema. Tenha cuidado ao editar os arquivos e eu recomendo criar backups.

    
por 25.09.2017 / 18:11
0

Não sei por que o regex original aninhava os grupos, mas se você remover o grupo outer (), precisará reduzir os números de grupo para o host e a mensagem (já que o grupo externo era o grupo # 1) então

matching-group-host="1"
matching-group-message="2"
    
por 14.09.2017 / 19:58