设为首页 收藏本站
查看: 1909|回复: 0

[经验分享] Zabbix监控

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-8 08:34:41 | 显示全部楼层 |阅读模式
(一)基础配置一、环境准备rpm -ivh http://dl.fedoraproject.org/pub/ ... ease-5-4.noarch.rpm
1、安装LAMP环境
# yum -y install mysql mysql-server  httpd php
# chkconfig mysqld on
# chkconfig httpd on

2、创建Zabbix运行的用户
# groupadd zabbix
# useradd -g zabbix zabbix
3、安装ZabbixWeb所需的依赖包
# yum -y install mysql-devel gcc net-snmp-develcurl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml
安装fping
#cd /opt
#wget -c http://fping.org/dist/fping-3.4.tar.gz
# tar xvf fping-3.4.tar.gz
# cd fping-3.4
# ./configure
# make && make install
# chown root:zabbix /usr/local/sbin/fping
# chmod 4710 /usr/local/sbin/fping

4、安装
#cd /opt
wget -c http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fzabbix%2F%3Fsource%3Ddlp&ts=1367916060&use_mirror=ncu
# tar xvf zabbix-2.0.6.tar.gz
# cd zabbix-2.0.6
# ./configure --prefix=/usr/local/zabbix --enable-server--enable-agent --enable-proxy --with-mysql=/usr/bin/mysql_config--with-net-snmp --with-libcurl
#echo $?
#make && make install
#echo $?

二、Zabbix Server配置与启动 1、创建Zabbix数据库和Mysql用户
#service mysqld start
#mysqladmin -uroot password 'xxxxx'
#mysql -uroot -pxxxxxx
mysql> create schema zabbix character set utf8;
Query OK, 1 row affected (0.03 sec)

mysql> create user 'zabbix'@'127.0.0.1' identified by'123456';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2、导入Zabbix数据库初始数据
#cd zabbix-2.0.12/database/mysql
# mysql -uroot -picebox zabbix < schema.sql  
# mysql -uroot -picebox zabbix < images.sql  
#mysql -uroot -picebox zabbix < data.sql  
3、配置Zabbix配置文件
# cd /usr/local/zabbix/etc
# cp zabbix_server.conf zabbix_server.conf.bak
# cat >zabbix_server.conf<<EOF
> ListenPort=10051
> LogFile=/usr/local/zabbix/logs/zabbix_server.log
> PidFile=/usr/local/zabbix/logs/zabbix_server.pid
> DBHost=127.0.0.1         (此处不支持localhost
> DBName=zabbix
> DBUser=zabbix
> DBPassword=123456
> DBPort=3306
> DBSocket=/var/lib/mysql/mysql.sock
> FpingLocation=/usr/local/sbin/fping
> EOF

4、配置Zabbix服务。
# cd /opt/src/zabbix-2.0.12
# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
# mkdir -p /usr/local/zabbix/logs
# chown -R zabbix:zabbix /usr/local/zabbix/
# vim /etc/init.d/zabbix_server     #修改增加蓝色字体
RETVAL=0
prog="Zabbix Server"
#ZABBIX_BIN="/usr/local/sbin/zabbix_server"
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
CONF_FILE="/usr/local/zabbix/etc/zabbix_server.conf"
if [ ! -x ${ZABBIX_BIN} ] ; then
echo -n "${ZABBIX_BIN} not installed! "
# Tell the user this has skipped
exit 5
fi
start() {
        echo -n $"Starting$prog: "                                            
          daemon $ZABBIX_BIN -c $CONF_FILE                                       
        RETVAL=$?                                                            
        [ $RETVAL -eq 0 ] &&touch /var/lock/subsys/zabbix_agentd               
        echo                                                                 
}


5、开启Zabbix安全限制(若未开防火墙,可跳过此步骤)
#iptables -A INPUT -p tcp -m tcp --dport 10051 -j ACCEPT
#service iptables save

6、启停Zabbixserver
#service zabbix_server start
#service zabbix_server stop

7、配置开机自启动
#chkconfig --add zabbix_server
#chkconfig --level 35 zabbix_server on

8、查看日志是否报错
# cd /usr/local/zabbix/logs
# tail -f zabbix_server.log

三、配置Zabbix Web服务端 1、将ZabbixWeb文件复制到Apache Web目录中
#cd zabbix-2.0.12
# cp -ra frontends/php/* /var/www/html

2Apache配置
# vim /etc/httpd/conf/httpd.conf (修改如下内容)
ServerName 127.0.0.1:80

3PHP配置
# vim /etc/php.ini (以下标红添加,标蓝修改)
date.timezone=Asia/Shanghai        #php5.3版本,地区首字母必须大写
mbstring.func_overload=2
post_max_size=16M
max_execution_time=300
max_input_time=300

4Zabbixweb安装
#service httpd start
访问web界面http://192.168.198.129,按照步骤提示依次进行安装

默认登录用户名admin,密码zabbix,登录后修改密码:Adminstration->Users->Admin->ChangePassword


四、安装Zabbix Agent1、安装软件
#cd /opt
wget -c   http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fzabbix%2F%3Fsource%3Ddlp&ts=1367916060&use_mirror=ncu

http://heanet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz
# tar xvf zabbix-2.0.6.tar.gz   
# cd zabbix-2.0.6
# ./configure --prefix=/usr/local/zabbix--enable-agent  
#echo $?   
#make && make install   
#echo $?  
# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/   ##为下面配置init做准备

2、配置zabbix_agentd
# groupadd zabbix
# useradd -g zabbix zabbix
# mkdir -p /usr/local/zabbix/logs

# cd /usr/local/zabbix/etc
# cp zabbix_agentd.conf zabbix_agentd.conf.bak
# cat >zabbix_agentd.conf<<EOF               
PidFile= /usr/local/zabbix/logs/zabbix_agentd.pid
LogFile= /usr/local/zabbix/logs/zabbix_agentd.log
Server=zabbix_server_IP            #zabbix_serverIP
ListenPort=10050
ServerActive=zabbix_server_IP             #zabbix_server IPHostname=zabbix_server         agent_IP           #zabbix_agentIP Webhost相同名称,本人喜欢用IP地址
Timeout=15
Include= /usr/local/zabbix/etc/zabbix_agentd.conf.d/       #监控mysqlMPM插件时用此项

#以下为自定义监控
UnsafeUserParameters=1

Userparameter=user.shell
  • .sh  $1
    # chown -R zabbix:zabbix /usr/local/zabbix/

    3、配置启动脚本
    # vim /etc/init.d/zabbix_agentd #修改增加以下蓝色字体
    #ZABBIX_BIN="/usr/local/sbin/zabbix_agentd"
    ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
    CONF_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"
    ~~~~~~~~~~~~
    start() {
            echo -n $"Starting$prog: "                                            
            daemon$ZABBIX_BIN -c $CONF_FILE                                      
            RETVAL=$?                                                            
            [ $RETVAL -eq 0 ] &&touch /var/lock/subsys/zabbix_agentd               
            echo                                                                 
    }

    4、开启Zabbix安全限制(若未开防火墙,可跳过此步骤)
    #iptables -A INPUT -p tcp -m tcp --dport 10050 -jACCEPT
    #service iptables save

    5、启停Zabbixagentd
    #service zabbix_agentd start
    #service zabbix_agentd stop
    #/etc/init.d/zabbix_agentd start

    6、配置开机自启动
    #chkconfig --add zabbix_agentd
    #chkconfig --level 35 zabbix_agentd on

    7、检测Zabbix Agent是否正常工作
    # /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd .conf -t system.uptime
    system.uptime                               [u|689960]

    参考:《深入浅出MySQL

    (二)MySQL数据库监控部署MPMperformance monitor for mysql
    MPM是一套比较完整的监控Mysql数据库的Zabbix插件,该插件中包括丰富的监控项和触发器规则,通过和Zabbix客户端整合,可以完美的实现对Mysql数据库的监控。

    MPM实现过程:Zabbix客户端zabbix_agentd读取配置文件zabbix_agentd.confzabbix_agentd.conf根据设置载入FromDual_MYSQL_monitoring.conf文件,将Zabbix客户端和MPM插件实现挂接。MPM的主要功能是完成对数据库相关信息收集和上传操作。对数据库信息的收集操作,主要通过自身配置的FromDualMYSQLagent.conf文件来读取相关配置信息,在收集过程中会调用插件自身的FromDualMYSQL*.pm模块,通过FromDualMYSQLagent.pl实现解析,最终通过调用zabbix_sender实现上传。

    安装步骤
    zabbix_agent
    一.环境支持安装MPM依赖的相关Perl模块
    #perl -MCPAN -e shell
    install File::Which        #必须安装,不然后续测试不成功
    install Bundle::LWP
    install Digest::SHA1
    install DBD::mysql
    install Time::HiRes
    install Crypt::SSLeay
    yum安装软件包:
    yum install perl-File-Whichperl-libwww-perl perl-Digest-SHA1 perl-DBD-MySQL perl-Time-HiResperl-Crypt-SSLeay
    在对生产版本安装时,Perl安装这些支持模块无法成功,用yum安装成功。
    无法安装时,可以下载安装perl yum源后再进行yum安装(可能会有更新)
    rpm -ivh http://dl.fedoraproject.org/pub/ ... ease-5-4.noarch.rpm


    下载MPM并解压
    #cd /opt/src/
    # wget -c http://www.shinguz.ch/download/mysql_performance_monitor-latest.tar.gz
    解压后的文件有:
    mysql_performance_monitor_templates-0.9.1.tar.gz   Zabbix Server Web端导入的模板文件
    mysql_performance_monitor_agent-0.9.1.tar.gz    Zabbix客户端需要部署的MPM客户端文件

    二.MPM模板Zabbix Web导入MPM模板
    mysql_performance_monitor_templates-0.9.1.tar.gz上传到windows系统,将内部xml文件导入。
    Zabbix Web————configuration————templates————import
    一般导入以下插件:


    三.安装MPM安装MPM并配置MPM Agent的Zabbix Keys,以实现Zabbix挂接MPM
    安装MPMagent
    #cd /opt/src
    #tar xvf mysql_performance_monitor_agent-0.9.1.tar.gz
    #mv mysql_performance_monitor_agent-0.9.1/usr/local/mysql_performance_monitor-agent

    FromDualMySQLagent.pl脚本中修改相应的zabbix_sender的路径:
    #cd  /usr/local/mysql_performance_monitor-agent
    #sed -i"s|/usr/local/bin|/usr/local/zabbix/bin|g" FromDualMySQLagent.pl

    MPM Agentkyes信息缴入到zabbix_agentd的配置目录中
    #cd /usr/local/zabbix/etc/zabbix_agentd.conf.d
    #vim FromDual_MySQL_monitoring.conf
    UserParameter=FromDual.MySQL.check,/usr/local/mysql_performance_monitor-agent/FromDualMySQLagent.pl/usr/local/mysql_performance_monitor-agent/etc/FromDualMySQLagent.conf

    四.MPM Agent配置创建MPMMysql监控用户
    >create user 'mpm'@'127.0.0.1' identified by 'xxxx';
    >grant process,replication client on *.* to'mpm'@'127.0.0.1';
    >flush privileges;

    配置MPM Agent
    #cd /usr/local/mysql_performance_monitor-agent/etc
    #cp FromDualMySQLagent.conf.templateFromDualMySQLagent.conf
    #mkdir -p /var/log/zabbix/cache
    #touch /var/log/zabbix/ FromDualMySQLagent.log
    #chown -R zabbix.zabbix /var/log/zabbix
    #ps aux |grep mysql        #查看mysql运行的pid信息
    #chmod o+r /home/mysql/mysql/var/mysql.pid
    #vim FromDualMySQLagent.conf    #修改一下信息
    -----------------------------------------------------------------------
    Username     = mpm
    Password     = xxxx
    MysqlHost    = 127.0.0.1
    MysqlPort    = 5537

    ZabbixServer = 192.168.246.132

    #ClusterLog   =/var/lib/mysql-cluster/ndb_1_cluster.log
    #PidFile      = /var/lib/mysql/mysqld.pid
    #注释以上两条
    [192.168.246.128]        #被这个害惨This MUST match Hostname inZabbix!

    Type         = mysqld

    MysqlPort    = 5537
    Modules      = process mysql myisam slave
    PidFile      =/home/mysql/mysql/var/mysql.pid

    ---------------------------------------------------------------------------
    检查MPM插件工作状况:
    #/usr/local/mysql_performance_monitor-agent/FromDualMySQLagent.pl /usr/local/mysql_performance_monitor-agent/etc/FromDualMySQLagent.conf
    1
    输出1,代表插件可以正常工作,重启agent
    #service zabbix_agentd restart
    #chown -R zabbix.zabbix /var/log/zabbix           #再次进行权限修改

    ==========================================================
    Zabbix Web端操作
    1、增加组:configuration—Host groups——Create host group——》输入组名:mysql database
    2、增加主机configuration——Hosts——create host ——输入主机名(主机名必须和上面的标红配置相同)
    3、添加模板Templates


    ======================================================
    至此,zabbix安装完成,但是发现超级用户登录时,administration页面会显示Installation一项,为了安全修改页面代码:
    zabbix_server
    #vim /var/www/html/include/menu.inc.php
    注释相应内容,进行如下操作:
    /**            arrary(
                               'url' => 'setup.php',
                               'label'=> _('Installation')
                               )
    **/
    刷新页面,发现没有installation选项
    =====================================================

    (三)邮件报警成功搭建zabbix监控后,可以对服务器状态:内存利用率、网络、负载、硬盘等进行监控,同时也使用了mpm对数据库进行监控,对于一些开源的监控如nagioscacti,个人还是更加倾向于zabbix(直观的图形化,良好的报警功能)。
    下面将本次邮件报警的方法归纳如下:
    本次邮件报警是使用zabbix_serversendmail服务向外进行报警。
    环境:CentOS6.5
    一.安装sendmail在zabbix_server上安装sendmail

    yum -y install sendmail
    service sendmail start
    chkconfig sendmail on
    注意:一般centos5默认安装sendmailcentos6默认安装postfix,无论是sendmail还是postfix,只开启其中一项服务即可,实际上开启sendmail后,由于端口占用,postfix是无法开启的。
    二.安装mailx安装邮件发送工具mailx

    (本步骤拷贝自转载文章,本人测试了可行性-可行)
    yum install mailx  #OSCentOS6.5,可以直接安装
    CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
    yum remo ve mailx #卸载系统自带的旧版mailx
    下载mailx
    wget http://nchc.dl.sourceforge.net/p ... /mailx-12.4.tar.bz2
    tar jxvf mailx-12.4.tar.bz2 #解压
    cd mailx-12.4 #进入目录
    make #编译
    make install UCBINSTALL=/usr/bin/install #安装
    ln -s /usr/local/bin/mailx /bin/mail #创建mailxmail的软连接
    ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
    whereis mailx #查看安装路径
    mailx -V #查看版本信息
    echo "zabbix test mail" |mail -s"zabbix" xxx@163.com
    #测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:xxx@163.com

    注意:若修改了服务器hostname,则按照下面规则进行修改
    192.168.1.123 szdz-SLAVE szdz-SLAVE.com
    否则会报下面错误,导致邮件无法及时发送
    Jan 28 19:17:58 iZ23cy5egqgZ sendmail[4944]: unable toqualify my own domain name (szdz-SLAVE) -- using short name
    三.配置mailweb配置mail告警

    1


    注意:本实验的SMTP服务器设置为127.0.0.1,具体原因后面进行说明。
    2


    3



    注意:由于本实验仅对用户进行了示警媒体,所以仅针对用户设置即可。

    四.测试OK,现在进行测试吧,下面实例是本人的故障情况和邮件报警:
    报警:

    可以发现事件中,有的动作为正常:表示邮件发送成功,以失败表示为发送成功,后面单独进行说明。
    邮件接收:


    OK,成功啦。。。。。。。

    ------------------------------分割线-------------------------------------------------
    五.错误排查1、查看邮件日志:
    less /var/log/mailog
    发现异常情况,本次实验通过日志发现主机名的设置情况,即上面说的


    2、查看zabbix_server的数据库
    查看zabbixtable alters

    啊哦,可以发现信息好详细哦。
    可以看到error,认为无法连通该SMTP server的端口,然后进行排查原因,在SMTP server上利用Telnet进行端口测试
    原因:由于之前在配置web邮件设置是,使用的是服务器外网IP,而telnet不通该IP 端口,奇怪的是telnet 127.0.0.1 25时则为成功,ok,不管他,进行修改websendmail设置,改成127.0.0.1,然后再次进行测试,然后成功,如下。

    哈哈,error木有啦,刷下foxmail,发现接收到报警邮件哦。

    至此,简单的zabbix监控之本地sendmail服务进行的邮件报警完成。

    该参考的截图很全,同时包含了使用外部邮箱进行发信的方法,由于本人觉得怎么简单怎么来,顾只测试了本方法。


  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84309-1-1.html 上篇帖子: zabbix windows客户端安装设置及服务器邮件通知设置 下篇帖子: CentOS6.x安装zabbix 监控
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表