天兔插件监控mysql
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 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | Lepus3. 8 - 天兔mysql数据库监控系统搭建 原创ixhao2016 - 08 - 24 02 : 36 : 23 评论( 11 ) 3183 人阅读 Lepus3. 8 - 天兔mysql数据库监控系统搭建 lepus是一款开源的数据库监控软件,能详细的监控各种数据库状态,如mysql慢查询和主从状况。 这是web监控页面: wKiom1e9GEeSfeVhAAEs1WVVdwA795.png 搭建(文中是CentOS 6.7 系统环境): 一、安装lamp或lnmp环境: 安装方法很多,有源码包、yum、rpm等安装,这儿就简单的提一下简单的yum安装方法。 需要安装的包: httpd httpd - manual httpd - devel php php - mysql mysql mysql - server 可以yum安装上面的包:yum install httpd httpd - manual httpd - devel php php - mysql mysql mysql - server - y 1 ).mysql [root@jk ~] # yum install mysqlmysql-server -y [root@jk ~] # rpm -qa |grepmysql wKioL1e8lUOBtRQmAAANi8uAxQo736.png [root@jk ~] # service mysqld start [root@jk ~] # netstat -anplt|grep mysql 查看mysqld端口是否正常开启,服务是否正常 wKiom1e8lU7y - GeZAAAI1nTzdbY447.png 2 ).apache [root@monitoring - 45 lepus] # yuminstall httpd httpd-manual httpd-devel -y [root@monitoring - 45lepus ] # rpm -qa |grep http* wKioL1e8lVjihE0rAAARIgsOP_0688.png [root@jk ~] # service httpd start wKiom1e8lWLz8pw8AAAOQqhsJX8897.png 上面的:httpd: Could not reliably determine the server's fully qualifieddomain name提示 是apache启动时会验证ServerName的配置,可通过修改hosts文件添加本地解析或者修改httpd.conf 的 276 行将 #ServerName www.example.com:80改为ServerName “主机名”来使其不提醒。 [root@jk ~] # netstat -anplt | grep httpd 查看mysqld端口是否正常开启,服务是否正常 wKiom1e8lWyiNxvgAAALRZFy2LQ695.png 3 ).php [root@jk ~] # yum install phpphp-mysql –y [root@monitoring - 45lepus ] # rpm -qa |grep php-5 wKioL1e8lXeRHzSIAAAHQ4WgY64175.png [root@jk ~] # rpm -ql php 查看php相关文件 / etc / httpd / conf.d / php.conf / usr / lib64 / httpd / modules / libphp5.so / var / lib / php / session / var / www / icons / php.gif 4 ).配置apache,让apache支持php [root@jk ~] # vim/etc/httpd/conf.d/php.conf 配置php配置文件 wKiom1e8lYLT5c12AAAsCoaKYRk780.png 看是否有动态加载,图下面红框内的是apache支持的首页面 [root@jk ~] # vim/etc/httpd/conf/httpd.conf 配置apache配置文件 AddType applition / x - httpd - php.php #添加这一行 <IfModule dir_module> DirectoryIndex index.html index.php #添加index.php是为了让apache识别php首页 < / IfModule> 重启apache [root@jk ~] # touch/var/www/html/1.php [root@jk ~] # vim /var/www/html/1.php <?php phpinfo(); ?> 浏览器打开http: / / 服务端ip / 1.php ,出现如下图则表示配置成功: wKioL1e8lbLwyBQDAAByK2lcztM868.png 5 ).让php支持mysql [root@jk ~] # yum install -y php-mysql 检查: [root@jk ~] # vim /var/www/html/1.php <?php $link = mysql_connect( '127.0.0.1' , 'root' ,''); if ($link) echo "connect success!" ; else echo 'connect faild!' ; ?> 重启apache,service httpd restart后 浏览器打开http: / / 服务端ip / 1.php ,出现 connect success! 则为成功 6 ).设置服务自启: [root@jk ~] # chkconfig httpd on [root@jk ~] # chkconfig httpd--list httpd 0 :关闭 1 :关闭 2 :启用 3 :启用 4 :启用 5 :启用 6 :关闭 [root@jk ~] # chkconfig mysqld on 二、监控端安装python(文中是 2.6 . 6 版本,也推荐使用 2.7 版本) …… 三、监控端安装数据库连接Python的驱动包 1 ).安装 MySQLdb for python (如果需要监控MySQL则必须安装) MySQLdb为Python连接和操作MySQL的类库,如果准备使用lepus系统监控MySQL数据库,那么该模块必须安装。 [root@jk ~] # wget http://cdn.lepus.cc/cdncache/software/MySQLdb-python.zip [root@jk ~] # unzip MySQLdb-python.zip [root@jk ~] # cd MySQLdb1-master/ [root@jk ~] # which mysql_config / usr / local / mysql / bin / mysql_config [root@jk ~] # vim site.cfg 修改如下: mysql_config = / usr / local / mysql / bin / mysql_config [root@jk ~] # python setup.py build [root@jk ~] # python setup.py install 如果编译python出现如下问题 / usr / bin / ld: cannot find - lpython2. 7 collect2: ld returned 1 exit status error: command 'gcc' failed with exit status1 请按如下步骤处理: A.检查并安装python - devel包 [root@jk ~] # yum -y install python-devel B.将libpython2. 7.so 库文件建立软连接到 / usr / lib下 32 位服务器下执行: [root@jk ~] # ln -s /usr/local/Python2.7/lib/libpython2.7.so/usr/lib/libpython2.7.so 64 位服务器下执行: [root@jk ~] # ln -s /usr/local/Python2.7/lib/libpython2.7.so/usr/lib64/libpython2.7.so C.检查下 / etc / ld.so.conf是否包含 / usr / local / Python2. 7 / lib [root@jk ~] # vi /etc/ld.so.conf 添加/usr/local/Python2.7/lib [root@jk ~] # /sbin/ldconfig 2 ).安装cx_oracle for python (如果需要监控Oracle则必须安装,本文暂未用到) 下载安装oracle instant client: http: / / www.oracle.com / technetwork / database / features / instant - client / index - 097480.html 如果是 64 位的,请选择. * x86_64.rpm,否则是. * i386.rpm 如果是oracle 9i 或更高,请选择InstantClient 11 ,如果是 8 或 8i ,请选择Instant Client 10 [root@jk ~] # rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm [root@jk ~] # rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm [root@jk ~] # rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm [root@jk ~] # vim /root/.bash_profile ORACLE_HOME = "/usr/lib/oracle/11.2/client64" PATH = $PATH:$ORACLE_HOME / bin export PATH LD_LIBRARY_PATH = $ORACLE_HOME / lib: / usr / lib: / usr / local / lib export LD_LIBRARY_PATH [root@jk ~] #vim /etc/ld.so.conf 加入 / usr / lib / oracle / 11.2 / client64 / lib 执行ldconfig生效 [root@jk ~] # ldconfig 安装cx_oracle [root@jk ~] # wget http://cdn.lepus.cc/cdncache/software/cx_Oracle-5.1.2.tar.gz [root@jk ~] # tar -xvf cx_Oracle-5.1.2.tar.gz [root@jk ~] # cd cx_Oracle-5.1.2 [root@jk ~] # python setup.py build [root@jk ~] # python setup.py install 3 ).安装Pymongo for python (如果需要监控Mongodb则必须安装) pymongo为Python连接和操作MongoDB的类库,如果准备使用lepus系统监控MongoDBs数据库,那么该模块必须安装。 安装步骤如下: 下载pymongo https: / / pypi.python.org / packages / source / p / pymongo / [root@jk ~] # wget http://cdn.lepus.cc/cdncache/software/pymongo-2.7.tar.gz [root@jk ~] # tar -xvf pymongo-2.7.tar.gz [root@jk ~] # cd pymongo-2.7 [root@jk ~] # python setup.py install 4 ).安装Redis 驱动 (如果需要监控Redis则必须安装) [root@jk ~] # wget http://cdn.lepus.cc/cdncache/software/redis-py-2.10.3.tar.gz [root@jk ~] # tar -xvf redis-py-2.10.3.tar.gz [root@jk ~] # cd redis-2.10.3/ [root@jk ~] # python setup.py install 5 ).测试各个驱动是否正常运行 [root@jk~] # wget http://www.lepus.cc/soft/download/18 [root@jk~] # unzip Lepus数据库企业监控系统3.7版本官方下载.zip [root@jk~] # cd Lepus_v3.8_beta/ [root@jk~] # python test_driver_mysql.py MySQL python drivier is ok! [root@jk ~] # python test_driver_oracle.py Oracle python drivier is ok! [root@jk ~] # python test_driver_mongodb.py MongoDB python drivier is ok! [root@jk ~] # python test_driver_redis.py Redis python drivier is ok! 四、监控端安装Lepus监控系统 1 ).下载软件包到监控端并解压缩 (下载链接:http: / / down. 51cto .com / data / 2237019 ) [root@jk~] # wget http://www.lepus.cc/soft/download/18 [root@jk~] # unzip Lepus数据库企业监控系统3.7版本官方下载.zip [root@jk~] # cd Lepus_v3.8_beta/ 2 ).在监控机创建监控数据库,并授权。 监控端数据库执行: mysql>create database lepus default character set utf8; mysql>grant select,insert,update,delete,create on lepus. * to 'lepus_user' @ 'localhost' identified by '111.test' ; mysql>flush privileges; 3 ).导入Lepus_v3. 8_beta 的sql文件夹里的SQL文件(表结构和数据文件) [root@jk~] # mysql -uroot -p lepus < sql/lepus_table.sql [root@jk~] # mysql -uroot -p lepus < sql/lepus_data.sql 4 ).安装Lpeus程序 [root@jk~] #pwd wKiom1e8libwgj27AAARrTAUvxk692.png [root@monitoring - 45Lepus_v3 . 8_beta ] # cd python/ [root@monitoring - 45Lepus_v3 . 8_beta ] # chmod +x install.sh 修改安装位置: [root@monitoring - 45python ] # vim install.sh 下图红色标记即为安装位置 wKioL1e8ljThUJbyAAAQUh4BppQ056.png [root@monitoring - 45lepus ] # vim lepus 修改启动文件 wKiom1e8lj2jCEBdAAAUZ4oZhew268.png 执行安装 [root@monitoring - 45Lepus_v3 . 8_beta ] # ./install.sh [note]lepus will be install on basedir: / date / server / lepus [note] / date / server / lepus directory does not exist,will be created. [note] / date / server / lepus directory created success. [note]wait copy files....... [note]change script permission. [note]create links. [note]install complete. 5 ).修改配置文件 进入到安装目录 / date / server / lepus,默认为 / usr / local / lepus [root@monitoring - 45 ~] # cd /date/server/lepus wKiom1e8lkfDHZkPAAA00JFxRKU072.png [root@monitoring - 45 lepus] # vim etc/config.ini ###监控机MySQL数据库连接地址### [monitor_server] host = "localhost" port = 3306 user = " lepus_user " passwd = "111.test" dbname = "lepus" 6 ).启动监控系统 执行以下命令启动系统采集进程 [root@monitoring - 45 lepus] #lepus start nohup: appending output to`nohup.out' lepus monitor start success! 执行以下命令关闭系统采集进程 [root@monitoring - 45 lepus] #lepus stop 执行以下命令监控系统是否正常运行 [root@monitoring - 45 lepus] #lepus status lepus server is running... 7 ).将lepus_monitor脚本部署为计划任务,该脚本可以监控Lepus是否正在运行。 打开文件 / data / server / lepus / lepus_monitor修改里面连接监控机的数据库连接地址,然后将该脚本部署为计划任务。 [root@monitoring - 45 lepus] # crontab -e * / 5 * * * * / data / server / lepus / lepus_monitor >> / tmp / lepus_monitor.log 8 )部署网页WEB界面 复制安装文件夹的php文件夹里的文件到Apache对应的网站根目录 [root@monitoring - 45 lepus] # cp -rf /root/bao/Lepus_v3.8_beta/php/* /var/www/html/ 打开 / var / www / html / application / config / database.php文件修改PHP连接监控服务器的数据库信息 [root@monitoring - 45 lepus] # vim /var/www/html/application/config/database.php $db[ 'default' ][ 'hostname' ] = 'localhost' ; $db[ 'default' ][ 'username' ] = 'lepus_user' ; $db[ 'default' ][ 'password' ] = '111.test' ; $db[ 'default' ][ 'database' ] = lepus; $db[ 'default' ][ 'dbdriver' ] = 'mysql' ; 9 ).重启apache [root@monitoring - 45 lepus] # service httpd restart 10 ).登录进行添加主机和监控 通过浏览器输入IP地址或域名打开监控界面,即可登录系统。默认管理员账号密码admin / Lepusadmin wKioL1e8lpSAPe5uAAAhMQx1aJ8410.png 登录后请修改管理员密码,增加普通账号,对需要监控的数据库授权,在WEB添加主机进行监控。 四、Lepus监控数据库配置 1 ).被监控端防火墙打开允许监控端ip的 3306 端口,mysql添加监控账号: [root@jk ~] # iptables -A INPUT -s "监控端ip" -m state --state NEW -m tcp -p tcp--dport 3306 -j ACCEPT 被监控端数据库执行: [root@jk ~] # mysql> grant select,process, super on * . * to 'monitor' @ 'server监控端ip' identified by '222.test' ; 被监控端创建完帐号即可在监控端网页上添加mysql数据库监控: wKioL1e8lq3h_w44AABcZMrp8Ng759.png 稍等几分钟便可看到信息。 注意:只有同时监控主库和备库才能看到主从复制情况。 2 ).得不到数据库表空间分析数据的解决方法: 在lepus.py中添加check_mysql_bigtable,如图 wKiom1e8lrnAdbx4AAAgDJBekcA956.png 图中“ * 120 “是设置时间间隔,若是网页页面设置了 1 分钟刷新数据,这儿改成 120 。则最终是 2 小时才会监控得到新数据 wKiom1e8lsKiEfeXAAAnEscZ2uw021.png 五、Lepus监控数据库慢查询配置 1 ).监控端配置数据库帐号,让被监控端写入数据 监控端数据库执行: mysql> grantselect,insert,update,delete,create on lepus. * to 'lepus_user' @ '被监控端ip' identified by '333.test' ; 2 ).被监控端数据库添加账号允许脚本获得数据库信息 被监控端数据库执行: mysql> grantselect,process, super on * . * to 'monitor' @ 'localhost' identified by '444.test' ; 3 ).被监控端要安装pt工具 [root@mysql - master - 39 ~] # yum -y install perl-IO-Socket-SSL perl-DBI perl-DBD-MySQLperl-Time-HiRes 'perl(Time::HiRes)' 下载percona - toolkit: [root@mysql - master - 39 ~] # wget https://www.percona.com/downloads/percona-toolkit/2.2.6/RPM/percona-toolkit-2.2.6-1.noarch.rpm [root@mysql - master - 39 ~] # rpm -ivh percona-toolkit-2.2.6-1.noarch.rpm 4 ).将lepus安装包里的client目录里的lepus_slowquery.sh脚本拷贝到被监控端 [root@mysql - master - 39 ~] # ls lepus_slowquery.sh [root@mysql - master - 39 ~] # chomd +x lepus_slowquery.sh [root@mysql - master - 39 ~] # which mysql wKioL1e8ltDjeo2GAAAGs5rbtXQ743.png [root@mysql - master - 39 ~] # which pt-query-digest wKiom1e8ltnyCFbcAAAHU3MP00c240.png 获取数据库 id : wKioL1e8luGgNUtNAABa2t87Ntg104.png [root@mysql - master - 39 ~] # vim lepus_slowquery.sh 标红部分是需要修改的 #!/bin/bash #****************************************************************# #ScriptName:/usr/local/sbin/lepus_slowquery.sh #Create Date:2014-03-25 10:01 #Modify Date:2014-03-25 10:01 #***************************************************************# #configlepusdatabase server监控机 #设置监控端帐号信息 lepus_db_host = "监控端ip" lepus_db_port = 3306 lepus_db_user = "lepus_user" lepus_db_password = "333.test" lepus_db_database = "lepus" #configmysqlserver被监控机 #设置mysql命令路径和本地数据库监控帐号信息 mysql_client = "/usr/local/mysql/bin/mysql" mysql_host = "localhost" mysql_port = 3306 mysql_user = "monitor" mysql_password = "444.test" #configslowqury慢日志位置,从my.cnf配置文件中获取 slowquery_dir = "/data/logs/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路径 pt_query_digest = "/usr/bin/pt-query-digest" #configserver_id被监控机id从lepus图形界面看 lepus_server_id = 274 最后注意vi编辑设置 : set ff? 显示当前的格式,默认为dos,这时不能执行的 需要: : set fileformat = unix 变更为unix后,脚本才可执行。 手动执行一次脚本,便可在网页页面看到数据: wKioL1e8lvXRqWHiAABxwwOsTvU673.png 5 ).将脚本拷贝到 / usr / local / sbin / 下,并添加计划任务定时执行(建议时间间隔在一小时内) [root@mysql - master - 39 ~] # crontab -e * / 27 * * * * sh / usr / local / sbin / lepus_slowquery.sh > / dev / null 2 >& 1 6 ).配置邮箱 配置发件人: 点击配置中心 - 全局设置,然后如图,注意告警收件人需要在监控项设置里另外配置。 wKioL1fSZJfQkIyiAABcvkTVEbU486.jpg wKiom1fSZ1LxA1SWAAA - F7gSffE044.jpg 配置收件人: wKioL1fSZ77Q_O4cAACXHwF262o545.png wKiom1fSZ3WwKP7cAACqKici8Hc876.png 注意:发件人和收件人都要写全。 配置完成后在监控服务端的安装目录执行 [root@monitoring - 45 lepus] # python test_send_mail.py True send_mail_status:success 报成功后就是配置完成了。 7 ).慢查询自动推送 定时将系统收集到的慢查询TOP数据定时推送给相应开发人员进行优化,无需在每台数据库上部署脚本。 MySQL慢查询自动推送通过计划任务完成。如果需要推送,则需要在监控机部署如下计划任务。 #crontab -e 00 09 * * * links http: / / 111.com / index.php / task / send_mysql_slowquery_mail > / dev / null 2 >& 1 计划任务部署完成后,则会按照计划任务配置的时间将慢查询推送给对应人员。慢查询推送的邮件人员需要在MySQL主机配置里面设置即可,邮箱留空则该数据库主机不会发送慢查询推送。 六、Lepus监控数据库操作系统信息配置 Lepus使用的是snmp协议获取系统信息 1 ). snmpd 服务安装 [root@mysql - master - 39 ~] # yum install -y net-snmp net-snmp-utils 2 ).修改配置文件允许指定的主机监听自己 [root@mysql - master - 39 ~] # vim /etc/snmp/snmpd.conf : set nu 41 行 将default改为监控服务器ip;将public改成lepus_monitor (备注: lepus_monitor是在天兔配置文件里配置的通用实体,如果配置的实体是其他名称,这里要做相应的修改) com2secnotConfigUser 监控端ip lepus_monitor 62 行 将systemview 改为 all ,供所有snmp访问权限 access notConfigGroup "" any noauth exact all none none 85 行 将 #注释符号去掉 view all included . 1 80 3 ).修改snmpd 日志级别 snmpd 默认日志级别将会在 / var / log / message 写入大量snmp 信息,这样会影响我们察看系统日志,所以我们需要更改下配置文件: 注释原有的OPTINOS,添加下面的一行,重启snmpd 服务即可 [root@mysql - master - 39 ~] # 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" 4 ).启动 snmpd 服务 [root@mysql - master - 39 ~] # /etc/init.d/snmpd start 5 ).验证snmpd 服务 snmpd 使用tcp / udp161 端口 [root@mysql - master - 39 ~] # grep 'Simple Net Mgmt Proto' /etc/services snmp 161 / tcp # Simple Net Mgmt Proto snmp 161 / udp # Simple Net Mgmt Proto [root@mysql - master - 39 ~] # lsof -i :161 6 ).将SNMP服务设置开机启动 注意设置防火墙,允许监控端连接被监控端的tcp / udp161端口 7 ).在监控端使用snmpwalk 命令验证,在监控端上执行以下命令 snmpwalk - v 1 - c lepus_monitor 被监控端ip - v是指版本, - c 是指密钥,获取到系统信息则正常! 安装完成后在lepus网页配置中心 - 操作系统栏目配置操作系统信息,SNMP团体名填写刚才的密钥:lepus_monitor。 wKioL1e8lwCT3NnvAABJYGK7tQw779.png wKiom1fOd - LAE55kAABUiUpSpF8162.png 稍等几分钟,或在服务端lepus安装目录执行python lepus.py 片刻看到数据 |
时来天地皆同力,运去英雄不自由
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!