ZABBIX监控一台机器上的多tomcat实例落地经验步骤

以前做过通过jmx监控单个tomcat实例,但是有的时候公司一台服务器上有10个tomcat容器那怎么办呢,来吧往下看吧

1,注意操作文件路径:

zabbix安装路径; /data/zabbix/etc/zabbix_agentd.conf.d/jmx_discovery.sh

/etc/zabbix/zabbix_agentd.conf 配置文件中 UnsafeUserParameters=1 必须打开,否则模板的自动发现功能报错。

该模板的监控和触发属性在自动发现中配置,所以导入模板后,下属的监控项和触发器等都为空。需要等一会儿,数据等还会出来。

操作步骤:
1、上传 catalina-jmx-remote.jar,cmdline-jmxclient-0.10.3.jar到 /lib下jmx_discovery.sh 和 add_service_tomcat.sh 到 /data/zabbix/etc/zabbix_agentd.conf.d/目录下

2、给 add_service_tomcat.sh 赋执行权限,并执行

3、zabbix服务端对主机添加模版

脚本说明:
add_service_tomcat.sh

#!/bin/bash

#因为lunix版本的及命令格式等问题,上面两句不一定能得到正确路径,所以用下面两句替换上面两行,各自改下你们安装tomcat的路径即可。

t_datadir=`find /data/tomcat*/bin/ -name catalina.sh|awk -F "/bin/catalina.sh" '{print $1}'`

tomcat_no=`find /data/tomcat*/bin/ -name catalina.sh|awk -F "/bin/catalina.sh" '{print $1}'|wc -l`

n_port=9999                                                                                #配置监控初始端口

local_ip=`ifconfig em4 |awk -F '[ :]+' 'NR==2 {print $4}'`                                 #提取主机IP

for tomcat in $t_datadir

do

m_no=`cat -n $tomcat/bin/catalina.sh|grep 'Execute The Requested Command'|awk '{print $1}'`    #提取代码插入位置

cp $tomcat/bin/catalina.sh  $tomcat/bin/catalina.sh_bak                                        #备份catalina.sh

#cp /tmp/catalina-jmx-remote.jar  $tomcat/lib/catalina-jmx-remote.jar                           #复制文件到实例lib目录

sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"'  $tomcat/bin/catalina.sh                        #插入监控配置

let "m_no=m_no+1"                                                                                                                      #设置行号

sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname='$local_ip'"' $tomcat/bin/catalina.sh                 #插入监控配置

let "m_no=m_no+1"                                                                                                                      #设置行号

sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port='$n_port'"' $tomcat/bin/catalina.sh          #插入监控配置

let "m_no=m_no+1"                                                                                                                      #设置行号

sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"' $tomcat/bin/catalina.sh               #插入监控配置

let "m_no=m_no+1"                                                                                                                      #设置行号

sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"' $tomcat/bin/catalina.sh      #插入监控配置

let "n_port=n_port+1"

done

local_ip=`ifconfig em4 |awk -F '[ :]+' 'NR==2 {print $4}'`                 #提取主机IP

cat >> /data/zabbix/zabbix_agentd.conf.d/tomcat.conf <<END                                 #修改zabbix_agentd.conf,添加KEY

UserParameter=java.jmx.discovery[*],/data/zabbix/etc/zabbix_agentd.conf.d/jmx_discovery.sh

UserParameter=java.Runtime.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Runtime \$2 2>&1 |grep \$2 |awk '{print \$NF}'

UserParameter=java.Memory.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Memory \$2 2>&1 |grep \$2 |awk '{print \$NF}'

UserParameter=java.System.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=OperatingSystem \$2 2>&1 |grep \$2 |awk '{print \$NF}'

UserParameter=java.HeapMemoryUsage.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Memory HeapMemoryUsage 2>&1 |grep \$2 |awk '{print \$NF}'

UserParameter=java.NonHeapMemoryUsage.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Memory NonHeapMemoryUsage 2>&1 |grep \$2 |awk '{print \$NF}'

UserParameter=java.LoadClass.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=ClassLoading \$2 2>&1 |awk '{print \$NF}'

UserParameter=java.Threading.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Threading \$2 2>&1 |awk '{print \$NF}'

END

chmod +x /data/zabbix/etc/zabbix_agentd.conf.d/jmx_discovery.sh 然后执行脚本

jmx_discovery.sh:

#!/bin/bash

#因为lunix版本的及命令格式等问题,上面两句不一定能得到正确路径,所以用下面两句替换上面两行,各自改下你们安装tomcat的路径即可。

t_datadir=`find /data/tomcat*/bin/ -name catalina.sh|awk -F "/bin/catalina.sh" '{print $1}'`

tomcat_no=`find /data/tomcat*/bin/ -name catalina.sh|awk -F "/bin/catalina.sh" '{print $1}'|wc -l`

n_port=9999                                                                                #配置监控初始端口

i=1

printf '{"data":[\n'

for tomcat in $t_datadir                                                                    #输出JSON文件

do

t_service=`echo "$tomcat"|awk -F"/" '{print $(NF)}'`

if [ "$i" != ${tomcat_no} ];then

printf "\t\t{ \n"

printf "\t\t\t\"{#JMX_PORT}\":\"${n_port}\",\n"

printf "\t\t\t\"{#JAVA_NAME}\":\"${t_service}\"},\n"

else

printf "\t\t{ \n"

printf "\t\t\t\"{#JMX_PORT}\":\"${n_port}\",\n"

printf "\t\t\t\"{#JAVA_NAME}\":\"${t_service}\"}]}\n"

fi

let "n_port=n_port+1"

let "i=i+1"

done

tomcat监控模板如下:

<?xml version="1.0" encoding="UTF-8"?>

<zabbix_export>

<version>3.0</version>

<date>2016-06-08T01:26:24Z</date>

<groups>

<group>

<name>Templates</name>

</group>

</groups>

<templates>

<template>

<template>Template  for Tomcat</template>

<name>Template  for Tomcat</name>

<description/>

<groups>

<group>

<name>Templates</name>

</group>

</groups>

<applications>

<application>

<name>Tomcat_内存</name>

</application>

<application>

<name>Tomcat_类</name>

</application>

<application>

<name>Tomcat_系统</name>

</application>

<application>

<name>Tomcat_线程</name>

</application>

<application>

<name>Tomcat_运行时间</name>

</application>

</applications>

<items/>

<discovery_rules>

<discovery_rule>

<name>Tomcat Server</name>

<type>0</type>

<snmp_community/>

<snmp_oid/>

<key>java.jmx.discovery</key>

<delay>30</delay>

<status>0</status>

<allowed_hosts/>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<delay_flex/>

<params/>

<ipmi_sensor/>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<filter>

<evaltype>0</evaltype>

<formula/>

<conditions>

<condition>

<macro>{#JMX_PORT}</macro>

<value/>

<operator>8</operator>

<formulaid>A</formulaid>

</condition>

</conditions>

</filter>

<lifetime>30</lifetime>

<description>发现查找tomcat服务</description>

<item_prototypes>

<item_prototype>

<name>{#JAVA_NAME} 堆内存提交值:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.HeapMemoryUsage.status[{#JMX_PORT},committed]</key>

<delay>30</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units>B</units>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>java提交内存</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_内存</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 堆内存最大值:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.HeapMemoryUsage.status[{#JMX_PORT},max]</key>

<delay>30</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units>B</units>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>java最大使用内存</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_内存</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 堆内存使用值:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.HeapMemoryUsage.status[{#JMX_PORT},used]</key>

<delay>30</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units>B</units>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>java使用内存</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_内存</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 已加装当前类的数量:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.LoadClass.status[{#JMX_PORT},LoadedClassCount]</key>

<delay>30</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>加载的类</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_类</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 已加载类总数:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.LoadClass.status[{#JMX_PORT},TotalLoadedClassCount]</key>

<delay>30</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>总共加载过的类个数</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_类</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 已卸载类的数量:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.LoadClass.status[{#JMX_PORT},UnloadedClassCount]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>卸载回收类个数</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_类</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 被挂起的对象的计数:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.Memory.status[{#JMX_PORT},ObjectPendingFinalizationCount]</key>

<delay>30</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description/>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_内存</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 非堆内存提交值:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.NonHeapMemoryUsage.status[{#JMX_PORT},committed]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units>B</units>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>堆内存提交大小</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_内存</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 非堆内存最大值:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.NonHeapMemoryUsage.status[{#JMX_PORT},max]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units>B</units>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>堆内存最大值</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_内存</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 非堆内存使用值:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.NonHeapMemoryUsage.status[{#JMX_PORT},used]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units>B</units>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>堆内存使用大小</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_内存</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME}  JVM启动时间:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.Runtime.status[{#JMX_PORT},Uptime]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units>uptime</units>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description/>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_运行时间</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME}  JVM名称:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.Runtime.status[{#JMX_PORT},VmName]</key>

<delay>30</delay>

<history>7</history>

<trends>0</trends>

<status>0</status>

<value_type>4</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description/>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_运行时间</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME}  JVM版本:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.Runtime.status[{#JMX_PORT},VmVersion]</key>

<delay>60</delay>

<history>7</history>

<trends>0</trends>

<status>0</status>

<value_type>1</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description/>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_运行时间</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 系统可打开最大打开文件数:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.System.status[{#JMX_PORT},MaxFileDescriptorCount]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description/>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_系统</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 系统应用当前打开文件数:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.System.status[{#JMX_PORT},OpenFileDescriptorCount]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description/>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_系统</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 系统平均负载:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.System.status[{#JMX_PORT},SystemLoadAverage]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>0</value_type>

<allowed_hosts/>

<units>%</units>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description/>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_系统</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 守护程序线程数:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.Threading.status[{#JMX_PORT},DaemonThreadCount]</key>

<delay>30</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description/>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_线程</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 线程峰值数:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.Threading.status[{#JMX_PORT},PeakThreadCount]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>活动线程峰值个数</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_线程</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 活动线程计数:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.Threading.status[{#JMX_PORT},ThreadCount]</key>

<delay>60</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>运行tomcat的活动线程</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_线程</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

<item_prototype>

<name>{#JAVA_NAME} 启动的线程总数:</name>

<type>0</type>

<snmp_community/>

<multiplier>0</multiplier>

<snmp_oid/>

<key>java.Threading.status[{#JMX_PORT},TotalStartedThreadCount]</key>

<delay>30</delay>

<history>7</history>

<trends>30</trends>

<status>0</status>

<value_type>3</value_type>

<allowed_hosts/>

<units/>

<delta>0</delta>

<snmpv3_contextname/>

<snmpv3_securityname/>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authprotocol>0</snmpv3_authprotocol>

<snmpv3_authpassphrase/>

<snmpv3_privprotocol>0</snmpv3_privprotocol>

<snmpv3_privpassphrase/>

<formula>1</formula>

<delay_flex/>

<params/>

<ipmi_sensor/>

<data_type>0</data_type>

<authtype>0</authtype>

<username/>

<password/>

<publickey/>

<privatekey/>

<port/>

<description>线程总个数</description>

<inventory_link>0</inventory_link>

<applications>

<application>

<name>Tomcat_线程</name>

</application>

</applications>

<valuemap/>

<logtimefmt/>

<application_prototypes/>

</item_prototype>

</item_prototypes>

<trigger_prototypes>

<trigger_prototype>

<expression>{Template  for Tomcat:java.HeapMemoryUsage.status[{#JMX_PORT},used].last()}>({Template  for Tomcat:java.HeapMemoryUsage.status[{#JMX_PORT},max].last()}*0.7)</expression>

<name>{#JAVA_NAME} 堆内存使用率超过70%</name>

<url/>

<status>0</status>

<priority>1</priority>

<description/>

<type>0</type>

<dependencies/>

</trigger_prototype>

<trigger_prototype>

<expression>{Template  for Tomcat:java.HeapMemoryUsage.status[{#JMX_PORT},committed].last()}={Template  for Tomcat:java.HeapMemoryUsage.status[{#JMX_PORT},max].last()}</expression>

<name>{#JAVA_NAME} 堆内存提交值达到最大限制.</name>

<url/>

<status>1</status>

<priority>1</priority>

<description/>

<type>0</type>

<dependencies/>

</trigger_prototype>

<trigger_prototype>

<expression>{Template  for Tomcat:java.System.status[{#JMX_PORT},SystemLoadAverage].last()}>50</expression>

<name>{#JAVA_NAME} 当前应用占用系统负载大于50%</name>

<url/>

<status>0</status>

<priority>1</priority>

<description/>

<type>0</type>

<dependencies/>

</trigger_prototype>

<trigger_prototype>

<expression>{Template  for Tomcat:java.System.status[{#JMX_PORT},OpenFileDescriptorCount].last()}>({Template  for Tomcat:java.System.status[{#JMX_PORT},MaxFileDescriptorCount].last()}*0.7)</expression>

<name>{#JAVA_NAME} 当前应用打开文件数已占用系统最大70%</name>

<url/>

<status>0</status>

<priority>1</priority>

<description/>

<type>0</type>

<dependencies/>

</trigger_prototype>

<trigger_prototype>

<expression>{Template  for Tomcat:java.NonHeapMemoryUsage.status[{#JMX_PORT},used].last()}>({Template  for Tomcat:java.NonHeapMemoryUsage.status[{#JMX_PORT},max].last()}*0.7)</expression>

<name>{#JAVA_NAME} 非堆内存使用率超过70%</name>

<url/>

<status>0</status>

<priority>1</priority>

<description/>

<type>0</type>

<dependencies/>

</trigger_prototype>

</trigger_prototypes>

<graph_prototypes>

<graph_prototype>

<name>堆对象内存状态:{#JAVA_NAME}</name>

<width>900</width>

<height>200</height>

<yaxismin>0.0000</yaxismin>

<yaxismax>100.0000</yaxismax>

<show_work_period>1</show_work_period>

<show_triggers>1</show_triggers>

<type>0</type>

<show_legend>1</show_legend>

<show_3d>0</show_3d>

<percent_left>0.0000</percent_left>

<percent_right>0.0000</percent_right>

<ymin_type_1>0</ymin_type_1>

<ymax_type_1>0</ymax_type_1>

<ymin_item_1>0</ymin_item_1>

<ymax_item_1>0</ymax_item_1>

<graph_items>

<graph_item>

<sortorder>0</sortorder>

<drawtype>0</drawtype>

<color>00C800</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.HeapMemoryUsage.status[{#JMX_PORT},committed]</key>

</item>

</graph_item>

<graph_item>

<sortorder>1</sortorder>

<drawtype>0</drawtype>

<color>C80000</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.HeapMemoryUsage.status[{#JMX_PORT},max]</key>

</item>

</graph_item>

<graph_item>

<sortorder>2</sortorder>

<drawtype>0</drawtype>

<color>0000C8</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.HeapMemoryUsage.status[{#JMX_PORT},used]</key>

</item>

</graph_item>

</graph_items>

</graph_prototype>

<graph_prototype>

<name>类状态:{#JAVA_NAME}</name>

<width>900</width>

<height>200</height>

<yaxismin>0.0000</yaxismin>

<yaxismax>100.0000</yaxismax>

<show_work_period>1</show_work_period>

<show_triggers>1</show_triggers>

<type>0</type>

<show_legend>1</show_legend>

<show_3d>0</show_3d>

<percent_left>0.0000</percent_left>

<percent_right>0.0000</percent_right>

<ymin_type_1>0</ymin_type_1>

<ymax_type_1>0</ymax_type_1>

<ymin_item_1>0</ymin_item_1>

<ymax_item_1>0</ymax_item_1>

<graph_items>

<graph_item>

<sortorder>0</sortorder>

<drawtype>0</drawtype>

<color>00C800</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.LoadClass.status[{#JMX_PORT},UnloadedClassCount]</key>

</item>

</graph_item>

<graph_item>

<sortorder>1</sortorder>

<drawtype>0</drawtype>

<color>C80000</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.LoadClass.status[{#JMX_PORT},LoadedClassCount]</key>

</item>

</graph_item>

<graph_item>

<sortorder>2</sortorder>

<drawtype>0</drawtype>

<color>0000C8</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.LoadClass.status[{#JMX_PORT},TotalLoadedClassCount]</key>

</item>

</graph_item>

</graph_items>

</graph_prototype>

<graph_prototype>

<name>系统打开文件系统数:{#JAVA_NAME}</name>

<width>900</width>

<height>200</height>

<yaxismin>0.0000</yaxismin>

<yaxismax>100.0000</yaxismax>

<show_work_period>1</show_work_period>

<show_triggers>1</show_triggers>

<type>0</type>

<show_legend>1</show_legend>

<show_3d>0</show_3d>

<percent_left>0.0000</percent_left>

<percent_right>0.0000</percent_right>

<ymin_type_1>0</ymin_type_1>

<ymax_type_1>0</ymax_type_1>

<ymin_item_1>0</ymin_item_1>

<ymax_item_1>0</ymax_item_1>

<graph_items>

<graph_item>

<sortorder>0</sortorder>

<drawtype>0</drawtype>

<color>1A7C11</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.System.status[{#JMX_PORT},MaxFileDescriptorCount]</key>

</item>

</graph_item>

<graph_item>

<sortorder>1</sortorder>

<drawtype>0</drawtype>

<color>F63100</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.System.status[{#JMX_PORT},OpenFileDescriptorCount]</key>

</item>

</graph_item>

<graph_item>

<sortorder>2</sortorder>

<drawtype>0</drawtype>

<color>2774A4</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.System.status[{#JMX_PORT},SystemLoadAverage]</key>

</item>

</graph_item>

</graph_items>

</graph_prototype>

<graph_prototype>

<name>线程状态:{#JAVA_NAME}</name>

<width>900</width>

<height>200</height>

<yaxismin>0.0000</yaxismin>

<yaxismax>100.0000</yaxismax>

<show_work_period>1</show_work_period>

<show_triggers>1</show_triggers>

<type>0</type>

<show_legend>1</show_legend>

<show_3d>0</show_3d>

<percent_left>0.0000</percent_left>

<percent_right>0.0000</percent_right>

<ymin_type_1>0</ymin_type_1>

<ymax_type_1>0</ymax_type_1>

<ymin_item_1>0</ymin_item_1>

<ymax_item_1>0</ymax_item_1>

<graph_items>

<graph_item>

<sortorder>0</sortorder>

<drawtype>0</drawtype>

<color>00C800</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.Threading.status[{#JMX_PORT},ThreadCount]</key>

</item>

</graph_item>

<graph_item>

<sortorder>1</sortorder>

<drawtype>0</drawtype>

<color>C80000</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.Threading.status[{#JMX_PORT},PeakThreadCount]</key>

</item>

</graph_item>

<graph_item>

<sortorder>2</sortorder>

<drawtype>0</drawtype>

<color>0000C8</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.Threading.status[{#JMX_PORT},TotalStartedThreadCount]</key>

</item>

</graph_item>

</graph_items>

</graph_prototype>

<graph_prototype>

<name>非堆对象内存状态:{#JAVA_NAME}</name>

<width>900</width>

<height>200</height>

<yaxismin>0.0000</yaxismin>

<yaxismax>100.0000</yaxismax>

<show_work_period>1</show_work_period>

<show_triggers>1</show_triggers>

<type>0</type>

<show_legend>1</show_legend>

<show_3d>0</show_3d>

<percent_left>0.0000</percent_left>

<percent_right>0.0000</percent_right>

<ymin_type_1>0</ymin_type_1>

<ymax_type_1>0</ymax_type_1>

<ymin_item_1>0</ymin_item_1>

<ymax_item_1>0</ymax_item_1>

<graph_items>

<graph_item>

<sortorder>0</sortorder>

<drawtype>0</drawtype>

<color>1A7C11</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.NonHeapMemoryUsage.status[{#JMX_PORT},used]</key>

</item>

</graph_item>

<graph_item>

<sortorder>1</sortorder>

<drawtype>0</drawtype>

<color>F63100</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.NonHeapMemoryUsage.status[{#JMX_PORT},committed]</key>

</item>

</graph_item>

<graph_item>

<sortorder>2</sortorder>

<drawtype>0</drawtype>

<color>2774A4</color>

<yaxisside>0</yaxisside>

<calc_fnc>2</calc_fnc>

<type>0</type>

<item>

<host>Template  for Tomcat</host>

<key>java.NonHeapMemoryUsage.status[{#JMX_PORT},max]</key>

</item>

</graph_item>

</graph_items>

</graph_prototype>

</graph_prototypes>

<host_prototypes/>

</discovery_rule>

</discovery_rules>

<macros/>

<templates/>

<screens/>

</template>

</templates>

</zabbix_export>

然后等5分钟左右,一主机N实例监控tomcat完成,拿走不谢!注意根据实际路径修改!name:系统运维工程师 李超!

原文地址:http://blog.51cto.com/13120271/2070640

时间: 2024-08-14 18:15:18

ZABBIX监控一台机器上的多tomcat实例落地经验步骤的相关文章

ZABBIX监控一台服务器上多实例memcache落地经验步骤

大家好!我是系统运维工程师: 李超  上一次给大家分享了工作中监控多实例tomcat的自发现zabbix做法,今天带给大家的就是一台服务器上监控多memcache的一个落地经验. 首先我带大家看一下多实例memcache做法,话不多说,咱们开工: 由于是多实例,所以就需要用到zabbix的自动发现功能(LLD)基本思路如下: 1.写自动发现脚本. 2.写状态取值脚本. 3.添加配置文件. 4.添加权限. 5.配置zabbix web. zabbix我采用yum安装所以路径是/etc/zabbix

同一台机器上多个tomcat启动造成的内存溢出问题的解决方法。

加下面这句话就行了,我是WIN10+双tomcat+nginx(本地站点),无压力.在编译器的vm option里面加哦. -server -Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m 原文地址:https://www.cnblogs.com/kmsfan/p/8318152.html

一台机器配置多个tomcat的实践经验

方法: 1.安装tomcat1,过程为解压缩. 2.拷贝压缩后的文件,命名为tomcat2. 修改tomcat2中配置文件,tomcat1保持不变 server.xml, <Server port="8006" shutdown="SHUTDOWN"> 端口改为8006,tomcat1为8005 <Connector port="8081" protocol="HTTP/1.1" connectionTime

如何确定Hadoop守护进程分别会在哪台机器上运行

经过一段时间的配置,Hadoop环境总算运行起来了,但是呢,为何主节点就没有跑tasktracker和datanode进程,slave节点也没有跑secondary进程,Hadoop是如何控制的呢? 经过看权威指南(267页)和跟群里同学讨论,还有自己测试,最终确定: tasktracker和datanode这两个守护进程 —— 只会在conf/slaves文件里指定的那些节点上运行 secondarynamenode 这个守护进程 —— 只会在conf/masters文件里指定的那个节点上运行

如何在一台机器上配置多个git的rsa

如何在一台机器上配置多个git的rsa 问题的提出 很多时候,我们一台机器上要使用多个git库,比如 github, csdn 以及 自己公司的.那么 rsa就要有多份.那么该如何让这些共同存在呢? 原理就是:建立多个不同的rsa 然后 在ssh config中分别不同的配置. 具体步骤 1 建立rsa ssh-keygen -t rsa -C "你的邮箱地址" 执行完这条命令之后, 会弹出如下提示: Enter file in which to save the key (/User

在一台机器上搭建多个redis实例

默认Redis程序安装在/usr/local/redis目录下: 配置文件:/usr/local/redis/redis.conf,该配置文件中配置的端口为默认端口:6379: Redis的启动命令路径:/usr/local/bin/redis-server. 可以指定端口启动多个Redis进程. #/usr/local/bin/redis-server --port 6380 &    #启动6380端口的redis实例. ====================以下每个进程对应一个配置文件(

一台机器上运行多个ActiveMq

由于业务需要一台机器上运行多个ActiveMq,这里主要说一下有什么地方不重复: 1.brokerName名称不能重复 2.端口号不能重复uri = tcp://localhost:50509 3.kahadb路径不能重复 4.管理端口不能重复contextPort = 2019 jmxServiceUrl = service:jmx:rmi:///jndi/rmi://localhost:2019/jmxrmi

在同一台机器上启动多个tomcat服务

一台机器上启动多个tomcat服务应用,能够让我们更好的测试下自己的分布式应用,下面简单介绍下如何在一台机器上开启多个tomcat应用,其实会弄两个,之后的多个都是一样的了 找到电脑上的tomcat安装目录,复制一份,出现两份tomcat,为了区别给复制的一份起一个特别的名称apache-tomcat-6.0.35-8090 进入apache-tomcat-6.0.35-8090目录中,进入conf目录下找到server.xml需要进行多个地方修改 conf目录下修改sever.xml 主要修改

解决mysql跟php不在同一台机器上,编译安装php服务报错问题:configure: error: Cannot find MySQL header files under /application/mysql.

在编译安装php服务时报错: configure: error: Cannot find MySQL header files under /application/mysql. Note that the MySQL client library is not bundled anymore! 前边搭建lnmp环境时,是把mysql和php安装在了同一台机器上,编译php的时候,需要通过参数 --with-mysql来指定mysql的安装路径,但在生产环境中,通常php和mysql是不在同一台