xml地图|网站地图|网站标签 [设为首页] [加入收藏]
澳门新葡亰手机版配置文件详解,使用微信告警
分类:操作系统

一、zabbix java gateway编译参数如下

如果没有zabbix的jmx封装的话,自己来写自定义脚本监控tomcat也是可以的,只是很麻烦。通过zabbix的jmx,监控tomcat就变得很简单。

java环境安装:

yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel -y

要使用java gateway需要在源码安装zabbix的时候,在./configure的时候加入

--enable-java

以下是我的zabbix server编译参数:

/configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
make
make install

看下有没有成功:

ll -h /usr/local/zabbix/sbin/zabbix_java/

一、 使用企业微信告警

地址如下:

https://work.weixin.qq.com/wework_admin/frame
没有企业微信需要注册:https://work.weixin.qq.com/

转自:

二、zabbix server启动java gateway

/usr/local/zabbix/sbin/zabbix_java/startup.sh

二、主要是用获取的token去发送微信消息

利用企业id和企业secret去获取tocken,利用获取到的tocken来发送微信消息

postconf -n

三、看下java gateway的监控端口(10052)

ps auxfw|grep JavaGateway

三、具体的python脚本实现如下

#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import sys
import urllib,urllib2

#需要三个变量corpid、corpsecret、agentid
agentid = 'xxx'
corpid = 'xxxxx'
corpsecret = 'xxxx'

#获取tocken,存在my_token里面
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
token_file = urllib2.urlopen(gettoken_url)
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
my_token = token_json['access_token']

#利用获取到的tocken发送微信信息
touser=sys.argv[1] #发送给谁,多个用分号分享,例如'zhangsan|wangwu'
content=sys.argv[2] #发送的内容
post_content = {
        "touser":touser,
        "agentid":agentid,
        "msgtype": "text",
        "text":{
                "content":content,
        }
}
json_content = json.dumps(post_content)

url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + my_token
response = urllib2.urlopen(url,json_content)

#查看返回结果
print response.read().decode('utf-8')

#别名数据库(postalias/newaliases 命令生成) 
alias_database = hash:/etc/postfix/aliases

四、zabbix server配置vim /usr/local/zabbix/etc/zabbix_server.conf

JavaGateway=192.168.1.106
JavaGatewayPort=10052
StartJavaPollers=5

zabbix server --> zabbix java gateway --> 访问tomcat服务器

四、调用

python /usr/local/src/script 'zhangsan' '所剩余内存不足100M'

#别名表,列出local mda 所使用的别名数据库 
alias_maps = hash:/etc/postfix/aliases

五、tomcat服务器加入如下配置(vim /usr/local/tomcat/bin/catalina.sh)

CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.1.106"
重启tomcat:
/usr/local/tomcat/bin/startup.sh 

需要先下载一个cmdline-jmxclient-0.10.3.jar,用来测试jmx获取监控数据,获取没问题后再在zabbix网页上添加监控项目。

五、zabbix设置(到alertscripts目录下)

vim zabbix_wx.py
把上述脚本拷贝进去

#退回的邮件重新投递的最长时间 
bounce_queue_lifetime = 1d

六、自定义添加

jmx一般监控,都适用,讲讲自定义监控tomcat:
cd /usr/local/tomcat/
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.106:12345 java.lang:type=Memory HeapMemoryUsage
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.106:12345 java.lang:type=OperatingSystem ProcessCpuLoad

zabbix上添加监控:

先添加主机,使用jmx的接口进行监控。

jmx["java.lang:type=Memory",HeapMemoryUsage.used]默认(单位B)
jmx["java.lang:type=Memory",HeapMemoryUsage.max]默认(单位B)
jmx["java.lang:type=Memory",NonHeapMemoryUsage.max]  默认(单位B)
jmx["java.lang:type=Memory",NonHeapMemoryUsage.used]  默认(单位B)
jmx["java.lang:type=ClassLoading",UnloadedClassCount]  默认
jmx["java.lang:type=ClassLoading",LoadedClassCount]  默认
jmx["java.lang:type=ClassLoading",TotalLoadedClassCount] 默认
jmx["java.lang:type=OperatingSystem",OpenFileDescriptorCount] 默认
jmx["java.lang:type=OperatingSystem",MaxFileDescriptorCount] 默认
jmx["java.lang:type=OperatingSystem",ProcessCpuLoad]浮点数 % 自定义倍数100
jmx["java.lang:type=Runtime",Uptime] 默认 探测是否存活(nodata3分钟)

tomcat监控:

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.106:12345 |grep -i Catalina
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.106:12345 "Catalina:name="http-bio-8080",type=GlobalRequestProcessor" requestCount

zabbix上添加如下:

jmx["Catalina:name="http-bio-8080",type=GlobalRequestProcessor",requestCount] 每秒的请求数
jmx["Catalina:name="http-bio-8080",type=ThreadPool",maxThreads]

六、报警媒介添加微信告警

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

#支持非标准验证规定的行为 
broken_sasl_auth_clients = yes

七、使用模板

jmx generic
jmx tomcat 默认的很多不能用,得改下

tomcat的安装脚本:

#!/bin/sh
LANG=C

if [ -d "/usr/local/tomcat/" ];then
    echo "tomcat is install"
    exit 1
else
    echo "tomcat in not install"
fi

my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
    echo "$my_gcc" 
else
    yum -y install gcc
fi

my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
    echo "$my_make"
else
    yum -y install make 
fi

my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
    echo "$my_tar"
else
    yum -y install tar
fi

my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
    echo "$my_openssl"
else
    yum -y install openssl
fi

my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
    echo "$my_openssl_devel"
else
    yum -y install openssl-devel
fi

my_jdk=`rpm -qa java-1.7.0-openjdk`
if [[ -n "$my_jdk" ]];then
    echo "$my_jdk"
else
    yum -y install java-1.7.0-openjdk
fi

cd /usr/local/src
tar -zxvf apache-tomcat-7.0.63.tar.gz
mv apache-tomcat-7.0.63 /usr/local/tomcat
echo "install tomcat success. tomcat is in /usr/local/tomcat"
exit 0

 

七、设置企业微信用户名

就是企业微信的账号

#postfix命令目录 
command_directory = /usr/sbin

八、添加触发微信告警的动作

#postfix配置文档目录 
config_directory = /etc/postfix

九、进行测试

 

#配置内容过滤 amavis 
content_filter = smtp-amavis:[127.0.0.1]:10024

#postfix 的各个服务器程序目录 
daemon_directory = /usr/libexec/postfix 

data_directory = /var/lib/postfix 

debug_peer_level = 2

#重复邮件 
enable_original_recipient = no 

html_directory = /usr/share/doc/postfix-2.6.2-documentation/html 

mail_name = Postfix – welcome mail.xmall.com

#以此参数指定的系统账户,作为队列文件的拥有者以及postfix daemon 进程的运行身份 
mail_owner = postfix

#单封邮件大小限制,单位字节 
mailbox_size_limit = 150242880


mailq_path = /usr/bin/mailq.postfi

#manpage 目录 
manpage_directory = /usr/share/man

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:澳门新葡亰手机版配置文件详解,使用微信告警

上一篇:网站并发数 下一篇:没有了
猜你喜欢
热门排行
精彩图文