• Zabbix Server和MPM(monitor for mysql)的高速部署


    1. 前言

            zabbix作为开源免费的监控软件。其易于管理配置和可视化的视图、历史数据的定期维护、模板化的监控项目越来越受到广大IT运维人员的喜爱。

    这里主要是总结了下Zabbix Server和MPM使用yum进行高速部署。其更加具体的东西,大家还是看官方文档吧。偷笑我们首先把环境搭起来!

    2. 环境

    1)Zabbix Server

    Os:Redhat6.5 i686(vmware)
            ipaddr:192.168.8.3
            hostname:linux-zabbix
            MySQL :5.6.23
            MEM:1G

    2)监控端

            Os:CentOS 6.4 x64(vmware)
            ipaddr:192.168.8.5
            hostname:oneproxy-vm
            MEM:1G

    3. Zabbix Server部署

    3.1 yum环境配置

    这里的yum源使用的是163的CentOS6.6和zabbix官网的源。

    因为我的server安装的是rehat。所以首先要把redhat的yum卸载掉。安装centOS的yun软件。

    3.1.1 下载centos yum软件

    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-40.el6.centos.noarch.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm

    3.1.2 卸载redhat的yum包

    rpm -qa|grep -i yum|xargs rpm -e --nodeps

    3.1.3 安装centOS的yum包

    rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
    rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
    rpm -ivh yum-3.2.29-40.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm

    3.1.4 配置163的CentOS6.6的yum

    [root@linux-zabbix yum.repos.d]# cd /etc/yum.repos.d
    [root@linux-zabbix yum.repos.d]# cat CentOS6-Base-163.repo 
    # CentOS-Base.repo
    #
    # The mirror system uses the connecting IP address of the client and the
    # update status of each mirror to pick mirrors that are updated to and
    # geographically close to the client.  You should use this for CentOS updates
    # unless you are manually picking other mirrors.
    #
    # If the mirrorlist= does not work for you, as a fall back you can try the 
    # remarked out baseurl= line instead.
    #
    #
    
    [base]
    name=CentOS-6.6 - Base - 163.com
    baseurl=http://mirrors.163.com/centos/6.6/os/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=6.6&arch=$basearch&repo=os
    gpgcheck=1
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
    
    #released updates 
    [updates]
    name=CentOS-6.6 - Updates - 163.com
    baseurl=http://mirrors.163.com/centos/6.6/updates/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?

    release=6.6&arch=$basearch&repo=updates gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #additional packages that may be useful [extras] name=CentOS-6.6 - Extras - 163.com baseurl=http://mirrors.163.com/centos/6.6/extras/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?

    release=6.6&arch=$basearch&repo=extras gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-6.6 - Plus - 163.com baseurl=http://mirrors.163.com/centos/6.6/centosplus/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=6.6&arch=$basearch&repo=centosplus gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users [contrib] name=CentOS-6.6 - Contrib - 163.com baseurl=http://mirrors.163.com/centos/6.6/contrib/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=6.6&arch=$basearch&repo=contrib gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6


    3.1.5 配置zabbix的yum源

    wget http://repo.zabbix.com/zabbix/2.4/rhel/6/i386/zabbix-release-2.4-1.el6.noarch.rpm
    rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm
    [root@linux-zabbix yum.repos.d]# cat zabbix.repo 
    [zabbix]
    name=Zabbix Official Repository - $basearch
    baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/6/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    
    
    [zabbix-non-supported]
    name=Zabbix Official Repository non-supported - $basearch 
    baseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    gpgcheck=1
    

    3.2 Zabbix Server安装

    3.2.1 安装mysql数据库

    yum remove mysql-libs-5.1.71-1.el6.i686
    rpm -ivh MySQL-server-advanced-5.6.23-1.el6.i686.rpm
    rpm -ivh MySQL-client-advanced-5.6.23-1.el6.i686.rpm
    rpm -ivh MySQL-shared-compat-advanced-5.6.23-1.el6.i686.rpm MySQL-shared-advanced-5.6.23-1.el6.i686.rpm MySQL-devel-advanced-5.6.23-1.el6.i686.rpm

    3.2.2 配置mysql

    配置文件/etc/my.cnf
    [root@linux-zabbix etc]# cat my.cnf
    [client]
    port = 3306
    socket = /tmp/mysql.sock
    
    #The MySQL Server
    #########Basic######
    [mysqld]
    server-id = 1
    port = 3306
    user = mysql
    basedir = /usr/ 
    datadir = /var/lib/mysql
    tmpdir = /var/lib/mysql/tmp
    socket = /tmp/mysql.sock
    skip-external-locking
    skip-name-resolve
    default-storage-engine = INNODB
    character-set-server = utf8
    wait_timeout = 100
    connect_timeout = 20
    interactive_timeout = 100
    back_log = 500
    event_scheduler = on
    explicit_defaults_for_timestamp
    #skip-grant-tables 
    #############binlog##############
    log-bin = /var/lib/mysql/logs/mysql-bin
    binlog_format = row
    max_binlog_size = 128M
    binlog_cache_size = 4M
    expire_logs_days = 5 
    ##############Slow log####################
    slow_query_log = 1
    slow_query_log_file = /var/lib/mysql/logs/mysql.slow
    long_query_time = 2
    ###############Per_Thread_Buffers########################
    max_connections = 1024
    max_user_connections = 1000
    max_connect_errors = 10000
    key_buffer_size = 32M
    max_allowed_packet = 128M
    table_open_cache = 3096
    table_definition_cache = 4096
    sort_buffer_size = 512K
    read_buffer_size = 512K
    read_rnd_buffer_size = 512K
    join_buffer_size = 512K
    tmp_table_size = 16M
    max_heap_table_size = 16M
    query_cache_type = 0
    query_cache_size = 0
    bulk_insert_buffer_size = 16M
    thread_cache_size = 64
    thread_stack = 256K
    ################InnoDB#########################
    innodb_data_home_dir = /var/lib/mysql
    innodb_autoinc_lock_mode = 2
    innodb_log_group_home_dir = /var/lib/mysql/logs
    innodb_data_file_path = ibdata1:1G:autoextend
    innodb_buffer_pool_size = 256M
    innodb_buffer_pool_instances = 1
    innodb_log_file_size = 64M
    innodb_log_buffer_size = 4M
    innodb_flush_log_at_trx_commit = 2
    innodb_lock_wait_timeout = 10
    innodb_sync_spin_loops = 40
    innodb_max_dirty_pages_pct = 90
    innodb_support_xa = 1
    innodb_thread_concurrency = 0
    innodb_thread_sleep_delay = 500
    innodb_file_io_threads = 4
    innodb_concurrency_tickets = 1000
    log_bin_trust_function_creators = 1
    innodb_flush_method = O_DIRECT
    innodb_file_per_table
    innodb_read_io_threads = 4
    innodb_write_io_threads = 4
    innodb_io_capacity = 2000
    innodb_file_format = Barracuda
    innodb_purge_threads = 1
    innodb_purge_batch_size = 32
    innodb_old_blocks_pct = 75
    innodb_change_buffering = all
    transaction_isolation = READ-COMMITTED
    
    
    [mysqldump]
    quick
    max_allowed_packet = 64M
    
    [mysql]
    no-auto-rehash
    
    [myisamchk]
    key_buffer_size = 32M
    sort_buffer_size = 256K
    read_buffer = 2M
    write_buffer = 2M
    
    [mysqlhotcopy]
    interactive-timeout
    
    [mysqld_safe]
    open-files-limit=28192
    
    [mysql]
    host=localhost
    user=zabbix
    password=zabbix
    socket=/tmp/mysql.sock
    
    [mysqladmin]
    host=localhost
    user=zabbix
    password=zabbix
    socket=/tmp/mysql.sock
    创建文件夹
    mkdir -p /var/lib/mysql/tmp
    mkdir -p /var/lib/mysql/logs
    chown -R mysql:mysql /var/lib/mysql
    初始化mysql
    mysql_install_db --defaults-file=/etc/my.cnf --datadir=/var/lib/mysql/
    启动数据库后,创建zabbix数据库。设置rootpassword
    service mysql start
    mysql> create database zabbix default charset utf8;
    mysql> grant all on *.* to 'root'@'localhost' identified by '123456';
    mysql> grant all on *.* to 'root'@'%' identified by '123456';
    
    
    mysql> flush privileges;
    

    3.2.3 安装zabbix

    yum install zabbix-server-mysql zabbix-web-mysql
    yum install zabbix-get
    yum会自己主动的将apache和php安装配置好。

    3.2.4 初始化zabbix数据库

    cd /usr/share/doc/zabbix-server-mysql-2.4.5/create
    
    [root@linux-zabbix create]# mysql -p123456 -uroot zabbix < schema.sql
    [root@linux-zabbix create]# mysql -p123456 -uroot zabbix < images.sql 
    [root@linux-zabbix create]# mysql -p123456 -uroot zabbix < data.sql 

    3.2.5 改动zabbix server配置文件

    cat /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=root
    DBPassword=123456

    3.2.6 改动php配置文件

    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    date.timezone = PRC

    3.2.7 启动服务

    service zabbix-server start
    servivce httpd start

    3.2.8 配置页面

    打开 http://192.168.8.3/zabbix 后,配置相关选项
    安装要求检查



    数据库配置


    zabbix-server


    安装预览


    完毕后,能够使用默认管理员用户admin/zabbix进行登录


    4. 配置Zabbix Agent和MPM

    4.1 zabbix agent配置

    yum的配置上一部分已经说了,直接安装
    yum install zabbix-agent
    yum install zabbix-sender
    配置/etc/zabbix/zabbix_agentd.conf
    Server=192.168.8.3
    ServerActive=192.168.8.3
    Hostname=oneproxy-vm

    4.2 MPM安装配置

    4.2.1 安装依赖包

    yum install perl-File-Which perl-libwww-perl perl-Digest-SHA perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay

    4.2.2 软件介绍

            到官网http://www.fromdual.com/ 下载MPM的相关版本号。这里我使用的是mysql_performance_monitor-0.9.3.tar.gz。(PS:最新的0.10版本号没有相关文档,简直坑啊!)
    解压缩软件包后,会发现有两个文件mysql_performance_monitor_agent-0.9.3.tar.gz和mysql_performance_monitor_templates-0.9.3.tar.gz。当中mysql_performance_monitor_agent-0.9.3.tar.gz是放在监控机器上的配置信息。mysql_performance_monitor_templates-0.9.3.tar.gz则是要让我们导入到zabbix server的模板数据。


    4.2.3 模板导入

    登录到我们的zabbix server服务器上,通过Configuration-->Templates-->Import进行模板导入

    将mysql_performance_monitor_templates-0.9.3.tar.gz解压缩后Template_FromDual.MySQL.mpm.xml是必须导入的,我们优先导入。其它的大家依据需求进行导入。我这里是将全部模板导入了。

    4.2.4 创建监控host

    通过Configuration-->Host groups创建一个用户组。我这里创建名称为mpm的用户组。


    通过Configuration-->Hosts创建一个用户,将其增加到mpm用户组中。关联的Template使用我们导入的。



    关联Template



    ok,我们的server端就配置完成了。

    4.2.5 MPM agent配置

    解压缩我们的agent软件包mysql_performance_monitor_agent-0.9.3.tar.gz。将其放到/opt文件夹下
    mv mysql_performance_monitor_agent-0.9.3 /opt/mysql_performance_monitor_agent
    cd /opt/mysql_performance_monitor_agent/etc
    cp FromDualMySQLagent.conf.template /etc/zabbix/FromDualMySQLagent.conf
    mkdir -p /var/log/zabbix /var/log/zabbix/cache
    chown -R zabbix: /var/log/zabbix /var/log/zabbix/cache

    编辑/etc/zabbix/zabbix-agent.conf。加入
    UserParameter=FromDual.MySQL.check,/opt/mysql_performance_monitor_agent/FromDualMySQLagent.pl /etc/zabbix/FromDualMySQLagent.conf

    改动MPM配置文件
    [root@oneproxy-vm zabbix]# cat /etc/zabbix/FromDualMySQLagent.conf
    [default]
    
    # Type of section:
    # mysqld for a normal MySQL database
    # ndbd   for a MySQL cluster
    Type         = mysqld
    
    # Debug levels are:
    # 1 is logging only errors
    # 2 is logging errors and warnings (this is the default)
    # 3 logs some informations messages as well
    # 4 logs everything (for debugging purposes only)
    
    Debug         = 2
    LogFile       = /var/log/zabbix/FromDualMySQLagent.log
    # Directory where the Cache files should be written to:
    CacheFileBase = /var/log/zabbix/cache/FromDualAgentCache
    
    # If you agent is not located in the same time zone as your server
    # For US something like -6.0 to our MaaS Server
    # For Asia something like +7.0 to our MaaS Server
    # TimeShift = +0.0
    
    # Information for MySQL connections:
    Username     = root
    Password     = 123456
    MysqlHost    = 127.0.0.1
    MysqlPort    = 3306
    
    # Zabbix Server IP address
    ZabbixServer = 192.168.8.3
    </pre><pre name="code" class="html"># If section is disabled
    Disabled     = false
    
    
    # Possible modules for databases are:
    # process mysql myisam aria innodb pbxt ndb master slave drbd galera memcache
    # Possible modules for servers are:
    # mpm server
    # Usual modules are
    Modules      = process mysql myisam innodb
    [oneproxy-vm]          # This MUST match Hostname in Zabbix!
    
    Type         = mysqld
    Username     = root
    Password     = 123456
    MysqlHost    = 127.0.0.1
    MysqlPort    = 3306
    Modules      = process mysql myisam innodb
    PidFile      = /data/mysql_3306/mysql.pid

    当中default字段是默认的,oneproxy-vm字段必须与zabbix-server中配置的hosts名称相等。

    其它的依据自己的本地mysql环境进行配置。

    给予zabbix对pid文件的读权限和MPM日志的权限
    chmod o+r /data/mysql_3306/mysql.pid
    touch /var/log/zabbix/FromDualMySQLagent.log
    chown -R zabbix:zabbix /var/log/zabbix
    
    
    启动zabbix-agent就可以
    service zabbix-agent start


  • 相关阅读:
    当开发者产生一个伟大的想法之后应该做的10件事
    PUT 还是 POST ?
    Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.
    使用 Protocol Buffers 代替 JSON 的五个原因
    Java 打印堆栈的几种方法
    Eclipse调试Java的10个技巧
    如何使用命令查看系统名称?
    Feed系统架构资料收集
    dcm4chee 修改默认(0002,0013) ImplementationVersionName
    【原创】分布式之数据库和缓存双写一致性方案解析
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6758545.html
Copyright © 2020-2023  润新知