lepus搭建

lepus搭建

監控mysql

整體環境:

192.168.1.30 mini1 監控機

192.168.1.31 mini2主 被監控機

192.168.1.32 mini3從 被監控機


監控機mini1上:

1.安裝依賴包

yum groupinstall Development tools

yum -y install mysql-devel

yum -y install openssl

2.安裝lamp

解壓安裝包

在/usr/local/apapche/conf/httpd.conf中修改

<IfModule dir_module>

DirectoryIndex index.html index.php

啟動httpd

/usr/local/apache/bin/httpd -f /usr/local/apache/conf/httpd.conf &

啟動php

./php &

3.安裝python2.7

tar -jxvf Python-2.7.13.tar.bz2

#進入解壓后的?目錄

cd Python-2.7.13

#編譯和安裝

./configure

make

make install

檢查是否安裝成功

/usr/local/bin/python2.7 -V

#如果出現如下信息代表安裝成功

Python 2.7.3

4.建立軟連接

#正常情況下即使python2.7安裝成功后,系統默認指向的python仍然是2.6.6版本,考慮到yum是基于python2.6.6才能正常?工作,

所以不不建議卸載。

#采用下面的方法把系統默認的python修改為2.7.3版本

mv /usr/bin/python /usr/bin/python2.6.6

ln -s /usr/local/bin/python2.7 /usr/bin/python

#檢測是否成功

python -V

#出現2.7.3版本信息代表成功

Python 2.7.3

5.修改yum源

vi /usr/bin/yum

將#!/usr/bin/python

修改為

#!/usr/bin/python2.6.6

6.安裝setuptools

解壓

cd setuptools-12.0.3

安裝

python setup.py install

7.安裝MySQLdb

cd? MySQL-python-1.2.4

python setup.py build

python setup.py install

8.安裝MySQL作為監控庫

create database lepus default character set utf8;

grant select,insert,update,delete,create on lepus.* to 'lepus'@'%' identified by '123456';

flush privileges;

導入建庫語句句

use lepus

mysql -uroot -p lepus < sql/lepus_table.sql

mysql -uroot -p lepus < sql/lepus_data.sql

修改表結構

use lepus

alter table mysql_status modify column max_connect_errors bigint(18);

alter table mysql_status_history modify column max_connect_errors bigint(18);

創建監控賬號

grant select,super,process,reload,show databases,replication client on *.* to'lepus_monitor'@'%'

identified by 'lepus_monitor';

flush privileges;

9.初始化python

cd python/

chmod +x install.sh

./install.sh

10.修改python配置文件

vi /usr/local/lepus/etc/config.ini

[monitor_server]

host="192.168.1.30"

port=3306

user="lepus"

passwd="lepus"

dbname="lepus"

拷貝PHP文件到相關目錄

cp -r php/* /usr/local/apache/htdocs

11.修改php配置文件

vi /usr/local/apache/htdocs/application/config/database.php

$db['default']['hostname']= '192.168.1.30';

$db['default']['port'] = '3306';

$db['default']['username']= 'lepus';

$db['default']['password']= 'lepus';

$db['default']['database']= 'lepus';

$db['default']['dbdriver']= 'mysql';

12.開啟lepus

cd /usr/local/lepus/

lepus start

日志目錄

tail -f /usr/local/lepus/nohup.out

tail -f /usr/local/lepus/logs/lepus.log

13.設置訪問域名

vi /usr/local/apache/etc/extra/httpd-vhosts.conf

<VirtualHost*:80>

AddDefaultCharset UTF-8

DocumentRoot "/usr/local/apache/htdocs"

ServerName mysqlmtop.tomato.com

Options FollowSymLinks

AllowOverride All

Order allow,deny

Allow from All

ErrorLog"|/usr/local/apache/bin/rotatelogs /home/logs/apache/php_%Y%m%d_error.log86400 480"

CustomLog"|/usr/local/apache/bin/rotatelogs /home/logs/apache/php_%Y%m%d_access.log86400 480"

common

</VirtualHost>

14.修改hosts

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

192.168.1.30 mini1 mysqlmtop.tomato.com

15.訪問主頁 默認賬號密碼

賬號 admin

密碼Lepusadmin


監控redis/mongodb

若要監控redis 和mongodb,則需要安裝相關依賴

1.安裝Redis模塊(監控Redis所需)

[root@vpn lepus]# tar zxvf redis-py-2.10.3.tar.gz

[root@vpn lepus]# cd redis-2.10.3/

[root@vpn redis-2.10.3]# python setup.py install

安裝pymongo模塊(監控Mongodb所需)

[root@vpn lepus]# tar zxvf pymongo-2.7.tar.gz

[root@vpn lepus]# cd pymongo-2.7

[root@vpn pymongo-2.7]# python setup.py install

2.測試各個模塊安裝是否正常運行(測試文件在 /root/lepus/lepus_v3.7/python/下)

[root@vpn pymongo-2.7]# cd /root/lepus/lepus_v3.7/python/

[root@vpn pymongo-2.7]# pwd

/root/lepus/lepus_v3.7/python

[root@vpn python]# python test_driver_mysql.py

MySQL python drivier is ok!

[root@vpn python]# python test_driver_redis.py

Redis python drivier is ok!

[root@vpn python]# python test_driver_mongodb.py

MongoDB python drivier is ok!

3.修改redis的配置文件

ln -s /software/redis-3.xxx/redis.conf /etc/redis.conf

vi /etc/redis.conf

bind 0.0.0.0

redis 可以沒有密碼連入天兔

cd /usr/local/lepus

修改check_mongodb.py中的 db.authenticate(user,passwd)注釋掉即可登錄無需用戶名密碼的MongoDB

4.打開天兔的全局配置項,redis,mongodb

5.重啟lepus

6.輸入被監控端redis的IP,端口,標簽即可,不用填密碼,刷新

? 輸入被監控端mongo的IP,端口,標簽即可,不用填用戶密碼,刷新



監控操作系統OS


1 什么是snmp 協議?

簡單網絡管理協議(SNMP,Simple Network Management Protocol)構成了互聯網工程工作小組(IETF,Internet Engineering Task Force)定義的internet協議簇的一部分。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關注的情況。它由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema),和一組資料物件。

2 在需要監控的linux系統下snmp服務配置

2.1 snmpd 服務安裝

yum install net-snmp*

2.2 編輯snmpd.conf 配置文檔

vim /etc/snmp/snmpd.conf

41行 將default改為監控服務器ip;2 將public改成lepus (備注: lepus是您在天兔配置文件里配置的通用實體,如果您配置的實體是其他名稱,這里要做相應的修改)示例如下:

com2sec notConfigUser? 10.0.10.10? ? ? lepus

62行 將systemview 改為all,供所有snmp訪問權限

access? notConfigGroup ""? ? ? any? ? ? noauth? ? exact? all none none

85行 將#注釋符號去掉

view all? ? included? .1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 80

2.3 啟動 snmpd 服務

/etc/init.d/snmpd start

2.4 驗證snmpd 服務

//snmpd 使用 tcp/udp 161 端口

grep 'Simple Net Mgmt Proto' /etc/services?

snmp? ? ? ? 161/tcp? ? ? ? ? ? # Simple Net Mgmt Proto

snmp? ? ? ? 161/udp? ? ? ? ? ? # Simple Net Mgmt Proto

lsof -i :161

COMMAND? PID USER? FD? TYPE DEVICE SIZE NODE NAME

snmpd? 3734 root? 11u? IPv4? 13174? ? ? UDP *:snmp?

ps -ef | grep 'snmpd'

root? ? ? 3734? ? 1? 0 09:34 ?? ? ? ? 00:00:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a

2.5 修改snmpd 日志級別

//以上操作能夠滿足snmpd 服務正常使用,不過snmpd 默認日志級別將會在/var/log/message 寫入大量snmp 信息,這樣會影響我們察看系統日志,所以我們需要更改下!

Mar? 1 09:55:01 monitor snmpd[3734]: Connection from UDP: [127.0.0.1]:37535?

Mar? 1 09:55:01 monitor snmpd[3734]: Received SNMP packet(s) from UDP: [127.0.0.1]:37535?

Mar? 1 09:55:01 monitor snmpd[3734]: Connection from UDP: [127.0.0.1]:47836?

Mar? 1 09:55:01 monitor snmpd[3734]: Received SNMP packet(s) from UDP: [127.0.0.1]:47836?

//注釋原有的OPTINOS,添加下面的一行,重啟snmpd 服務即可。

vim /etc/init.d/snmpd

#OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a"

OPTIONS="-LS 4 d -p /var/run/snmpd.pid -a"

/etc/init.d/snmpd restart

Stopping snmpd:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

Starting snmpd:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

2.6將SNMP服務設置開機啟動

2.7 使用snmpwalk 命令驗證,在監控機上執行以下命令

snmpwalk -v 1 -c lepus? 192.168.1.31

snmpwalk -v 2c -c lepus? 192.168.1.32

-v是指版本,-c 是指密鑰,獲取到系統信息則正常!

至此,您已經成功地開啟了SNMP服務。

驗證snmp服務

[root@HE1 bin]# ps-ef | grep 'snmpd'

root? ? 26100? ? 1? 0 11:20 ?? ? ? ? 00:00:00 /usr/sbin/snmpd -LS 4 d -p/var/run/snmpd.pid -a

root? ? 26114 25540? 0 11:30 pts/0? ? 00:00:00 grep snmpd

監控機修改lepus配置文件添加44,45,46行內容

[root@HE3lepus]# vi /usr/local/lepus/check_os.sh

在43行后添加44,45,46行內容

? ? 40? ? mem_buffered=`/usr/bin/snmpwalk -v1 -c ${community}? ${ip} UCD-SNMP-MIB::memBuffer.0 |cut -d= -f2 |awk -F ' ' '{print $2}'`

? ? 41? ? mem_cached=`/usr/bin/snmpwalk -v1 -c ${community}? ${ip} UCD-SNMP-MIB::memCached.0 |cut -d= -f2 |awk -F ' ' '{print $2}'`

? ? 42? ? mem_usage_rate=`/usr/bin/snmpdf -v1 -c ${community}? ${ip} |grep "Physical"|awk '{print $6}'`

? ? 43? ? mem_available=$[$mem_free+$mem_buffered+$mem_cached]

if [ -z $mem_shared ]; then

mem_shared=0

fi

[root@HE3 lepus]#python check_os.py

安裝完成后即可在天兔系統配置需要監控的主機。


監控mysql慢日志

被監控機主要有以下幾個步驟:mysql基礎配置--依賴軟件安裝---腳本配置--定時任務。

1.mysql基礎配置:

在mysql命令行中執行以下命令:

set global slow_query_log=on;

set global long_query_time=1;#設置記錄查詢超過多長時間的sql,根據自己情況定

set global slow_query_log_file='/opt/lampp/var/mysql/';#設置mysql慢查詢日志路徑

斷開當前連接然后重新連接進入命令行查詢(緩存):

show variables like '%slow%';

show variables like '%long_query_time%';

2.依賴軟件安裝:

# yum -y install perl-IO-Socket-SSL

# yum -y install perl-DBI

# yum -y install perl-DBD-MySQL

# yum -y install perl-Time-HiRes

# yum -y install perl-Digest-MD5

上傳percona-toolkit.rpm并安裝

rpm -ivh percona-toolkit.rpm

3.腳本配置:

vi /usr/local/lepus/client/mysql/lepus_slowquery.sh

#config lepus database server? lepus服務器

lepus_db_host="192.168.1.30"

lepus_db_port=3306

lepus_db_user="lepus"

lepus_db_password="123456"

lepus_db_database="lepus"

#config mysql server? 被監控的mysql

mysql_client="/opt/lampp/bin/mysql"

mysql_host="192.168.200.31"

mysql_port=3306

mysql_user="lepus"

mysql_password="123456"

#config slowqury? 慢查詢日志

slowquery_dir="/opt/lampp/var/mysql/"

slowquery_long_time=1

slowquery_file=`$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password? -e "show variables like 'slow_query_log_file'"|grep log|awk '{print $2}'`

pt_query_digest="/usr/bin/pt-query-digest"

#config server_id? 與web上配置中心,mysql列表中的ID對應

lepus_server_id=1

4.手動運行查看是否正常運行:

sh /usr/local/lepus/client/mysql/lepus_slowquery.sh

報錯:/bin/sh^M: bad interpreter: No such file or directory

利用如下命令修改文件格式

:set ff=unix 或 :set fileformat=unix

:wq (存盤退出)

最后再執行文件

#sh>./filename

定時任務:

查看所有定時任務:

crontab -l

添加定時任務:

crontab -e

*/5 * * * * sh /usr/local/sbin/lepus_slowquery.sh > /dev/null 2>&1


復制監控沒有數據顯示

在被監控的mysql數據庫

show variables like 'show_compatibility_56';

+-----------------------+-------+

| Variable_name? ? ? ? | Value |

+-----------------------+-------+

| show_compatibility_56 | OFF? |

+-----------------------+-------+

set global show_compatibility_56=on;

Query OK, 0 rows affected (0.00 sec)

---MySQL復制監控中無法看圖形

vi /opt/lampp/htdocs/application/controllers/lp_mysql.php

337行,去掉'mysql/replication',改為parent::check_privilege();

原來為parent::check_privilege('mysql/replication');

刷新天兔

配置表空間分析

vi /usr/local/lepus/lepus.py

在monitor_mysql中添加(注意python代碼格式):

job = Process(target = job_run, args = ('check_mysql_bigtable',int(frequency_monitor)*120))

joblist.append(job)

job.start()

修改腳本(非必須)

vi /usr/local/lepus/check_mysql_bigtable.py

bigtable=curs.execute("SELECT table_schema as 'DB',table_name as 'TABLE',CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 ), 2), '') 'TOTAL' , table_comment as COMMENT FROM information_schema.TABLES group by table_name having total > 5 ORDER BY data_length + index_length DESC LIMIT 10;");

以上修改內容表示提取表大小大于5M并且是排名前10的表。

pip install functions

將腳本放到crontab中執行,定期采集數據

crontab -e

*/5 * * * * python /usr/local/lepus/check_mysql_bigtable.py

配置郵件發送

去申請一個新的126郵箱,選擇設置-POP3/SMTP/IMAP-客戶端授權密碼

在天兔上設置,SMTP賬號就是申請的126郵箱賬號,SMTP密碼就是你剛剛開啟的客戶端授權密碼,郵件發件人就是126郵箱地址

[root@HE3]# python test_send_mail.py

True

send_mail_status:success

編譯通過

在全局配置里面的郵件那配置郵箱,還有各個小項的郵箱配好收件箱即可。

備注:資料有整合,請忽略主機名

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,202評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,742評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,580評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,297評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,688評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,875評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,438評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,183評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,384評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,612評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,022評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,297評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,093評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,330評論 2 377

推薦閱讀更多精彩內容