監控寶服務性能監控配置(完整版)

繼上篇監控寶服務器監控後,此篇博文詳細記錄下項目中對經常使用服務監控的配置步驟
php

服務器監控可參考:https://blog.51cto.com/kaliarch/2044977python

監控寶服務性能監控配置(完整版)

1、目的 2mysql

2、理論基礎 2linux

2.1 相關理論 2web

2.2 監控項目 2redis

3、服務性能監控部署 2sql

3.1 Nginx 服務性能監控 2mongodb

3.2 Apache 服務性能監控 6數據庫

3.3 Mysql 服務性能監控 9apache

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

4、注意事項 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

5、附錄 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


1、目的

本文是在《監控寶服務器與服務性能監控配置》(URL:https://blog.51cto.com/kaliarch/2044977)文檔的基礎上繼續完善其中的服務性能監控,目前監控寶服務性能監控項目爲11個,通過部署環境,測試監控服務,已經完成所有服務性能監控測試,若有需求能夠參考此文檔部署服務性能監控。

2、理論基礎

2.1 相關理論

詳見《監控寶服務器與服務性能監控配置》內監控理論部分。

2.2 監控項目

圖片.png

服務性能監控項目

3、服務性能監控部署

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

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上執行

>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、注意事項

4.1 採集器或採集腳本設置開機自啓

爲保障被監控服務當出現異常重啓後採集其自動啓動,爲此須要寫腳本講採集器寫如開機自啓動,保障服務器恢復後,正常監控服務。

建立一個單獨的採集器目錄,並寫入/etc/rc.local中。

如建立scripts 目錄

bash /scripts/jkb_agent/start.sh

4.1 Mysql監控須要安裝插件

若是沒有安裝MySQL-python  在 採集器的LOG中 會報相應的錯誤 內容相似以下:

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


5、附錄

目前已經將Linux下安裝一些服務寫成腳本,均爲centos 6.x實驗,後期有需求能夠拓展更多版本,更便於快速部署基本環境。

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
相關文章
相關標籤/搜索