Search in sources :

Example 1 with Level

use of com.googlecode.jsendnsca.Level in project pentaho-kettle by pentaho.

the class JobEntrySendNagiosPassiveCheck method execute.

public Result execute(Result previousResult, int nr) {
    log.logBasic(BaseMessages.getString(PKG, "JobEntrySendNagiosPassiveCheck.Started", serverName));
    Result result = previousResult;
    result.setNrErrors(1);
    result.setResult(false);
    // Target
    String realServername = environmentSubstitute(serverName);
    String realPassword = Utils.resolvePassword(variables, password);
    int realPort = Const.toInt(environmentSubstitute(port), DEFAULT_PORT);
    int realResponseTimeOut = Const.toInt(environmentSubstitute(responseTimeOut), DEFAULT_RESPONSE_TIME_OUT);
    int realConnectionTimeOut = Const.toInt(environmentSubstitute(connectionTimeOut), DEFAULT_CONNECTION_TIME_OUT);
    // Sender
    String realSenderServerName = environmentSubstitute(senderServerName);
    String realSenderServiceName = environmentSubstitute(senderServiceName);
    try {
        if (Utils.isEmpty(realServername)) {
            throw new KettleException(BaseMessages.getString(PKG, "JobSendNagiosPassiveCheck.Error.TargetServerMissing"));
        }
        String realMessageString = environmentSubstitute(message);
        if (Utils.isEmpty(realMessageString)) {
            throw new KettleException(BaseMessages.getString(PKG, "JobSendNagiosPassiveCheck.Error.MessageMissing"));
        }
        Level level = Level.UNKNOWN;
        switch(getLevel()) {
            case LEVEL_TYPE_OK:
                level = Level.OK;
                break;
            case LEVEL_TYPE_CRITICAL:
                level = Level.CRITICAL;
                break;
            case LEVEL_TYPE_WARNING:
                level = Level.WARNING;
                break;
            default:
                break;
        }
        Encryption encr = Encryption.NONE;
        switch(getEncryptionMode()) {
            case ENCRYPTION_MODE_TRIPLEDES:
                encr = Encryption.TRIPLE_DES;
                break;
            case ENCRYPTION_MODE_XOR:
                encr = Encryption.XOR;
                break;
            default:
                break;
        }
        // settings
        NagiosSettingsBuilder ns = new NagiosSettingsBuilder();
        ns.withNagiosHost(realServername);
        ns.withPort(realPort);
        ns.withConnectionTimeout(realConnectionTimeOut);
        ns.withResponseTimeout(realResponseTimeOut);
        ns.withEncryption(encr);
        if (!Utils.isEmpty(realPassword)) {
            ns.withPassword(realPassword);
        } else {
            ns.withNoPassword();
        }
        // target nagios host
        NagiosSettings settings = ns.create();
        // sender
        MessagePayloadBuilder pb = new MessagePayloadBuilder();
        if (!Utils.isEmpty(realSenderServerName)) {
            pb.withHostname(realSenderServerName);
        }
        pb.withLevel(level);
        if (!Utils.isEmpty(realSenderServiceName)) {
            pb.withServiceName(realSenderServiceName);
        }
        pb.withMessage(realMessageString);
        MessagePayload payload = pb.create();
        NagiosPassiveCheckSender sender = new NagiosPassiveCheckSender(settings);
        sender.send(payload);
        result.setNrErrors(0);
        result.setResult(true);
    } catch (Exception e) {
        log.logError(BaseMessages.getString(PKG, "JobEntrySendNagiosPassiveCheck.ErrorGetting", e.toString()));
    }
    return result;
}
Also used : KettleException(org.pentaho.di.core.exception.KettleException) NagiosSettingsBuilder(com.googlecode.jsendnsca.builders.NagiosSettingsBuilder) NagiosPassiveCheckSender(com.googlecode.jsendnsca.NagiosPassiveCheckSender) Level(com.googlecode.jsendnsca.Level) Encryption(com.googlecode.jsendnsca.encryption.Encryption) NagiosSettings(com.googlecode.jsendnsca.NagiosSettings) KettleException(org.pentaho.di.core.exception.KettleException) KettleDatabaseException(org.pentaho.di.core.exception.KettleDatabaseException) KettleXMLException(org.pentaho.di.core.exception.KettleXMLException) Result(org.pentaho.di.core.Result) MessagePayloadBuilder(com.googlecode.jsendnsca.builders.MessagePayloadBuilder) MessagePayload(com.googlecode.jsendnsca.MessagePayload)

Example 2 with Level

use of com.googlecode.jsendnsca.Level in project LogHub by fbacchella.

the class Nsca method send.

@Override
public boolean send(Event event) {
    boolean allfields = MAPFIELD.enumerate().allMatch(i -> {
        if (!event.containsKey(mapping.get(i))) {
            logger.error("event mapping field '{}' value missing", mapping.get(i));
            return false;
        } else {
            return true;
        }
    });
    if (!allfields) {
        return false;
    }
    Level level = Level.tolevel(event.get(mapping.get(MAPFIELD.LEVEL.name().toLowerCase())).toString().trim().toUpperCase());
    String serviceName = event.get(mapping.get(MAPFIELD.SERVICE.name().toLowerCase())).toString();
    String message = event.get(mapping.get(MAPFIELD.MESSAGE.name().toLowerCase())).toString();
    String hostName = event.get(mapping.get(MAPFIELD.HOST.name().toLowerCase())).toString();
    MessagePayload payload = new MessagePayload(hostName, level, serviceName, message);
    try {
        sender.send(payload);
    } catch (NagiosException | IOException e) {
        logger.error("NSCA send failed: {}", e.getMessage());
        return false;
    }
    return true;
}
Also used : NagiosException(com.googlecode.jsendnsca.NagiosException) Level(com.googlecode.jsendnsca.Level) IOException(java.io.IOException) MessagePayload(com.googlecode.jsendnsca.MessagePayload)

Aggregations

Level (com.googlecode.jsendnsca.Level)2 MessagePayload (com.googlecode.jsendnsca.MessagePayload)2 NagiosException (com.googlecode.jsendnsca.NagiosException)1 NagiosPassiveCheckSender (com.googlecode.jsendnsca.NagiosPassiveCheckSender)1 NagiosSettings (com.googlecode.jsendnsca.NagiosSettings)1 MessagePayloadBuilder (com.googlecode.jsendnsca.builders.MessagePayloadBuilder)1 NagiosSettingsBuilder (com.googlecode.jsendnsca.builders.NagiosSettingsBuilder)1 Encryption (com.googlecode.jsendnsca.encryption.Encryption)1 IOException (java.io.IOException)1 Result (org.pentaho.di.core.Result)1 KettleDatabaseException (org.pentaho.di.core.exception.KettleDatabaseException)1 KettleException (org.pentaho.di.core.exception.KettleException)1 KettleXMLException (org.pentaho.di.core.exception.KettleXMLException)1