您的位置:首页 > 数据库 > SQL

生产环境lepus部署 监控MySQL

2019-03-19 17:32 113 查看
主机类型 服务器地址
监控主机 10.3.97.240
被监控1 10.3.145.1
被监控2 10.3.145.2

监控机:

安装软件 版本
lepus 3.7
mysql 5.7.25
Apache 2.2.15

安装步骤:

  1. 安装操作系统软件包
yum install  gcc python-devel net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml  -y
  1. 拷贝lepus 目录下的php 文件到/var/www/html目录下,关闭Linux防火墙,重启apache 服务
[root@localhost lepus_v3.7]# cd /var/www/html/
[root@localhost html]# ls
php

修改PHP配置/var/www/html/php/application/config/database.php
$db['default']['hostname'] = '127.0.0.1';
$db['default']['port']     = '3306';
$db['default']['username'] = 'root';
$db['default']['password'] = 'Lepus123';
$db['default']['database'] = 'lepus';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
[root@localhost html]# service httpd status
httpd is stopped
[root@localhost html]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[  OK  ]
告警的解决:
编辑 /etc/httpd/conf/httpd.conf
添加 ServerName localhost:8089
/*
如果需要修改监听端口,修改httpd.conf文件中的Listen 配置
Listen 8089
[root@localhost conf]# netstat -lnap |grep httpd
tcp        0      0 :::8089                     :::*                        LISTEN      2708/httpd
*/
  1. 安装监控服务器的MySQL资料库
1. ]# tar -xzvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz -C /usr/local
2. ]# cd /usr/local
3. ]# ln -s ./mysql-5.7.25-linux-glibc2.12-x86_64/ ./mysql
4. ]# useadd mysql
5. ]# mkdir -p /data/mysql
6. ]# chown mysql:mysql -R /data/mysql
7. ]# chown mysql:mysql -R /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/ mysql
8. 检查/删除已经安装的MySQL
9. ]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --initialize
10. 修改root 密码:Lepus123
  1. 在资料库中创建lepus 基础表,导入基础数据
执行/usr/local/lepus_v3.7/sql 中的sql
# mysql -uroot -pLepus123 -Dlepus <lepus_table.sql
# mysql -uroot -pLepus123 -Dlepus <lepus_data.sql
  1. 安装lepus
# /usr/local/lepus_v3.7/python 下的sh 和py 文件添加执行权限
1. chmod +x *.py *.sh

# 编辑当前目录下的配置文件,指定资料库的连接信息
2. vim etc/config.ini
[monitor_server]
host="127.0.0.1"
port=3306
user="root"
passwd="Lepus123"
dbname="lepus"

3. 执行install.sh安装
  1. 启动lepus和报错解决
[root@localhost local]# lepus start
nohup: appending output to `nohup.out'
lepus server start fail!
# 检查日志
[root@localhost lepus]# less nohup.out
Traceback (most recent call last):
File "lepus.py", line 8, in <module>
import MySQLdb
ImportError: No module named MySQLdb ## 监控MySQL需要安装mysql的python 支持包
安装MySQLpython包:
yum install MySQL-python.x86_64 -y
再次启动成功
# 安装Oracle监控包cx_oracle的时候报错:
running build
running build_ext
building 'cx_Oracle' extension
creating build
creating build/temp.linux-x86_64-2.6
creating build/temp.linux-x86_64-2.6/src
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Iodpi/include -Iodpi/src -I/usr/include/python2.6 -c src/cx_Oracle.c -o build/temp.linux-x86_64-2.6/src/cx_Oracle.o -DBUILD_VERSION=6.0
src/cx_Oracle.c:17:20: error: Python.h: No such file or directory
……
src/cx_Oracle.c: In function ‘initcx_Oracle’:
src/cx_Oracle.c:725: warning: implicit declaration of function ‘Module_Initialize’
error: command 'gcc' failed with exit status 1

#解决:安装python开发包
yum install -y python-devel
#重新编译安装cx_oracle
python setup.py build
python setup.py install
  1. 检查lepus nohup 日志
使用浏览器登陆的时候,apache 日志报错:
[Tue Mar 19 16:45:32 2019] [error] [client *.*.*.*] File does not exist: /var/www/html/favicon.ico
[Tue Mar 19 16:46:24 2019] [error] [client *.*.*.*] Directory index forbidden by Options directive: /var/www/html/
#解决:
安装系统以来的额php 软件包,所有的软件包安装见配置的第一步
  1. 登陆8089 端口,查看lepus 主页面
    首次登陆密码为: lepus/Lepusadmin

  2. 添加MySQL监控

# 在被监控的MySQL库创建监控用户
grant select,super,process,reload,show databases,replication client on *.* to 'lepus_monitor'@'10.3.97.240' identified by 'MANAGER';
flush privileges;
  1. 添加操作系统监控 [ol] 在被监控主机安装net-snmp*
    yum install -y net-snmp*
  2. 编辑 vim /etc/snmp/snmpd.conf 文件
    vim /etc/snmp/snmpd.conf
    # 修改监控主机的IP和用户(用户名是lepus 监控中配置的用户名,此处配置的是root)
    # 41 行改成如下
    com2sec notConfigUser  10.3.97.240  root
    # 62 行 将any 改成all
    access  notConfigGroup ""      any       noauth    exact  all none none
    
    # 85 行去掉注释
  3. 启动snmpd
    ]# /etc/init.d/snmpd status
    # snmp 默认是使用的是161 端口 监控主机需要访问被监控主机的161端口
    [root@localhost snmp]# grep 'Simple Net Mgmt Proto' /etc/services
    snmp            161/tcp                         # Simple Net Mgmt Proto
    snmp            161/udp                         # Simple Net Mgmt Proto
    [root@localhost snmp]# lsof -i :161
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    snmpd   94420 root    7u  IPv4 800342      0t0  UDP *:snmp
    [root@localhost snmp]# ps -ef | grep 'snmpd'
  4. 在监控主机使用snmpwalk验证
    snmpwalk -v 1 -c root 10.3.145.1
    snmpwalk -v 2c -c root 10.3.145.1
[/ol]

添加MySQL主机监控之后,在nohup日志中报错

ERROR 1366 (HY000) at line 1: Incorrect integer value: '' for column 'mem_shared' at row 1
# 造成该错误的原因是在Linux内核2.6 以上的时候,MemShared 已经被删除,所以,mem_shared获取错误。
# 解决方案:
修改lepus 监控脚本,在脚本合适的位置,添加mem_shared 变量赋值操作。
[root@localhost lepus]# vim check_os.sh
39     mem_shared=`/usr/bin/snmpwalk -v1 -c ${community}  ${ip}  UCD-SNMP-MIB::memShared.0 |cut -d= -f2 |awk -F ' ' '{print $2}'`
40     if [ -z $mem_shared ];then
41     mem_shared=0
42     fi
  1. MySQL主从监控
    lepus 监控主从是从视图中读取数据,要在主从库开启 show_compatibility_56 参数,否则,MySQL主从复制拓扑无法获取

  2. 监控慢查询

    [ol] 在被监控主机安装percona-tookit 工具集
  3. 从监控服务器拷贝慢查询监控脚本,并修改
    scp /usr/local/lepus/client/mysql/lepus_slowquery.sh root@10.3.145.1:/usr/bin/
    # 145.1:
    chmod +x lepus_slowquery.sh
    vim lepus_slowquery.sh
    #config lepus database server
    lepus_db_host="10.3.97.240"
    lepus_db_port=3306
    lepus_db_user="root"
    lepus_db_password="Lepus123"
    lepus_db_database="lepus"
    #config mysql server
    mysql_client="/usr/local/mysql/bin/mysql"
    mysql_host="127.0.0.1"
    mysql_port=2306
    mysql_user="root"
    mysql_password="8U^@x7Y3"
    #config slowqury
    slowquery_dir="/data/mysql/"
    ……
    #config server_id
    lepus_server_id=sbtest1 #此处的server_id是lepus “配置中心” 中对应的IP的id字段
    
    #原始脚本存在不可见字符,需要替换一下
    sed -i "s/\\r/\\n/g" lepus_slowquery.sh
    sed -i /^$/d lepus_slowquery.sh
  4. 在被监控机配置慢查询的定时任务,定时筛选慢查询日志
    # 测试监控数据是否可以正常回写
    sh lepus_slowquery.sh
    */5 * * * * sh /usr/bin/lepus_slowquery.sh > /dev/null 2>&1
[/ol]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: