APJ  
                
               
                 
              
                  
                    August 3, 2018,  3:54am
                   
                   
              1 
               
             
            
              I am trying to simulate an environment wherein if the temperature exceeds 40β, an email is sent to the user. I am running logstash on my local.
Here is the config file.
weather_data.conf 
input {
  http_poller {
    urls => {
        weather => {
            url => "http://api.openweathermap.org/data/2.5/weather?id=5490223&appid="MY_APP_ID"&units=metric"
            headers => {
              Accept => "application/json"
            }
        }
    }
    schedule => { cron => "* * * * * *" }
    codec => json
  }
}
filter {
  mutate {
    remove_field => ["@version" ,"command" ,"host" ,"cod" ,"id" ,"base" ,"coord" ,"sys" ,"dt"]
  }
  ruby{
	code => ' if Time.now.to_i % 120 == 0 ; event.set("[main][temp]", 15 + event.get("[main][temp]")); end'
  }
  split { field => "weather" }
}
output {
   if [main][temp] >= 40 {
	email {
	  to => 'john@gmail.com'
	  subject => 'Alert - Temperature exceeded threshold'
	  body => "Exceeded temperature"
	}
  }
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "weather"
  }
  stdout {
    codec => rubydebug
  }
}
 
Exactly two minutes after running the config file, I get an error like this,
[2018-08-02T20:22:22,004][INFO ][logstash.inputs.http_poller] Registering http_poller Input {:type=>nil, :schedule=>{"cron"=>"* * * * * *"}, :timeout=>nil}
[2018-08-02T20:22:22,082][INFO ][logstash.pipeline        ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0xca32fb8 run>"}
[2018-08-02T20:22:22,238][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2018-08-02T20:22:22,898][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
[2018-08-02T20:24:02,700][ERROR][logstash.outputs.email   ] Something happen while delivering an email {:exception=>#<Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 25>}
 
What wrong am I doing? How can I make sure the email is sent? Do I have to include the logstash port?
Can someone please help me out here? I would really appreciate if you could. Thanks in advance.
             
            
               
               
               
            
                
            
           
          
            
              
                NerdSec  
                (Nachiket)
               
              
                  
                    August 3, 2018,  5:47am
                   
                   
              2 
               
             
            
              How are you planning to send the email? Do you SMTP access or will it be a mailbox?
You might need to specify the address or domain and the auth setting if needed to send the email.
Here is another config that you could look at:
  
  
    Hi everyone, 
Before all, sorry for my English, it's not my native language. 
I try to configure Logstash for sending mail when some specific events coming with the logstash-output-email plugin. 
I'm using SMTPS mail server on port 465 ( the same as me, which is working for my user. ) 
my configuration file look like to that : 
filter {
        grok {
                match => { "severity" => "warning" }
                add_tag => ["warning"]
                }
}
output {
		if "warning" in [tagsβ¦
   
 
             
            
               
               
               
            
            
           
          
            
              
                NerdSec  
                (Nachiket)
               
              
                  
                    August 3, 2018,  5:51am
                   
                   
              3 
               
             
            
              
Also, are you running anything like postfix or sendmail locally? Try doing telnet localhost 25.
             
            
               
               
               
            
            
           
          
            
              
                APJ  
                
               
              
                  
                    August 3, 2018,  5:54am
                   
                   
              4 
               
             
            
              Hi NerdSec,
Not really sure what SMTP access is. I haven't actually set anything. For testing purpose, I only want to send an email to my personal email ID (I presume this means mailbox). Also, logstash is running on localhost. How should I go about doing this?
             
            
               
               
               
            
            
           
          
            
              
                APJ  
                
               
              
                  
                    August 3, 2018,  6:00am
                   
                   
              5 
               
             
            
              I tried running telnet localhost 25
I get the following error,
PS C:\Windows\System32\WindowsPowerShell\v1.0> telnet localhost 25
Connecting To localhost...Could not open connection to the host, on port 25: Connect failed
 
Could you please tell me how I can fix this?
             
            
               
               
               
            
            
           
          
            
              
                NerdSec  
                (Nachiket)
               
              
                  
                    August 3, 2018,  6:05am
                   
                   
              6 
               
             
            
              Ok. So you don't have access to an SMTP or a mailbox locally.
Why don't you send an email via Gmail itself?
Try doing the following: 
telnet smtp.gmail.com 587
             
            
               
               
               
            
            
           
          
            
              
                NerdSec  
                (Nachiket)
               
              
                  
                    August 3, 2018,  6:08am
                   
                   
              7 
               
             
            
              If you are able to telnet then try using the following config:
email {
  to => "xyz@gmail.com"
  body => "Message: %{message}"
  address => "smtp.gmail.com"
  port => 587
  username => "xyz@gmail.com"
  password => "mypass"
  use_tls => true
}
 
             
            
               
               
               
            
            
           
          
            
              
                APJ  
                
               
              
                  
                    August 3, 2018,  6:09am
                   
                   
              8 
               
             
            
              Thanks! I did as you said.
I got an output like this,
220 smtp.gmail.com ESMTP s14-v6sm8644374pfj.105 - gsmtp
Also, As per my logstash configuration I am sending an email through gmail right?
             
            
               
               
               
            
            
           
          
            
              
                APJ  
                
               
              
                  
                    August 3, 2018,  6:20am
                   
                   
              9 
               
             
            
              Here is my updated logstash config
input {
  http_poller {
    urls => {
        weather => {
            url => "http://api.openweathermap.org/data/2.5/weather?id=5490223&appid="MY_APP_ID"&units=metric"
            headers => {
              Accept => "application/json"
            }
        }
    }
    schedule => { cron => "* * * * * *" }
    codec => json
  }
}
filter {
  mutate {
    remove_field => ["@version" ,"command" ,"host" ,"cod" ,"id" ,"base" ,"coord" ,"sys" ,"dt"]
  }
  ruby{
	code => ' if Time.now.to_i % 15 == 0 ; event.set("[main][temp]", 15 + event.get("[main][temp]")); end'
  }
  split { field => "weather" }
}
output {
  email {
    to => "myusername@gmail.com"
    body => "Message: %{message}"
    address => "smtp.gmail.com"
    port => 587
    username => "myusername@gmail.com"
    password => "mypassword"
    use_tls => true
  }
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "weather"
  }
  stdout {
    codec => rubydebug
  }
}
 
When i try running the config file, I get an error like this,
[2018-08-02T23:15:58,498][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
[2018-08-02T23:16:02,653][ERROR][logstash.outputs.email   ] Something happen while delivering an email {:exception=>#<Net::SMTPAuthenticationError: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbsQ
>}
[2018-08-02T23:16:03,596][ERROR][logstash.outputs.email   ] Something happen while delivering an email {:exception=>#<Net::SMTPAuthenticationError: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbvY
>} 
             
            
               
               
               
            
            
           
          
            
              
                NerdSec  
                (Nachiket)
               
              
                  
                    August 3, 2018,  6:22am
                   
                   
              10 
               
             
            
              Are you using 2FA with Gmail? If so, you might have to use App passwords.
https://support.google.com/accounts/answer/185833 
             
            
               
               
               
            
            
           
          
            
              
                APJ  
                
               
                 
              
                  
                    August 3, 2018,  6:26am
                   
                   
              11 
               
             
            
              I am not using 2FA. 2FA is not available for my account.
             
            
               
               
               
            
            
           
          
            
              
                NerdSec  
                (Nachiket)
               
              
                  
                    August 3, 2018,  6:29am
                   
                   
              12 
               
             
            
              
Then, are you sure the password is correct? It seems to be an authentication error.
             
            
               
               
               
            
            
           
          
            
              
                APJ  
                
               
              
                  
                    August 3, 2018,  6:33am
                   
                   
              13 
               
             
            
              Yes. Password is absolutely right. I even successfully logged in through using chrome browser.
             
            
               
               
               
            
            
           
          
            
              
                NerdSec  
                (Nachiket)
               
              
                  
                    August 3, 2018,  7:28am
                   
                   
              14 
               
             
            
              I have successfully tested this on my setup and the following config works perfectly fine:
email {
      to => "nerdsec@gmail.com"
      body => "Message: %{message}"
      address => "smtp.gmail.com"
      port => 587
      username => "nerdsec@gmail.com"
      password => "lasdasd"
      use_tls => true
}
 
I am using 2FA so, have used an App password for authentication.
             
            
               
               
              1 Like 
            
            
           
          
            
            
              You need to enable "Less secure apps" (sic) in your Gmail account if you want to connect to it via SMTP without a dedicated app password: https://support.google.com/accounts/answer/6010255?hl=en 
             
            
               
               
              1 Like 
            
            
           
          
            
              
                APJ  
                
               
              
                  
                    August 3, 2018,  8:07am
                   
                   
              16 
               
             
            
              Thanksa lot! It works now! 
             
            
               
               
               
            
            
           
          
            
              
                APJ  
                
               
              
                  
                    August 3, 2018,  8:09am
                   
                   
              17 
               
             
            
              I had to change my google settings to allow less secure apps! After making the settings, it worked! Thanks a lot again NerdSec! 
             
            
               
               
              2 Likes 
            
            
           
          
            
              
                system  
                (system)
                  Closed 
               
              
                  
                    August 31, 2018,  8:09am
                   
                   
              18 
               
             
            
              This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.