ndm agent 추가
This commit is contained in:
BIN
roles/one_agent/files/ndm/bin/exem-ndm-agent
Executable file
BIN
roles/one_agent/files/ndm/bin/exem-ndm-agent
Executable file
Binary file not shown.
53
roles/one_agent/files/ndm/bin/procperf.sh
Executable file
53
roles/one_agent/files/ndm/bin/procperf.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
INTERVAL=3
|
||||
|
||||
if [ -n "$1" ];then
|
||||
INTERVAL="$1"
|
||||
fi
|
||||
|
||||
|
||||
PROCESS_NAME="exem-ndm-agent"
|
||||
|
||||
|
||||
HEAD=`ps -eo user,pid,pcpu,pmem,rss,sz,size,vsize,cmd | sed -n '1p'`
|
||||
echo " ${HEAD}"
|
||||
|
||||
PEAK=0
|
||||
|
||||
while :
|
||||
do
|
||||
CUR_DATE=`date +%d' '%H:%M:%S`
|
||||
|
||||
PROCESS_PID=`ps -ef | grep -v grep | grep -v vi | grep -v tail | grep -v ctl | grep -v svc | grep ${PROCESS_NAME} | awk -F' ' '{print $2}'`
|
||||
if [ -n "${PROCESS_PID}" ];then
|
||||
|
||||
RESULT=`ps -p ${PROCESS_PID} -o user,pid,pcpu,pmem,rss,sz,size,vsize,cmd --no-heading`
|
||||
|
||||
RSS=`echo ${RESULT} | awk -F' ' '{print $5}'`
|
||||
if [ ${RSS} -gt ${PEAK} ];then
|
||||
OUT_PEAK=" PEAK:${PEAK}/${RSS}"
|
||||
PEAK=${RSS}
|
||||
PEAK_STAT="peak"
|
||||
else
|
||||
OUT_PEAK=" PEAK:${PEAK}"
|
||||
PEAK_STAT=""
|
||||
fi
|
||||
|
||||
echo "${CUR_DATE} ${RESULT}${OUT_PEAK}"
|
||||
|
||||
if [ -n "${PEAK_STAT}" ];then
|
||||
echo "${CUR_DATE} ${RESULT}${OUT_PEAK}" >> peak.log
|
||||
fi
|
||||
|
||||
else
|
||||
echo "${CUR_DATE} ${PROCESS_NAME} is not running."
|
||||
PEAK=0
|
||||
fi
|
||||
|
||||
sleep ${INTERVAL}
|
||||
|
||||
done
|
||||
|
||||
|
||||
69
roles/one_agent/files/ndm/conf/log.conf
Normal file
69
roles/one_agent/files/ndm/conf/log.conf
Normal file
@@ -0,0 +1,69 @@
|
||||
[ndm-agent]
|
||||
directory = ${EXEM_NDM_HOME}/log
|
||||
filename = ndm-agent.log
|
||||
output_type = stdout,file
|
||||
#file_permission = <permission>
|
||||
#xmlogger_ip = <xmlogger ip>
|
||||
#xmlogger_port = <xmlogger port>
|
||||
level = info
|
||||
include_us_in_time = true
|
||||
header_flag = time,pid,thread_id,level
|
||||
#limit_file_size = <megabyte>
|
||||
#backup_directory = <backup directory>
|
||||
backup_file_count = 10
|
||||
|
||||
[syslog]
|
||||
directory = ${EXEM_NDM_HOME}/log
|
||||
filename = ndm-syslog.log
|
||||
output_type = file
|
||||
#file_permission = <permission>
|
||||
#xmlogger_ip = <xmlogger ip>
|
||||
#xmlogger_port = <xmlogger port>
|
||||
level = info
|
||||
include_us_in_time = true
|
||||
header_flag = time
|
||||
#limit_file_size = <megabyte>
|
||||
#backup_directory = <backup directory>
|
||||
#backup_file_count = <backup file count>
|
||||
|
||||
[syslog-dump]
|
||||
directory = ${EXEM_NDM_HOME}/log/dump
|
||||
filename = syslog.dump
|
||||
output_type = file
|
||||
#file_permission = <permission>
|
||||
#xmlogger_ip = <xmlogger ip>
|
||||
#xmlogger_port = <xmlogger port>
|
||||
level = trace
|
||||
include_us_in_time = true
|
||||
header_flag = time
|
||||
#limit_file_size = <megabyte>
|
||||
#backup_directory = <backup directory>
|
||||
#backup_file_count = <backup file count>
|
||||
|
||||
[snmp_trap]
|
||||
directory = ${EXEM_NDM_HOME}/log
|
||||
filename = ndm-snmptrap.log
|
||||
output_type = file
|
||||
#file_permission = <permission>
|
||||
#xmlogger_ip = <xmlogger ip>
|
||||
#xmlogger_port = <xmlogger port>
|
||||
level = trace
|
||||
include_us_in_time = true
|
||||
header_flag = time
|
||||
#limit_file_size = <megabyte>
|
||||
#backup_directory = <backup directory>
|
||||
#backup_file_count = <backup file count>
|
||||
|
||||
[snmp_trap-dump]
|
||||
directory = ${EXEM_NDM_HOME}/log/dump
|
||||
filename = snmptrap.dump
|
||||
output_type = file
|
||||
#file_permission = <permission>
|
||||
#xmlogger_ip = <xmlogger ip>
|
||||
#xmlogger_port = <xmlogger port>
|
||||
level = trace
|
||||
include_us_in_time = true
|
||||
#header_flag = time,pid,level
|
||||
#limit_file_size = 10
|
||||
#backup_directory = <backup directory>
|
||||
#backup_file_count = <backup file count>
|
||||
BIN
roles/one_agent/files/ndm/ext_lib/lib64/libcrypto.so.1.0.2k
Executable file
BIN
roles/one_agent/files/ndm/ext_lib/lib64/libcrypto.so.1.0.2k
Executable file
Binary file not shown.
BIN
roles/one_agent/files/ndm/ext_lib/lib64/libcrypto.so.10
Executable file
BIN
roles/one_agent/files/ndm/ext_lib/lib64/libcrypto.so.10
Executable file
Binary file not shown.
BIN
roles/one_agent/files/ndm/ext_lib/lib64/libssl.so.1.0.2k
Executable file
BIN
roles/one_agent/files/ndm/ext_lib/lib64/libssl.so.1.0.2k
Executable file
Binary file not shown.
BIN
roles/one_agent/files/ndm/ext_lib/lib64/libssl.so.10
Executable file
BIN
roles/one_agent/files/ndm/ext_lib/lib64/libssl.so.10
Executable file
Binary file not shown.
7
roles/one_agent/files/ndm/ext_lib/lib64/link.sh
Executable file
7
roles/one_agent/files/ndm/ext_lib/lib64/link.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
# /lib64/libcrypto.so.10 -> libcrypto.so.1.0.2k
|
||||
ln -s libcrypto.so.1.0.2k libcrypto.so.10
|
||||
# /lib64/libssl.so.10 -> libssl.so.1.0.2k
|
||||
ln -s libssl.so.1.0.2k libssl.so.10
|
||||
|
||||
BIN
roles/one_agent/files/ndm/lib64/libcrypto.so.1.0.2k
Executable file
BIN
roles/one_agent/files/ndm/lib64/libcrypto.so.1.0.2k
Executable file
Binary file not shown.
BIN
roles/one_agent/files/ndm/lib64/libcrypto.so.10
Executable file
BIN
roles/one_agent/files/ndm/lib64/libcrypto.so.10
Executable file
Binary file not shown.
BIN
roles/one_agent/files/ndm/lib64/libssl.so.1.0.2k
Executable file
BIN
roles/one_agent/files/ndm/lib64/libssl.so.1.0.2k
Executable file
Binary file not shown.
BIN
roles/one_agent/files/ndm/lib64/libssl.so.10
Executable file
BIN
roles/one_agent/files/ndm/lib64/libssl.so.10
Executable file
Binary file not shown.
7
roles/one_agent/files/ndm/lib64/link.sh
Executable file
7
roles/one_agent/files/ndm/lib64/link.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
# /lib64/libcrypto.so.10 -> libcrypto.so.1.0.2k
|
||||
ln -s libcrypto.so.1.0.2k libcrypto.so.10
|
||||
# /lib64/libssl.so.10 -> libssl.so.1.0.2k
|
||||
ln -s libssl.so.1.0.2k libssl.so.10
|
||||
|
||||
@@ -11,3 +11,7 @@
|
||||
- agent_list | select('search', 'container-agent') | list | count > 0
|
||||
- "'container_agent' in group_names"
|
||||
|
||||
- include_tasks: ndm-agent.yml
|
||||
when:
|
||||
- agent_list | select('search', 'ndm-agent') | list | count > 0
|
||||
- "'ndm_agent' in group_names"
|
||||
37
roles/one_agent/tasks/ndm-agent.yml
Normal file
37
roles/one_agent/tasks/ndm-agent.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
- name: Create exemONE Agent Directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ EXEM_HOME }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Copy exemONE NDM-Agent File
|
||||
ansible.posix.synchronize:
|
||||
src: "{{ role_path }}/files/ndm"
|
||||
dest: "{{ EXEM_HOME }}"
|
||||
|
||||
- name: Create Agent Script
|
||||
ansible.builtin.template:
|
||||
src: "{{ item }}.j2"
|
||||
dest: "{{ EXEM_HOME }}/ndm/bin/{{ item }}"
|
||||
mode: '0740'
|
||||
with_items:
|
||||
- ndm-ctl
|
||||
- ndm-svc
|
||||
- reg.env
|
||||
- start
|
||||
- stop
|
||||
|
||||
- name: Create Agent Conf
|
||||
ansible.builtin.template:
|
||||
src: "{{ item }}.j2"
|
||||
dest: "{{ EXEM_HOME }}/ndm/conf/{{ item }}"
|
||||
mode: '0755'
|
||||
with_items:
|
||||
- ndm.conf
|
||||
|
||||
- name: chmod change
|
||||
ansible.builtin.shell: "chmod -R 740 {{ EXEM_HOME }}/ndm"
|
||||
|
||||
- name: exem-ndm-agent start
|
||||
ansible.builtin.shell: "nohup {{ EXEM_HOME }}/ndm/bin/start"
|
||||
@@ -13,9 +13,7 @@
|
||||
when: ansible_distribution_major_version == '7'
|
||||
|
||||
- name: install rsync os version 7
|
||||
ansible.builtin.yum:
|
||||
name: "{{ EXEM_HOME }}/rhel7.rpm"
|
||||
state: present
|
||||
ansible.builtin.shell: "yum localinstall -y {{ EXEM_HOME }}/rhel7.rpm"
|
||||
when: ansible_distribution_major_version == '7'
|
||||
|
||||
- name: Copy rsync install rpm OS - 8
|
||||
@@ -26,9 +24,7 @@
|
||||
when: ansible_distribution_major_version == '8'
|
||||
|
||||
- name: install rsync os version 8
|
||||
ansible.builtin.yum:
|
||||
name: "{{ EXEM_HOME }}/rhel8.rpm"
|
||||
state: present
|
||||
ansible.builtin.shell: "yum localinstall -y {{ EXEM_HOME }}/rhel8.rpm"
|
||||
when: ansible_distribution_major_version == '8'
|
||||
|
||||
- name: Copy rsync install rpm OS - 9
|
||||
@@ -39,7 +35,5 @@
|
||||
when: ansible_distribution_major_version == '9'
|
||||
|
||||
- name: install rsync os version 9
|
||||
ansible.builtin.yum:
|
||||
name: "{{ role_path }}/files/rpm/rhel9.rpm"
|
||||
state: present
|
||||
ansible.builtin.shell: "yum localinstall -y {{ EXEM_HOME }}/rhel9.rpm"
|
||||
when: ansible_distribution_major_version == '9'
|
||||
198
roles/one_agent/templates/ndm-ctl.j2
Normal file
198
roles/one_agent/templates/ndm-ctl.j2
Normal file
@@ -0,0 +1,198 @@
|
||||
#!/bin/sh
|
||||
|
||||
#EXEM_NDM_HOME="/{{ EXEM_HOME }}/ndm"
|
||||
|
||||
source /{{ EXEM_HOME }}/ndm/bin/reg.env
|
||||
|
||||
|
||||
NDM_STOP_TIMEOUT=10
|
||||
|
||||
Usage()
|
||||
{
|
||||
echo "Usage : ndm-ctl [version|start|restart|stop]"
|
||||
echo ""
|
||||
exit $1
|
||||
}
|
||||
|
||||
|
||||
CMD_ARGUMENT=$@
|
||||
|
||||
BASE_NAME=`basename $0`
|
||||
|
||||
case "${BASE_NAME}" in
|
||||
start)
|
||||
CMD_ARGUMENT="start"
|
||||
;;
|
||||
stop)
|
||||
CMD_ARGUMENT="stop"
|
||||
;;
|
||||
restart)
|
||||
CMD_ARGUMENT="restart"
|
||||
;;
|
||||
version)
|
||||
CMD_ARGUMENT="version"
|
||||
;;
|
||||
mongomonctl)
|
||||
;;
|
||||
*)
|
||||
echo "unknown link. please check link name[$0]."
|
||||
Usage 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# option process
|
||||
if [ -n "${CMD_ARGUMENT}" ];
|
||||
then
|
||||
|
||||
for i in ${CMD_ARGUMENT}
|
||||
do
|
||||
|
||||
# echo "$i"
|
||||
|
||||
case "$i" in
|
||||
start)
|
||||
ENV_RUN_MODE="start"
|
||||
RUN_LIST="start"
|
||||
;;
|
||||
restart)
|
||||
ENV_RUN_MODE="restart"
|
||||
RUN_LIST="stop start"
|
||||
;;
|
||||
stop)
|
||||
ENV_RUN_MODE="stop"
|
||||
RUN_LIST="stop"
|
||||
;;
|
||||
version)
|
||||
ENV_RUN_MODE="version"
|
||||
RUN_LIST="version"
|
||||
;;
|
||||
help)
|
||||
Usage 0
|
||||
;;
|
||||
*)
|
||||
Usage 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ ! -d "${EXEM_NDM_HOME}" ];then
|
||||
echo "agent home directory is not exist.[${EXEM_NDM_HOME}]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
cd ${EXEM_NDM_HOME} || exit 1
|
||||
|
||||
|
||||
PROCESS_NAME="exem-ndm-agent"
|
||||
SVC_FILE="ndm-svc"
|
||||
SVC_PID_FILE="data/svc.pid"
|
||||
AGENT_PID_FILE="data/ndm-agent.pid"
|
||||
|
||||
|
||||
echo "${PROCESS_NAME} ${ENV_RUN_MODE} --- "
|
||||
|
||||
|
||||
for MODE in ${RUN_LIST}; do
|
||||
|
||||
case "${MODE}" in
|
||||
version)
|
||||
bin/exem-ndm-agent -v
|
||||
;;
|
||||
start)
|
||||
|
||||
if [ -f "${SVC_PID_FILE}" ];then
|
||||
|
||||
SVC_PID=`cat ${SVC_PID_FILE}`
|
||||
|
||||
PROC_COMM=`cat /proc/${SVC_PID}/comm`
|
||||
if [ $? -ne 0 ];then
|
||||
PROC_COMM="none"
|
||||
fi
|
||||
|
||||
if [ "${PROC_COMM}" = "${SVC_FILE}" ];then
|
||||
echo "${PROCESS_NAME} is running."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf ${SVC_PID_FILE}
|
||||
|
||||
fi
|
||||
|
||||
if [ ! -f "bin/${SVC_FILE}" ];then
|
||||
echo "bin/${SVC_FILE} is not exist."
|
||||
exit 2
|
||||
fi
|
||||
|
||||
bin/${SVC_FILE} >> ${EXEM_NDM_HOME}/log/svc.log 2>&1 &
|
||||
# bin/${SVC_FILE} > /dev/null 2>&1 &
|
||||
SVC_PID="$!"
|
||||
echo "SVC_PID[${SVC_PID}]"
|
||||
echo "${SVC_PID}" > ${SVC_PID_FILE}
|
||||
;;
|
||||
stop)
|
||||
|
||||
SVC_PID=`cat ${SVC_PID_FILE}`
|
||||
if [ $? -ne 0 ] || [ "${SVC_PID}" = "" ];then
|
||||
echo "${PROCESS_NAME} Service is not running."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PS_SVC_PID=`ps -ef | grep -v grep | grep ${SVC_PID} | grep ${SVC_FILE}`
|
||||
if [ ! "${PS_SVC_PID}" = "" ];then
|
||||
kill -9 ${SVC_PID}
|
||||
echo "${PROCESS_NAME} Service terminate."
|
||||
else
|
||||
echo "${PROCESS_NAME} Service pid is not match[${PS_SVC_PID}/${SVC_PID}]"
|
||||
fi
|
||||
|
||||
rm -rf ${SVC_PID_FILE}
|
||||
|
||||
|
||||
if [ -f "${AGENT_PID_FILE}" ];then
|
||||
|
||||
RUN_NDM_PID=`cat ${AGENT_PID_FILE} | tr '\0' '\n'`
|
||||
|
||||
rm -rf ${AGENT_PID_FILE}
|
||||
|
||||
echo -n "Waiting for ${PROCESS_NAME} process(${RUN_NDM_PID}) exit."
|
||||
|
||||
NUM="0"
|
||||
while [ ${NUM} -lt ${NDM_STOP_TIMEOUT} ]
|
||||
do
|
||||
PS_NDM_PID=`ps -ef | grep -v grep | grep ${RUN_NDM_PID} | grep mongomon`
|
||||
if [ "${PS_NDM_PID}" = "" ];then
|
||||
break
|
||||
fi
|
||||
|
||||
NUM=`expr ${NUM} + 1`
|
||||
sleep 1
|
||||
echo -n "."
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
if [ ${NUM} -eq ${NDM_STOP_TIMEOUT} ];then
|
||||
echo "${PROCESS_NAME} process shutdown wait timed out."
|
||||
else
|
||||
echo "${PROCESS_NAME} process terminated."
|
||||
fi
|
||||
|
||||
else
|
||||
echo "${PROCESS_NAME} process is not running."
|
||||
fi
|
||||
|
||||
;;
|
||||
*)
|
||||
Usage 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
125
roles/one_agent/templates/ndm-svc.j2
Normal file
125
roles/one_agent/templates/ndm-svc.j2
Normal file
@@ -0,0 +1,125 @@
|
||||
#!/bin/sh
|
||||
|
||||
source /{{ EXEM_HOME }}/ndm/bin/reg.env
|
||||
#source /root/test2/bin/reg.env
|
||||
|
||||
|
||||
|
||||
func_check_log_file()
|
||||
{
|
||||
LOG_CHK_SIZE=1048576
|
||||
if [ -n "$2" ];then
|
||||
LOG_CHK_SIZE=$2
|
||||
fi
|
||||
|
||||
if [ -f "$1" ];then
|
||||
|
||||
LOG_SIZE=`ls -la $1 | awk -F' ' '{print $5}'`
|
||||
if [ $? -eq 0 ]; then
|
||||
|
||||
if [ ${LOG_SIZE} -gt ${LOG_CHK_SIZE} ]; then
|
||||
rm -rf $1
|
||||
# echo "log size is over. remove log file.[size:${LOG_SIZE},file:$1]"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
PROCESS_NAME="exem-ndm-agent"
|
||||
PROCESS_PATH="${PROCESS_NAME}"
|
||||
PID_FILE="ndm-agent.pid"
|
||||
|
||||
if [ ! -d "${EXEM_NDM_HOME}" ];then
|
||||
echo "exem ndm home directory is not exist.[${EXEM_NDM_HOME}]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# working directory is ${EXEM_NDM_HOME}/bin
|
||||
cd ${EXEM_NDM_HOME} || exit 1
|
||||
|
||||
|
||||
if [ -f "${EXEM_NDM_HOME}/data/${PID_FILE}" ]; then
|
||||
RUN_PID=`cat ${EXEM_NDM_HOME}/data/${PID_FILE} | tr '\0' '\n' || echo "none"`
|
||||
else
|
||||
RUN_PID="none"
|
||||
fi
|
||||
|
||||
PEAK=0
|
||||
|
||||
while :
|
||||
do
|
||||
|
||||
# log manage
|
||||
func_check_log_file "${EXEM_NDM_HOME}/log/svc.log" 1048576
|
||||
|
||||
if [ "${RUN_PID}" = "none" ];then
|
||||
PATH=${EXEM_NDM_HOME}/bin:$PATH ${PROCESS_PATH} > /dev/null 2>&1 &
|
||||
RUN_PID="$!"
|
||||
echo "execute ${PROCESS_PATH} process.[${RUN_PID}]"
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
if [ ! "${RUN_PID}" = "none" ] && [ -f "/proc/${RUN_PID}/cmdline" ];then
|
||||
# PROC_COMM=`cat /proc/${RUN_PID}/comm || echo "none"`
|
||||
PROC_COMM=`cat /proc/${RUN_PID}/cmdline | tr '\0' ' ' | awk -F' ' '{print $1}' || echo "none"`
|
||||
# echo "PROC_COMM[${PROC_COMM}]"
|
||||
else
|
||||
PROC_COMM="none"
|
||||
fi
|
||||
|
||||
|
||||
if [ ! "${PROC_COMM}" = "${PROCESS_PATH}" ];then
|
||||
echo "${PROCESS_NAME} process is not running.[pid:${RUN_PID}],comm[${PROC_COMM}]"
|
||||
RUN_PID="none"
|
||||
fi
|
||||
|
||||
##########################################
|
||||
# check memory peak
|
||||
CUR_DATE=`date +%d' '%H:%M:%S`
|
||||
|
||||
# MONGOMON_PID=`ps -ef | grep -v grep | grep -v vi | grep -v tail | grep -v ctl | grep -v svc | grep ${PROCESS_NAME} | awk -F' ' '{print $2}'`
|
||||
# if [ -n "${MONGOMON_PID}" ];then
|
||||
|
||||
|
||||
|
||||
if [ ! "${RUN_PID}" = "none" ];then
|
||||
|
||||
# RESULT=`ps -p ${RUN_PID} -o user,pid,pcpu,pmem,rss,sz,size,vsize,cmd --no-heading`
|
||||
RESULT=`ps -p ${RUN_PID} -o user,pid,pcpu,pmem,rss,sz,size,vsize,cmd --no-heading`
|
||||
if [ -z "${RESULT}" ];then
|
||||
echo "${CUR_DATE} get process stat has failed.[${RUN_PID}]"
|
||||
PEAK=0
|
||||
fi
|
||||
|
||||
RSS=`echo ${RESULT} | awk -F' ' '{print $5}'`
|
||||
if [ ${RSS} -gt ${PEAK} ];then
|
||||
OUT_PEAK=" PEAK:${PEAK}/${RSS}"
|
||||
PEAK=${RSS}
|
||||
PEAK_STAT="peak"
|
||||
else
|
||||
OUT_PEAK=" PEAK:${PEAK}"
|
||||
PEAK_STAT=""
|
||||
fi
|
||||
|
||||
# echo "${CUR_DATE} ${RESULT}${OUT_PEAK}"
|
||||
|
||||
if [ -n "${PEAK_STAT}" ];then
|
||||
func_check_log_file "peak.log" 1024
|
||||
echo "${CUR_DATE} ${RESULT}${OUT_PEAK}" >> peak.log
|
||||
fi
|
||||
|
||||
else
|
||||
echo "${CUR_DATE} ${PROCESS_NAME} is not running."
|
||||
PEAK=0
|
||||
fi
|
||||
|
||||
|
||||
sleep 3
|
||||
done
|
||||
|
||||
|
||||
|
||||
13
roles/one_agent/templates/ndm.conf.j2
Normal file
13
roles/one_agent/templates/ndm.conf.j2
Normal file
@@ -0,0 +1,13 @@
|
||||
#app_name="exem-ndm-agent"
|
||||
|
||||
receiver_ip={{ RECEIVER_ADDR }}
|
||||
receiver_port={{ RECEIVER_PORT | default('9010') }}
|
||||
#disconnect_exit=no
|
||||
|
||||
#syslog_port=514
|
||||
#snmptrap_port=162
|
||||
|
||||
|
||||
[Debug]
|
||||
#write_recv_packet=no
|
||||
#write_send_packet=no
|
||||
9
roles/one_agent/templates/reg.env.j2
Normal file
9
roles/one_agent/templates/reg.env.j2
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
export EXEM_NDM_HOME=/{{ EXEM_HOME }}/ndm
|
||||
|
||||
if [ -z ${LD_LIBRARY_PATH} ];then
|
||||
LD_LIBRARY_PATH=${EXEM_NDM_HOME}/lib64
|
||||
else
|
||||
LD_LIBRARY_PATH=${EXEM_NDM_HOME}/lib64:${LD_LIBRARY_PATH}
|
||||
fi
|
||||
export LD_LIBRARY_PATH
|
||||
198
roles/one_agent/templates/start.j2
Normal file
198
roles/one_agent/templates/start.j2
Normal file
@@ -0,0 +1,198 @@
|
||||
#!/bin/sh
|
||||
|
||||
#EXEM_NDM_HOME="/{{ EXEM_HOME }}/ndm"
|
||||
|
||||
source /{{ EXEM_HOME }}/ndm/bin/reg.env
|
||||
|
||||
|
||||
NDM_STOP_TIMEOUT=10
|
||||
|
||||
Usage()
|
||||
{
|
||||
echo "Usage : ndm-ctl [version|start|restart|stop]"
|
||||
echo ""
|
||||
exit $1
|
||||
}
|
||||
|
||||
|
||||
CMD_ARGUMENT=$@
|
||||
|
||||
BASE_NAME=`basename $0`
|
||||
|
||||
case "${BASE_NAME}" in
|
||||
start)
|
||||
CMD_ARGUMENT="start"
|
||||
;;
|
||||
stop)
|
||||
CMD_ARGUMENT="stop"
|
||||
;;
|
||||
restart)
|
||||
CMD_ARGUMENT="restart"
|
||||
;;
|
||||
version)
|
||||
CMD_ARGUMENT="version"
|
||||
;;
|
||||
mongomonctl)
|
||||
;;
|
||||
*)
|
||||
echo "unknown link. please check link name[$0]."
|
||||
Usage 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# option process
|
||||
if [ -n "${CMD_ARGUMENT}" ];
|
||||
then
|
||||
|
||||
for i in ${CMD_ARGUMENT}
|
||||
do
|
||||
|
||||
# echo "$i"
|
||||
|
||||
case "$i" in
|
||||
start)
|
||||
ENV_RUN_MODE="start"
|
||||
RUN_LIST="start"
|
||||
;;
|
||||
restart)
|
||||
ENV_RUN_MODE="restart"
|
||||
RUN_LIST="stop start"
|
||||
;;
|
||||
stop)
|
||||
ENV_RUN_MODE="stop"
|
||||
RUN_LIST="stop"
|
||||
;;
|
||||
version)
|
||||
ENV_RUN_MODE="version"
|
||||
RUN_LIST="version"
|
||||
;;
|
||||
help)
|
||||
Usage 0
|
||||
;;
|
||||
*)
|
||||
Usage 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ ! -d "${EXEM_NDM_HOME}" ];then
|
||||
echo "agent home directory is not exist.[${EXEM_NDM_HOME}]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
cd ${EXEM_NDM_HOME} || exit 1
|
||||
|
||||
|
||||
PROCESS_NAME="exem-ndm-agent"
|
||||
SVC_FILE="ndm-svc"
|
||||
SVC_PID_FILE="data/svc.pid"
|
||||
AGENT_PID_FILE="data/ndm-agent.pid"
|
||||
|
||||
|
||||
echo "${PROCESS_NAME} ${ENV_RUN_MODE} --- "
|
||||
|
||||
|
||||
for MODE in ${RUN_LIST}; do
|
||||
|
||||
case "${MODE}" in
|
||||
version)
|
||||
bin/exem-ndm-agent -v
|
||||
;;
|
||||
start)
|
||||
|
||||
if [ -f "${SVC_PID_FILE}" ];then
|
||||
|
||||
SVC_PID=`cat ${SVC_PID_FILE}`
|
||||
|
||||
PROC_COMM=`cat /proc/${SVC_PID}/comm`
|
||||
if [ $? -ne 0 ];then
|
||||
PROC_COMM="none"
|
||||
fi
|
||||
|
||||
if [ "${PROC_COMM}" = "${SVC_FILE}" ];then
|
||||
echo "${PROCESS_NAME} is running."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf ${SVC_PID_FILE}
|
||||
|
||||
fi
|
||||
|
||||
if [ ! -f "bin/${SVC_FILE}" ];then
|
||||
echo "bin/${SVC_FILE} is not exist."
|
||||
exit 2
|
||||
fi
|
||||
|
||||
bin/${SVC_FILE} >> ${EXEM_NDM_HOME}/log/svc.log 2>&1 &
|
||||
# bin/${SVC_FILE} > /dev/null 2>&1 &
|
||||
SVC_PID="$!"
|
||||
echo "SVC_PID[${SVC_PID}]"
|
||||
echo "${SVC_PID}" > ${SVC_PID_FILE}
|
||||
;;
|
||||
stop)
|
||||
|
||||
SVC_PID=`cat ${SVC_PID_FILE}`
|
||||
if [ $? -ne 0 ] || [ "${SVC_PID}" = "" ];then
|
||||
echo "${PROCESS_NAME} Service is not running."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PS_SVC_PID=`ps -ef | grep -v grep | grep ${SVC_PID} | grep ${SVC_FILE}`
|
||||
if [ ! "${PS_SVC_PID}" = "" ];then
|
||||
kill -9 ${SVC_PID}
|
||||
echo "${PROCESS_NAME} Service terminate."
|
||||
else
|
||||
echo "${PROCESS_NAME} Service pid is not match[${PS_SVC_PID}/${SVC_PID}]"
|
||||
fi
|
||||
|
||||
rm -rf ${SVC_PID_FILE}
|
||||
|
||||
|
||||
if [ -f "${AGENT_PID_FILE}" ];then
|
||||
|
||||
RUN_NDM_PID=`cat ${AGENT_PID_FILE} | tr '\0' '\n'`
|
||||
|
||||
rm -rf ${AGENT_PID_FILE}
|
||||
|
||||
echo -n "Waiting for ${PROCESS_NAME} process(${RUN_NDM_PID}) exit."
|
||||
|
||||
NUM="0"
|
||||
while [ ${NUM} -lt ${NDM_STOP_TIMEOUT} ]
|
||||
do
|
||||
PS_NDM_PID=`ps -ef | grep -v grep | grep ${RUN_NDM_PID} | grep mongomon`
|
||||
if [ "${PS_NDM_PID}" = "" ];then
|
||||
break
|
||||
fi
|
||||
|
||||
NUM=`expr ${NUM} + 1`
|
||||
sleep 1
|
||||
echo -n "."
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
if [ ${NUM} -eq ${NDM_STOP_TIMEOUT} ];then
|
||||
echo "${PROCESS_NAME} process shutdown wait timed out."
|
||||
else
|
||||
echo "${PROCESS_NAME} process terminated."
|
||||
fi
|
||||
|
||||
else
|
||||
echo "${PROCESS_NAME} process is not running."
|
||||
fi
|
||||
|
||||
;;
|
||||
*)
|
||||
Usage 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
198
roles/one_agent/templates/stop.j2
Normal file
198
roles/one_agent/templates/stop.j2
Normal file
@@ -0,0 +1,198 @@
|
||||
#!/bin/sh
|
||||
|
||||
#EXEM_NDM_HOME="/{{ EXEM_HOME }}/ndm"
|
||||
|
||||
source /{{ EXEM_HOME }}/ndm/bin/reg.env
|
||||
|
||||
|
||||
NDM_STOP_TIMEOUT=10
|
||||
|
||||
Usage()
|
||||
{
|
||||
echo "Usage : ndm-ctl [version|start|restart|stop]"
|
||||
echo ""
|
||||
exit $1
|
||||
}
|
||||
|
||||
|
||||
CMD_ARGUMENT=$@
|
||||
|
||||
BASE_NAME=`basename $0`
|
||||
|
||||
case "${BASE_NAME}" in
|
||||
start)
|
||||
CMD_ARGUMENT="start"
|
||||
;;
|
||||
stop)
|
||||
CMD_ARGUMENT="stop"
|
||||
;;
|
||||
restart)
|
||||
CMD_ARGUMENT="restart"
|
||||
;;
|
||||
version)
|
||||
CMD_ARGUMENT="version"
|
||||
;;
|
||||
mongomonctl)
|
||||
;;
|
||||
*)
|
||||
echo "unknown link. please check link name[$0]."
|
||||
Usage 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# option process
|
||||
if [ -n "${CMD_ARGUMENT}" ];
|
||||
then
|
||||
|
||||
for i in ${CMD_ARGUMENT}
|
||||
do
|
||||
|
||||
# echo "$i"
|
||||
|
||||
case "$i" in
|
||||
start)
|
||||
ENV_RUN_MODE="start"
|
||||
RUN_LIST="start"
|
||||
;;
|
||||
restart)
|
||||
ENV_RUN_MODE="restart"
|
||||
RUN_LIST="stop start"
|
||||
;;
|
||||
stop)
|
||||
ENV_RUN_MODE="stop"
|
||||
RUN_LIST="stop"
|
||||
;;
|
||||
version)
|
||||
ENV_RUN_MODE="version"
|
||||
RUN_LIST="version"
|
||||
;;
|
||||
help)
|
||||
Usage 0
|
||||
;;
|
||||
*)
|
||||
Usage 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ ! -d "${EXEM_NDM_HOME}" ];then
|
||||
echo "agent home directory is not exist.[${EXEM_NDM_HOME}]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
cd ${EXEM_NDM_HOME} || exit 1
|
||||
|
||||
|
||||
PROCESS_NAME="exem-ndm-agent"
|
||||
SVC_FILE="ndm-svc"
|
||||
SVC_PID_FILE="data/svc.pid"
|
||||
AGENT_PID_FILE="data/ndm-agent.pid"
|
||||
|
||||
|
||||
echo "${PROCESS_NAME} ${ENV_RUN_MODE} --- "
|
||||
|
||||
|
||||
for MODE in ${RUN_LIST}; do
|
||||
|
||||
case "${MODE}" in
|
||||
version)
|
||||
bin/exem-ndm-agent -v
|
||||
;;
|
||||
start)
|
||||
|
||||
if [ -f "${SVC_PID_FILE}" ];then
|
||||
|
||||
SVC_PID=`cat ${SVC_PID_FILE}`
|
||||
|
||||
PROC_COMM=`cat /proc/${SVC_PID}/comm`
|
||||
if [ $? -ne 0 ];then
|
||||
PROC_COMM="none"
|
||||
fi
|
||||
|
||||
if [ "${PROC_COMM}" = "${SVC_FILE}" ];then
|
||||
echo "${PROCESS_NAME} is running."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf ${SVC_PID_FILE}
|
||||
|
||||
fi
|
||||
|
||||
if [ ! -f "bin/${SVC_FILE}" ];then
|
||||
echo "bin/${SVC_FILE} is not exist."
|
||||
exit 2
|
||||
fi
|
||||
|
||||
bin/${SVC_FILE} >> ${EXEM_NDM_HOME}/log/svc.log 2>&1 &
|
||||
# bin/${SVC_FILE} > /dev/null 2>&1 &
|
||||
SVC_PID="$!"
|
||||
echo "SVC_PID[${SVC_PID}]"
|
||||
echo "${SVC_PID}" > ${SVC_PID_FILE}
|
||||
;;
|
||||
stop)
|
||||
|
||||
SVC_PID=`cat ${SVC_PID_FILE}`
|
||||
if [ $? -ne 0 ] || [ "${SVC_PID}" = "" ];then
|
||||
echo "${PROCESS_NAME} Service is not running."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PS_SVC_PID=`ps -ef | grep -v grep | grep ${SVC_PID} | grep ${SVC_FILE}`
|
||||
if [ ! "${PS_SVC_PID}" = "" ];then
|
||||
kill -9 ${SVC_PID}
|
||||
echo "${PROCESS_NAME} Service terminate."
|
||||
else
|
||||
echo "${PROCESS_NAME} Service pid is not match[${PS_SVC_PID}/${SVC_PID}]"
|
||||
fi
|
||||
|
||||
rm -rf ${SVC_PID_FILE}
|
||||
|
||||
|
||||
if [ -f "${AGENT_PID_FILE}" ];then
|
||||
|
||||
RUN_NDM_PID=`cat ${AGENT_PID_FILE} | tr '\0' '\n'`
|
||||
|
||||
rm -rf ${AGENT_PID_FILE}
|
||||
|
||||
echo -n "Waiting for ${PROCESS_NAME} process(${RUN_NDM_PID}) exit."
|
||||
|
||||
NUM="0"
|
||||
while [ ${NUM} -lt ${NDM_STOP_TIMEOUT} ]
|
||||
do
|
||||
PS_NDM_PID=`ps -ef | grep -v grep | grep ${RUN_NDM_PID} | grep mongomon`
|
||||
if [ "${PS_NDM_PID}" = "" ];then
|
||||
break
|
||||
fi
|
||||
|
||||
NUM=`expr ${NUM} + 1`
|
||||
sleep 1
|
||||
echo -n "."
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
if [ ${NUM} -eq ${NDM_STOP_TIMEOUT} ];then
|
||||
echo "${PROCESS_NAME} process shutdown wait timed out."
|
||||
else
|
||||
echo "${PROCESS_NAME} process terminated."
|
||||
fi
|
||||
|
||||
else
|
||||
echo "${PROCESS_NAME} process is not running."
|
||||
fi
|
||||
|
||||
;;
|
||||
*)
|
||||
Usage 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user