监控宝服务性能监控配置(完整版)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

继上篇监控宝服务器监控后,此篇博文详细记录下项目中对常用服务监控的配置步骤

服务器监控可参考:http://blog.51cto.com/kaliarch/2044977

监控宝服务性能监控配置(完整版)

一、目的 2

二、理论基础 2

2.1 相关理论 2

2.2 监控项目 2

三、服务性能监控部署 2

3.1 Nginx 服务性能监控 2

3.2 Apache 服务性能监控 6

3.3 Mysql 服务性能监控 9

3.4 IIS 服务性能监控 14

3.5 Tomcat 服务性能监控 16

3.6 SQLserver 服务性能监控 20

3.7 Mongodb服务性能监控 23

3.8 Lighttpd 服务性能监控 25

3.9 Redis 服务性能监控 28

3.10 Memcache 服务性能监控 31

3.11 Oracle 服务性能监控 33

四、注意事项 38

4.1 Mysql监控需要安装插件 38

4.2 WEB应用 38

4.3检测SNMP数据 38

4.5 SQLserver 监控安装pyodbc 40

4.6 Mongodb 需要安装JSON 40

4.7 Redis 部署问题 40

4.8 Oracle 需要修改主机监听端口 40

五、附录 41

5.1 AutoInstallSNMP.sh 41

5.2 AutoInstallRedis.sh 43

5.3 AutoInstallMongodb.sh 45

5.4 AutoInstallLighttpd.sh 46

5.5 AutoInstallMemcache.sh 47


一、目的

本文是在《监控宝服务器与服务性能监控配置》(URL:http://blog.51cto.com/kaliarch/2044977)文档的基础上继续完善其中的服务性能监控,目前监控宝服务性能监控项目为11个,经过部署环境,测试监控服务,已经完成全部服务性能监控测试,如有需求可以参考此文档部署服务性能监控。

二、理论基础

2.1 相关理论

详见《监控宝服务器与服务性能监控配置》内监控理论部分。

2.2 监控项目

图片.png

服务性能监控项目

三、服务性能监控部署

3.1 Nginx 服务性能监控

1) 内网采集器的创建

图片.png

图片.png

图片.png

图片.png


图片.png


2) Python环境部署

详见《SER-App-0028-监控宝服务器与服务性能监控配置》内Python环境部署部分。

3) SNMP安装与配置

详见《SER-App-0028-监控宝服务器与服务性能监控配置》内SNMP安装配置部分。

4) Nginx配置需求

Nginx 编译安装必须启用   --with-http_stub_status_module

Nginx配置文件内增加以下状态信息。

图片.png

图片.png

图片.png

active connections – 活跃的连接数量
server accepts handled requests — 总共处理了764个连接 成功创建764次握手总共处理了906个请求
reading — 读取客户端的连接数.
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

5) 采集器的运行

图片.png

6) 监控项目创建


图片.png

图片.png

图片.png

7) 监控项目查看

图片.png

图片.png

图片.png

3.2 Apache 服务性能监控

1)内网采集器的创建

图片.png

图片.png


2) Python环境部署

详见《SER-App-0028-监控宝服务器与服务性能监控配置》内Python环境部署部分。

3)  SNMP安装与配置

详见《监控宝服务器与服务性能监控配置》内SNMP安装配置部分。

1) Apache开启状态页面

Apache的安装

配置文件里面需要开启apache状态模块

图片.png

图片.png

图片.png

1
2
3
4
5
6
7
ExtendedStatus On
<Location  /Server-status >
SetHandler Server-status
Order deny,allow
Deny from all
Allow from all
< /Location >

图片.png

5)采集器的运行

图片.png

6)监控项目创建

图片.png

图片.png

7)监控项目查看

图片.png

图片.png

图片.png

图片.png

3.3 Mysql 服务性能监控

1) 内网采集器的创建

图片.png

图片.png

图片.png

2) Python环境部署

若要使用mysql性能监控,需要安装PythonMySQLdb扩展件。

具体参考http://blog.jiankongbao.com/?p=1556

安装mysql插件

  • windows2003

请访问 http://sourceforge.net/projects/mysql-python/ 找对应下载文件

http://jaist.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.4b4/MySQL-python-1.2.4b4.win32-py2.7.exe

默认安装即可。

  • linux下 需要根据您安装的python版本来安装对应的 ‘Python interface’

ubuntu下的需要apt-get install python-mysqldb

centos下需要 yum install   Mysql-python

如果python是编译的请将mysql-python重新编译进去。

2) SNMP安装与配置

详见《SER-App-0028-监控宝服务器与服务性能监控配置》内SNMP安装配置部分。

3) Mysql配置

  • 添加mysql用户

在被监测的myql上执行

1
2
>CREATE USER ‘xuel’@’你的采集器的IP’ IDENTIFIED BY ‘your_password’;
>flush privileges;

图片.png

  • 授权用户远程连接

图片.png

  • 重启采集器

安装完mysql-python 之后 ,双击 stop.bat ,按任意键退出,并退出之前的采集器窗 口。双击start.bat

  • 测试已经可以正常连接数据库。

图片.png

5) 采集器的运行

图片.png

6) 监控项目创建

图片.png

图片.png

图片.png

7) 监控项目查看

图片.png

图片.png

3.4 IIS 服务性能监控

1) 内网采集器的创建

图片.png

选择IIS插件

    图片.png

下载对应window版本

图片.png

2) Python环境部署

采集器运行需要Python环境,详见《SER-App-0028-监控宝服务器与服务性能监控配置》

3) 采集器的运行

被监控服务器查看IIS服务器日志路径

       图片.png

    图片.png

4) 监控项目创建

    图片.png

5) 监控项目查看

    图片.png

图片.png

3.5 Tomcat 服务性能监控

1) 内网采集器的创建

    图片.png

选择tomcat插件

图片.png

下载对应Linux版本

图片.png

2) Python环境部署

采集器运行需要Python环境,详见《SER-App-0028-监控宝服务器与服务性能监控配置》

3) Tomcat需求配置

安装部署好tomcat后,需要配置状态面的登录用户名和密码

图片.png

启动服务

图片.png

Tomcat状态页

图片.png

查看状态页面

图片.png

4) 采集器的运行

图片.png

5) 监控项目创建

图片.png

图片.png

6) 监控项目查看

图片.png

图片.png

3.6 SQLserver 服务性能监控

1) 内网采集器的创建

图片.png

选择SQLserver插件

下载对应window版本


2) Python环境部署

采集器运行需要Python环境,详见《SER-App-0028-监控宝服务器与服务性能监控配置》

3) 被监控服务器配置

若要使用sql server性能监控,需要安装pyodbc扩展,使得python能连接sql server

Pyodbc的下载地址:

https://pypi.python.org/pypi/pyodbc/#downloads

安装pip

图片.png

4) 采集器的运行

图片.png

5) 监控项目创建

图片.png

6) 监控项目查看

    图片.png

图片.png

图片.png


3.7 Mongodb服务性能监控

1) 内网采集器的创建

图片.png

选择Mongodb插件

图片.png

下载对应Linux版本

图片.png

2) Python环境部署

采集器运行需要Python环境,详见《SER-App-0028-监控宝服务器与服务性能监控配置》

3) Mongodb配置

为方便部署,目前已经讲Mongodb的安装写成脚本,脚本见附录

启动mongodb需要加httpinterface WEB界面接口

图片.png

图片.png

图片.png

4) 采集器的运行

图片.png

5) 监控项目创建

图片.png


6) 监控项目查看

图片.png


图片.png


3.8 Lighttpd 服务性能监控

1) 内网采集器的创建

图片.png

选择Lighttpd插件

图片.png

下载对应Linux版本

图片.png

2) Python环境部署

采集器运行需要Python环境,详见《SER-App-0028-监控宝服务器与服务性能监控配置》

3) Lighttpd配置

   为方便部署,目前已经讲Lighttpd的安装写成脚本,脚本见附录

启用状态模块

图片.png

图片.png

图片.png

4) 采集器的运行

图片.png

5) 监控项目创建

图片.png

6) 监控项目查看

图片.png

图片.png

3.9 Redis 服务性能监控

1) 内网采集器的创建

图片.png

2) Python环境部署

采集器运行需要Python环境,详见《SER-App-0028-监控宝服务器与服务性能监控配置》

3) Redis配置

为方便部署,目前已经讲Redis的安装写成脚本,脚本见附录

图片.png

图片.png

图片.png

4) 采集器的运行

图片.png

4 ) 监控项目创建

图片.png

5) 监控项目查看

图片.png

图片.png

图片.png

3.10 Memcache 服务性能监控

1) 内网采集器的创建

图片.png

2) Python环境部署

采集器运行需要Python环境,详见《SER-App-0028-监控宝服务器与服务性能监控配置》

3) Memcache的配置

    为方便部署,目前已经讲Memcache的安装写成脚本,脚本见附录

图片.png

在创建项目时下载memcache文件,并发布到web服务器,下图 为状态页信息

图片.png

4) 采集器的运行

图片.png

5) 监控项目创建

图片.png

6) 监控项目查看

图片.png

3.11 Oracle 服务性能监控

1) 内网采集器的创建

图片.png

2) Python环境部署

采集器运行需要Python环境,详见《监控宝服务器与服务性能监控配置》

3) Oracle配置

需要修改监听端口为公网,修改listener文件,重启oracle服务

图片.png

Oracle web界面管理端口1158  URL:https://192.168.111.96:1158/em

图片.png

图片.png


5) 监控项目创建

图片.png

6) 监控项目查看

图片.png


图片.png

四、注意事项

4.1 采集器或采集脚本设置开机自启

为保障被监控服务当出现异常重启后采集其自动启动,为此需要写脚本讲采集器写如开机自启动,保障服务器恢复后,正常监控服务。

创建一个单独的采集器目录,并写入/etc/rc.local中。

如创建scripts 目录

bash /scripts/jkb_agent/start.sh

4.1 Mysql监控需要安装插件

如果没有安装MySQL-python  在 采集器的LOG中 会报相应的错误 内容类似如下:

1
2
3
4
5
6
2013-05-29 18:16:23,638 ERROR relation_id:1310   type :mysql  error:Traceback (most recent call last):
File “C:\jkb_agent_windows\jkb_agent\plugin\MySQLPlugin.py”, line 51,  in  getData
import  MySQLdb
ImportError: No module named MySQLdb2013-05-29 18:16:23,638 ERROR relation_id:1310   type :mysql  error:Traceback (most recent call last):
import  MySQLdb
ImportError: No module named MySQLdb

4.2 WEB应用

检查服务内部WEB中间件是否内部加载status模块,使用浏览器测试是否可以正常打开status页面。

4.3检测SNMP数据

  • 检查防火墙是否开启对应UDP端口,使用snmpwalk -v SNMP版本 -c 团体名称 检测IP .

测试是否有数据返回。

此处以5min CPU的负载来测试。

图片.png

  • 使用Windows下测试工具MIB Browser测试是否有监控数据返回。

填写被监控端IP地址、SNMP团体号、端口等信息。

图片.png

图片.png

图片.png

有数据出现,即配置正确,可以获取主机数据。

4.5 SQLserver 监控安装pyodbc

基于python环境编写的采集器运行需要相关python模块的支持,需要安装pip来安装pyodbc

图片.png

4.6 Mongodb 需要安装JSON

需要安装python-json lib

图片.png


4.7 Redis 部署问题

Redis在监控过程中,发布到被监控服务器WEB应用中状态页是由php语言编写,需要安装php环境支持,需要开启php-redis模块

基于python语言编写的采集器需要python-redis模块支持,才可以正常获取数据。

图片.png

4.8 Oracle 需要修改主机监听端口

Oracle安装完成后,默认1521端口之上本地监听,监控宝创建监控项目中监控项目连接名需要指明端口,所以需要修改监听端口为公网,修改listener文件,(HOST=被监控主机名),之后重启oracle服务。

图片.png

监控项目Orale连接明为:IP:端口/数据库实例名称

如:192.168.111.96:1521/orcl


五、附录

目前已经将Linux下安装一些服务写成脚本,均为centos 6.x实验,后期有需求可以拓展更多版本,更便于快速部署基本环境。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
AutoInstallRedis.sh
#!/bin/bash
#############
#mail xuel@anchnet.com
echo  "##########################################"
echo  "Auto Install Redis                      ##"
echo  "Press Ctrl + C to cancel                ##"
echo  "Any key to continue                     ##"
echo  "##########################################"
read  -n 1
/etc/init .d /iptables  stop
sed  -i  "s/SELINUX=enforcing/SELINUX=disabled/"   /etc/selinux/config
if  [ -d  /tools  ]; then
     cd  /tools
else
     mkdir  /tools  &&  cd  /tools
fi
yum -y  install  wget
wget -c -O  /tools/redis  http: //download .redis.io /releases/redis-3 .0.2. tar .gz
tar  -zxvf redis
cd  redis-3.0.2
make
cd  src/
make  test
make  install
cp  redis.conf  /etc/
cat  >>  /etc/init .d /redis  << EOF
#!/bin/bash
#
# Init file for redis
#
# chkconfig: - 80 12
# description: redis daemon
#
# processname: redis
# config: /etc/redis.conf
# pidfile: /var/run/redis.pid
source  /etc/init .d /functions
#BIN="/usr/local/bin"
BIN= "/usr/local/bin"
CONFIG= "/etc/redis.conf"
PIDFILE= "/var/run/redis.pid"
### Read configuration
[ -r  "$SYSCONFIG"  ] &&  source  "$SYSCONFIG"
RETVAL=0
prog= "redis-server"
desc= "Redis Server"
start() {
         if  [ -e $PIDFILE ]; then
             echo  "$desc already running...."
             exit  1
         fi
         echo  -n $ "Starting $desc: "
         daemon $BIN/$prog $CONFIG
         RETVAL=$?
         echo
         [ $RETVAL - eq  0 ] &&  touch  /var/lock/subsys/ $prog
         return  $RETVAL
}
stop() {
         echo  -n $ "Stop $desc: "
         killproc $prog
         RETVAL=$?
         echo
         [ $RETVAL - eq  0 ] &&  rm  -f  /var/lock/subsys/ $prog $PIDFILE
         return  $RETVAL
}
restart() {
         stop
         start
}
case  "$1"  in
   start)
         start
         ;;
   stop)
         stop
         ;;
   restart)
         restart
         ;;
   condrestart)
         [ -e  /var/lock/subsys/ $prog ] && restart
         RETVAL=$?
         ;;
   status)
         status $prog
         RETVAL=$?
         ;;
   *)
         echo  $ "Usage: $0 {startstoprestartcondrestartstatus}"
         RETVAL=1
esac
exit  $RETVAL
EOF
chmod  755  /etc/init .d /redis
sed  -i  "s/daemonize no/daemonize yes/g"  /etc/redis .conf
chkconfig redis on
service redis start
echo  -e  "\033[32m Redis install success\033[0m"
netstat  -lntup |  grep  redis
  
  
5.3 AutoInstallMongodb.sh
#!/bin/bash
#mail xuel@anchnet.com
echo  "##########################################"
echo  "Auto Install Mongodb                    ##"
echo  "Press Ctrl + C to cancel                ##"
echo  "Any key to continue                     ##"
echo  "##########################################"
read  -n 1
/etc/init .d /iptables  status > /dev/null  2>&1
if  [ $? - eq  0 ]
then
iptables -I INPUT -p tcp --dport 27017 -j ACCEPT && 
iptables -I INPUT -p tcp --dport 28017 -j ACCEPT &&
iptables-save > /dev/null  2>&1
else
     echo  -e  "\033[32m iptables is stopd\033[0m"
fi
sed  -i  "s/SELINUX=enforcing/SELINUX=disabled/"   /etc/selinux/config
setenforce 0
################################
if  [ -d  /opt  ]; then
     cd  /opt
else
     mkdir  /opt  &&  cd  /opt
fi
yum -y  install  wget
yum groupinstall  "Development tools"  -y
wget -c -O  /opt/mongodb  https: //fastdl .mongodb.org /linux/mongodb-linux-x86_64-rhel62-3 .2.9.tgz
tar  -zxvf mongodb-linux-x86_64-rhel62-3.2.9.tgz
mv  mongodb-linux-x86_64-rhel62-3.2.9 mongodb
cd   mongodb
mkdir  log &&  mkdir  data
cd  log &&  touch  mongodb.log
cd  ..
. /bin/mongod  --httpinterface --dbpath  /opt/mongodb/data/  --logpath  /opt/mongodb/log/mongodb .log --fork
echo  -e  "\033[32m Mongodb install success\033[0m"
netstat  -lntup |  grep  mongod 
  
5.4 AutoInstallLighttpd.sh
#!/bin/bash
#mail xuel@anchnet.com
echo  "##########################################"
echo  "Auto Install Lighttpd                   ##"
echo  "Press Ctrl + C to cancel                ##"
echo  "Any key to continue                     ##"
echo  "##########################################"
read  -n 1
/etc/init .d /iptables  status > /dev/null  2>&1
if  [ $? - eq  0 ]
then
iptables -I INPUT -p tcp --dport 80 -j ACCEPT && 
iptables-save > /dev/null  2>&1
else
     echo  -e  "\033[32m iptables is stopd\033[0m"
fi
sed  -i  "s/SELINUX=enforcing/SELINUX=disabled/"   /etc/selinux/config
setenforce 0
#######################################
if  [ -d  /tools  ]; then
     cd  /tools
else
     mkdir  /tools  &&  cd  /tools
fi
yum -y  install  wget  gcc
yum groupinstall  "Development tools"  -y
wget -c -O  /tools/lighttpd  http: //download .lighttpd.net /lighttpd/releases-1 .4.x /lighttpd-1 .4.41. tar .gz
yum -y  install  gcc pcre-devel zlib-devel vim  bzip2 -devel
cd  /tools/
tar  zxvf lighttpd
cd  lighttpd-1.4.41
. /configure  --prefix= /usr/local/lighttpd
make  &&  make  install 
/etc/init .d /lighttpd  start
echo  -e  "\033[32m Lighttp install success\033[0m"
netstat  -lntup |  grep  lighttpd
  
5.5 AutoInstallMemcache.sh
#!/bin/bash
#mail xuel@anchnet.com
echo  "##########################################"
echo  "Auto Install memcached                   ##"
echo  "Press Ctrl + C to cancel                 ##"
echo  "Any key to continue                      ##"
echo  "##########################################"
read  -n 1
/etc/init .d /iptables  status > /dev/null  2>&1
if  [ $? - eq  0 ]
then
iptables -I INPUT -p tcp --dport 11211 -j ACCEPT && 
iptables-save > /dev/null  2>&1
else
     echo  -e  "\033[32m iptables is stopd\033[0m"
fi
sed  -i  "s/SELINUX=enforcing/SELINUX=disabled/"   /etc/selinux/config
setenforce 0
################################
if  [ -d  /tools  ]; then
     cd  /tools
else
     mkdir  /tools  &&  cd  /tools
fi
yum -y  install  wget gcc libevent libevent-devel
yum groupinstall  "Development tools"  -y
wget -c -O  /tools/memcached  http: //memcached .org /files/memcached-1 .4.31. tar .gz
tar  -zxvf memcached
cd   memcached-1.4.31
. /configure
make
make  install
/usr/local/bin/memcached  -d -u root
echo  -e  "\033[32m Memcache install success\033[0m"
netstat  -lntup |  grep  memcached









本文转自 KaliArch 51CTO博客,原文链接:http://blog.51cto.com/kaliarch/2045128,如需转载请自行联系原作者
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
7月前
|
Arthas 监控 NoSQL
web服务性能监控方案
web服务性能监控方案
|
Prometheus 监控 Cloud Native
【云原生】Docker容器命令监控+Prometheus监控平台
【云原生】Docker容器命令监控+Prometheus监控平台
548 0
【云原生】Docker容器命令监控+Prometheus监控平台
|
4月前
|
监控 Java
(翻译)性能监控之百分位数监控
【8月更文挑战第10天】(翻译)性能监控之百分位数监控
58 1
(翻译)性能监控之百分位数监控
|
4月前
|
Kubernetes 监控 Cloud Native
"解锁K8s新姿势!Cobra+Client-go强强联手,打造你的专属K8s监控神器,让资源优化与性能监控尽在掌握!"
【8月更文挑战第14天】在云原生领域,Kubernetes以出色的扩展性和定制化能力引领潮流。面对独特需求,自定义插件成为必要。本文通过Cobra与Client-go两大利器,打造一款监测特定标签Pods资源使用的K8s插件。Cobra简化CLI开发,Client-go则负责与K8s API交互。从初始化项目到实现查询逻辑,一步步引导你构建个性化工具,开启K8s集群智能化管理之旅。
66 2
|
6月前
|
监控 Java 数据安全/隐私保护
性能监控之 JMX 监控 Docker 容器中的 Java 应用
【6月更文挑战9天】性能监控之 JMX 监控 Docker 容器中的 Java 应用
676 1
|
7月前
|
Prometheus 监控 Cloud Native
Prometheus监控平台配置--监控集群资源信息
在scrape_configs 配置项下添加Linux 监控的job,其中 IP 修改为上面部署node_exporter机器的ip,端口号为9100,需要注意缩进。
254 6
|
7月前
|
Prometheus 监控 Cloud Native
助力工业物联网,工业大数据之服务域:服务器性能监控Prometheus及项目总结【三十五】
助力工业物联网,工业大数据之服务域:服务器性能监控Prometheus及项目总结【三十五】
75 1
|
Prometheus 监控 Cloud Native
Prometheus监控Spring Boot应用,自定义应用监控指标
Prometheus监控Spring Boot应用,自定义应用监控指标
306 0
Prometheus监控Spring Boot应用,自定义应用监控指标
|
监控 关系型数据库 调度
盘点5个.Net开发的服务器进程监控、性能监控、任务调度的开源项目
盘点5个.Net开发的服务器进程监控、性能监控、任务调度的开源项目
300 0
|
Prometheus 监控 Cloud Native
在Linux系统部署prometheus监控(2) --配置规则
在Linux系统部署prometheus监控(2) --配置规则