如何监控Tigase的服务?

XMPP

1 基础知识

1.1 tigase monitor 服务端

1.1.1 支持的监控协议

– JMX/RMI、JMX,带安全控制,提供最大控制和可见性状态
– SNMP,带安全控制
– HTTP,无安全控制,建议防火墙后面使用

1.1.2 监视的统计信息

– s2s、c2s和Bosh的网络连接数
– 组件的负载,如SM,MR,c2s,s2s,Bosh,MUC和PubSub
– 系统统计信息,如内存使用情况(堆与非堆)、服务器正常运行时间、人类可读文本
– 用户统计信息,注册用户数和在线用户会话数

1.1.3 监控协议的优点

– 系统资源与CPU消耗非常低

1.1.4 所需要的库

– 需要安装扩展包
– 扩展包包括,tigase-extras(0.3.0-SNAPSHOT或更高版本)和jdmkrt.jar(来自OpenDMK项目5.1或更高以上版本)
– 4.20或更高版本的二进制默认包含两个扩展包

1.1.5 启用服务端的监控支持

vim %{TIGASE_HOME}/etc/init.properties

增加如下参数:

--monitoring=jmx:9050,http:9080,snmp:9060

1.2 tigase monitor 客户端

1.2.1 简介

Tigase monitor是一个独立的桌面应用程序,他用于连接Tigase服务端,并提供系统状态概述。

1.2.2 软件功能

– 提供Tigase服务端的系统状态概述
– 显示系统各项图标指标,CPU使用率、内存使用情况、用户分布、各种流量参数
– 提供内部队列的大小、潜在瓶颈、平均处理时间等详细信息
– 系统事件通知

2 最佳实践

2.1 安装Tigase XMPP服务端

请根据如下链接安装Tigase XMPP服务端,
https://www.cmdschool.org/archives/2478

2.2 启用服务端监控支持

2.2.1 开启监控功能

ls ${TIGASE_HOME}/jars/tigase-extras.jar ${TIGASE_HOME}/jars/jdmkrt.jar

显示如下则安装包都存在,

usr/tigase/jars/jdmkrt.jar  /usr/tigase/jars/tigase-extras.jar

2.2.2 开启监控功能

vim /etc/tigase/init.properties

增加如下参数:

--monitoring=jmx:9050,http:9080,snmp:9060

2.2.3 设置JMX访问控制

cp ${TIGASE_HOME}/etc/jmx.access ${TIGASE_HOME}/etc/jmx.access.default
cp ${TIGASE_HOME}/etc/jmx.password ${TIGASE_HOME}/etc/jmx.password.default
ln -s ${TIGASE_HOME}/etc/jmx.access /etc/tigase/jmx.access
ln -s ${TIGASE_HOME}/etc/jmx.password /etc/tigase/jmx.password

查看访问控制配置:

egrep -v "^#|^$" /etc/tigase/jmx.*

可见如下配置:

/etc/tigase/jmx.access:monitor readonly
/etc/tigase/jmx.access:admin readwrite
/etc/tigase/jmx.password:admin admin_pass
/etc/tigase/jmx.password:monitor monitor_pass

注:“:”后面的是文件内容,可见,
– 账号“monitor”是只读权限,密码是“monitor_pass”
– 账号“admin”是管理权限,密码是“admin_pass”

2.2.4 设置snmp访问控制

cp ${TIGASE_HOME}/etc/snmp.acl ${TIGASE_HOME}/etc/snmp.acl.default
ln -s ${TIGASE_HOME}/etc/snmp.acl /etc/tigase/snmp.acl

定义访问控制配置

vim /etc/tigase/snmp.acl

修改如下配置:

acl = {
  {
    communities = public, private
    access = read-write
    managers = localhost, tigase.cmdschool.org
  }
  {
    communities = admin
    access = read-write
    managers = localhost, admin.cmdschool.org
  }
}

注:定义的主机“tigase.cmdschool.org”和“admin.cmdschool.org”请保证有DNS解析,否则请配置host记录的名称解析

2.2.5 重启使服务生效

/etc/init.d/tigased restart

2.2.6 确认服务的端口

netstat -anp | grep ::: | grep java | egrep "9050|9080|9060"

显示如下:

tcp6       0      0 :::9080                 :::*                    LISTEN      27753/java
tcp6       0      0 :::9050                 :::*                    LISTEN      27753/java
udp6       0      0 :::9060                 :::*                                27753/java

2.2.7 配置防火墙

firewall-cmd --permanent --add-port 9050/tcp
firewall-cmd --permanent --add-port 9060/udp
firewall-cmd --permanent --add-port 9080/tcp
firewall-cmd --reload
firewall-cmd --list-all

2.3 http的监控方式

http://10.168.0.90:9080/

2.4 配置jmx的监控客户端

2.4.1 配置桌面环境

请根据以下链接的教程配置桌面环境,
https://www.cmdschool.org/archives/1884

2.4.2 下载安装包

cd ~
wget https://tigase.tech/attachments/download/5901/tigase-monitor-1.0.0-SNAPSHOT-b101.tar.gz

2.4.3 解压安装包

tar -xf tigase-monitor-1.0.0-SNAPSHOT-b101.tar.gz

2.4.4 安装JDK环境

请参阅以下文档部署JDK环境,
https://www.cmdschool.org/archives/397

2.4.5 修改配置文件

vim tigase-monitor-1.0.0-SNAPSHOT-b101/etc/monitor.properties

修改如下参数:

nodes=blue:10.168.0.90
jmx-user=admin
jmx-pass=admin_pass

参数就解析如下,
nodes,参数声明节点的标记颜色与节点名称,使用“:”号分隔
jmx-user,参数声明JMX访问控制设置的账号
jmx-pass,参数声明JMX访问控制设置的密码

2.4.6 运行监控程序

cd tigase-monitor-1.0.0-SNAPSHOT-b101/
./bin/monitor.sh

2.4.7 手动运行监控程序

本子上,该脚本执行Java程序,脚本内容如下,

cat bin/monitor.sh

脚本内容如下:

#!/bin/bash

unset JAVA_TOOL_OPTIONS

#DYLD_LIBRARY_PATH="/Users/kobit/Downloads/yjp-8.0.15/bin/mac"
#PROFILER="-agentlib:yjpagent"
#GC="-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:ParallelCMSThreads=2"
#JAVA_OPTIONS="${GC} ${PROFILER} -Xms100M -Xmx3000m"
#CP=`ls -d libs/*.jar 2>/dev/null | tr '\n' :`
if [ ! "$1" == "" ] ; then
        echo "Using $1 configuration"
        java ${JAVA_OPTIONS} -jar libs/tigase-monitor.jar --init $1
else
        echo "Using default configuration: etc/monitor.properties"
        java ${JAVA_OPTIONS} -jar libs/tigase-monitor.jar --init etc/monitor.properties
fi

所以,如果你要手动执行,执行如下行即可,

cd tigase-monitor-1.0.0-SNAPSHOT-b101/
java -jar libs/tigase-monitor.jar --init etc/monitor.properties

注:手动运行方法也适合于windows系统

参阅文档:
======================

tigase server端的配置
———————
http://docs.tigase.org/tigase-server/7.0.1/Administration_Guide/html/#_server_monitoring

tigase server端的安全配置
———————
http://docs.tigase.org/tigase-server/7.0.1/Administration_Guide/webhelp/monitoring_jmx.html

tigase monitor的简介
———————
https://tigase.net/content/tigase-monitor

tigase monitor下载
———————
https://tigase.tech/projects/tigase-monitor/files

jconsole的监控方式
https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

没有评论

发表回复

Bash
如何用Tigase监控postfix smtp服务?

1 前言 一个问题,一篇文章,一出故事。 笔者生产中的smtp服务器最近因为负载均衡器的路由故障而导 …

Bash
如何用Tigase监控Elasticsearch集群?

1 前言 一个问题,一篇文章,一出故事。 笔者生产中有一套Elasticsearch集群,笔者为了能 …

Bash
如何实现监视PostFix的延迟邮件警告?

1 前言 一个问题,一篇文章,一出故事。 笔者生产中有一套PostFix集群,最近经历了一次邮件延迟 …