Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

how to test custom ambari alert

Solved Go to solution

how to test custom ambari alert

Expert Contributor

I uset hdp 2.4 and ambari 2.2.1.1

I had custom an ambari alert and test on my test servers.

But when I copy it on mysql product environment, one server seems every thing is ok,and the other is show me :

'NoneType' object has no attribute 'modules' 

So, I try to the monitor script writen in pytthon.

When I run python monitor.py, it shows ok,but on the ambari-agent,it still wrong.

So is there a way to test the script and debug the monitor script??

1 ACCEPTED SOLUTION

Accepted Solutions

Re: how to test custom ambari alert

Expert Contributor

What I don't clear is why on one server show me

'NoneType' object has no attribute 'modules'

,but the other is ok

I try to restart the ambari-agent,It show me ok

So terrible.

resloved.

10 REPLIES 10
Highlighted

Re: how to test custom ambari alert

Super Mentor

@darkz yu

The error that you posted indicates some issue with your "monitor.py" python script.

'NoneType'object has no attribute 'modules'

.

Please try running that script manually to see if it works or causes the same error? Please make sure that it uses the PYTHONPATH that your ambari agent is using.

# python monitor.py

.

For example the pythonpath i use as following:

export PYTHONPATH=/usr/lib/python2.6/site-packages:/usr/lib/python2.6/site-packages/ambari_commons:/usr/lib/python2.6/site-packages:/usr/lib/python2.6/site-packages:/usr/lib/python2.6/site-packages/ambari_commons:/usr/lib/python2.6/site-packages::/usr/lib/python2.6/site-packages:/usr/lib/python2.6/site-packages/ambari_agent:/usr/lib/python2.6/site-packages

.

Re: how to test custom ambari alert

Super Mentor

@darkz yu

Also will it be possible if you can share your monitor.py script.

Re: how to test custom ambari alert

Super Mentor

@darkz yu

Where exactly are you putting your custom alert script? Is it the following location?

/var/lib/ambari-server/resources/host_scripts

.

I have written a similar article on this customization: https://community.hortonworks.com/articles/38149/how-to-create-and-register-custom-ambari-alerts.htm...

Above link will give some idea about how to run the alert manually using "?run_now=true" something like following:

# curl -u admin:admin -i -H 'X-Requested-By:ambari' -X PUT  http://node1.example.com:8080/api/v1/clusters/ClusterDemo/alert_definitions/151?run_now=true

.

Re: how to test custom ambari alert

New Contributor

@Jay Kumar SenSharma

Referring to the PUT command used for triggering the alert manually, Is it possible to pass some parameters/custom information to the script which gets trigged by the alert ? If yes, is it via headers OR body of the PUT request ?

Thanks.

Re: how to test custom ambari alert

Expert Contributor

@Jay SenSharma

I know how to deploy a custom monitor and how to start it.

But it runs ok on one server but failed on the other one.

I had change the code to simple logic:

such as:

def execute():
	try:
		return 'OK', 'no errors'
	exception:
		return 'UNKNOW', 'UNKNOW data'

it still shows me :

'NoneType' object has no attribute 'modules' 

And I surely that I can run the monitor.py manaual correctly.

Re: how to test custom ambari alert

Super Mentor

@darkz yu

There is a typo in UNKNOWN word, Although it might not be causing the issue.

return 'UNKNOW','UNKNOW data'

.

Can you please share the steps that you followed like Where have you placed the script and the sample script, alerts.json. The Ambari Version, I will try the same at my end.

Re: how to test custom ambari alert

Expert Contributor

I add the script call time to label, and I found there no time return.I will post the script soon

Re: how to test custom ambari alert

Expert Contributor

test.zip

this the code I run on two server

Re: how to test custom ambari alert

Super Mentor

@darkz yu


This is the step that i followed:


1). Copied the "flume_monitor.py" script to ambari server "/var/lib/ambari-server/resources/host_scripts" location.

# scp  /Users/jsensharma/Downloads/40443-test/flume_monitor.py   root@amb25101:/var/lib/ambari-server/resources/host_scripts

.

2). Now i pushed the alert definition to my ambari cluster.

# curl -u admin:admin -i -H 'X-Requested-By:ambari' -X POST -d @/Users/jsensharma/Downloads/40443-test/flume_monitor.json  http://amb25101.example.com:8080/api/v1/clusters/plain_ambari/alert_definitions

HTTP/1.1 100 Continue
HTTP/1.1 201 Created
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Cache-Control: no-store
Pragma: no-cache
Set-Cookie: AMBARISESSIONID=j2au8meo5w73182sf1wnjn9z8;Path=/;HttpOnly
Expires: Thu, 01 Jan 1970 00:00:00 GMT
User: admin
Content-Type: text/plain
Content-Length: 0



3). Restarted Ambari Server.

# ambari-server  restart


4). Checked the Ambari UI.

39450-flume-custom-alert.png



My Cluster Details:

[root@amb25101 ambari-server]# ambari-server --version
2.5.1.0-159
[root@amb25101 ambari-server]# python --version
Python 2.7.5

.

Don't have an account?
Coming from Hortonworks? Activate your account here