码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix

时间:2016-06-13 11:55:36      阅读:502      评论:0      收藏:0      [点我收藏+]

标签:zabbix

Zabbix监控的应用

1.1 前言

1.1.1 我们的职责

1、保障企业的数据的安全可靠

2、为客户提供7*24小时服务

3、不断提升用户的体验

1.2 我们需要监控什么

路人甲:大神,我们需要监控什么?

我:你想监控什么!

1.3 我们到底要监控什么

1. 硬盘监控:适用于物理机,远程管理卡(IDRAC),IPMO(智能平台管理接口)ipmitoolMegaCli(查看Raid磁盘)

2.系统监控:cpu(lscpuuptimetopvmstat1mpstat1htop),内存(free -m),硬盘(df -hiotop),网络(iftopnetstatss

3.应用服务监控:nfsmysqlnginxapachephprsync

4.性能监控

5.日志监控:系统日志(安全日志secure message sudo 日志)、服务日志(错误日志error,访问日志)

6.安全监控

7.业务监控

举些监控命令的栗子:

top
>  向右移动一位排序
1
lscpu
vmstat 1
htop
vmstat 1
mpstat 1 
wget -O /etc/yum.repos.d/epel.repo                             

1.4 引入zabbinx

所有监控范畴,都可以整合到Zabbix

硬件监控:Zabbix IPMIInterface

系统监控:Zabbix AgentInterface

Java监控:Zabbix JMX Interface

网络设备监控:Zabbix SNMPInterface

应用服务监控:ZabbixAgent UserParameter

MySQL数据库监控:percona-monitoring-plulgins

URL监控:Zabbix Web监控

2.1 Zabbix简介

官网:http://www.zabbix.com/

zabbix是一个基于web界面的,提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题

zabbix主要由2部分构成zabbix serverzabbix agent,可选组件zabbix proxy

zabbix server可以通过SNMPzabbix agentfping,端口监视等方法对远程服务器或网络状态完成监视,数据收集功能。

支持Linux及类Unix平台,Windows平台只能安装客户端。

技术分享

3.1 系统环境

[root@zb01 /]# cat /etc/redhat-release

CentOS release 6.7 (Final)

[root@zb01 /]# uname -r

2.6.32-573.el6.x86_64

[root@zb01 /]# uname -m

x86_64

[root@zb01 /]# /etc/init.d/iptables stop

[root@zb01 /]# getenforce

Disabled

4.1安装LNMP环境

yum -y install pcre-devel openssl-develncurses-devel zlib-devel libxml2-devel libjpeg-devel freetype-devellibpng-devel gd-devel curl-devel libxslt-devel libmcrypt-devel mhashmhash-devel mcrypt

rpm -ivh --aid *.rpm

5.1 编译安装Zabbix

5.1.1 安装依赖

echo "192.168.14.200 mirrors.aliyun.com" >>/etc/hosts

yum -y install fping net-snmp-devel unixODBC-devel openssl-devel  OpenIPMI-devel java-devel

5.1.2 添加Zabbix用户

useradd zabbix -s /sbin/nologin

5.1.3 解压Zabbix,编译安装

mkdir -p /application/tools

cd /application/tools

rz

tar xf zabbix-3.0.3.tar.gz 

cd zabbix-3.0.3

 ./configure --prefix=/application/zabbix-3.0.3 --enable-server --enable-agent --enable-java --enable-ipv6 --with-mysql  --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl

make install

ln -s /application/zabbix-3.0.3 /application/zabbix

##################假如报这个错误:

configure:error: Not found mysqlclient library

这是由于没有指定mysql的路径导致的,yum安装或者编译安装就不会有这样的问题,主要是张导的/初始目录在/application/tools下,我们的在/home/oldboy/tools

####################################

./configure --prefix=/application/zabbix-3.0.3 --enable-server --enable-agent --enable-java --enable-ipv6 --with-mysql=/application/mysql-5.5.49/bin/mysql_config  --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl

#############################################

5.1.4 mysql 数据库操作

[root@zb01 /]# mysql -uroot -poldboy123

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 209

Server version: 5.5.49 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2016, Oracle and/or itsaffiliates. All rights reserved.

 

Oracle is a registered trademark of OracleCorporation and/or its

affiliates. Other names may be trademarks of theirrespective

owners.

 

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clearthe current input statement.

 

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all on zabbix.* to zabbix@‘127.0.0.1‘ identified by ‘zabbix‘;

mysql> flush privileges;

data.sql #数据,最后导入

images.sql   #图形,其次导入

schema.sql  #表结构,首先导入

/home/oldboy/tools/zabbix-3.0.3/database/mysql

mysql中操作

use zabbix
source /home/oldboy/tools/zabbix-3.0.3/database/mysql/schema.sql
source /home/oldboy/tools/zabbix-3.0.3/database/mysql/images.sql
source /home/oldboy/tools/zabbix-3.0.3/database/mysql/data.sql 

show tables from zabbix;

#########################################

use zabbix

source /application/tools/zabbix-3.0.3/database/mysql/schema.sql

source/application/tools/zabbix-3.0.3/database/mysql/images.sql

source/application/tools/zabbix-3.0.3/database/mysql/data.sql

show tables from zabbix;

###################################################

5.1.5 web代码

mkdir -p /application/nginx/html/zabbix
cp -a /home/oldboy/tools/zabbix-3.0.3/frontends/php/* /application/nginx/html/zabbix/
chown -R nginx /application/nginx/html/zabbix/

5.1.6 配置Zabbix

5.1.6.1 php配置

egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone" /application/php/lib/php.ini

sed -i ‘s#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai‘ /application/php/lib/php.ini

/etc/init.d/php-fpm restart

没有这个脚本就 

killall php

/application/php/sbin/php-fpm

5.1.6.2 nginx配置

执行命令前注意备份你的Nginx配置文件!!

cat >/application/nginx/conf/nginx.conf<<EOF
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        root   html;
        location / {
            root   html;
            index  index.php index.html index.htm;
                }
        location ~ .*\.(php|php5)?$
        {      
         fastcgi_pass  127.0.0.1:9000;
         fastcgi_index index.php;
         include fastcgi.conf;
         }
         access_log  logs/zabbix.log;
           }
    }
EOF

/etc/init.d/nginx reload

5.1.6.3 zabbix服务配置

sed -i -e ‘77a DBHost=127.0.0.1‘ -e ‘111a DBPassword=zabbix‘ /application/zabbix/etc/zabbix_server.conf

启动脚本

cp /home/oldboy/tools/zabbix-3.0.3/misc/init.d/fedora/core/zabbix_{server,agentd} /etc/init.d/

 

[root@oldboyedu ~]# ll -h /etc/init.d/zabbix_*
-rwxr-xr-x 1 root root 2.2K 5  20 19:29 /etc/init.d/zabbix_agentd
-rwxr-xr-x 1 root root 2.2K 5  20 19:29 /etc/init.d/zabbix_server

修改启动脚本

sed -i ‘s#BASEDIR=/usr/local#BASEDIR=/application/zabbix#‘ /etc/init.d/zabbix_{server,agentd}

5.1.6.4 启动脚本

[root@oldboyedu ~]# ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/
[root@oldboyedu ~]# /etc/init.d/zabbix_server start
Starting zabbix_server:                                    [确定]

 

6.1 windows中打开网页

http://10.0.0.25/zabbix/setup.php

会发现没有mysqlgettext模块

cd /home/oldboy/tools/php-5.5.32/ext/gettext

/application/php/bin/phpize

./configure--with-php-config=/application/php/bin/php-config

make && make install

echo " extension = gettext.so">>/application/php/lib/php.ini

/application/php/bin/php -m|grep gettext

/application/php/bin/php -m|grep mysqli

cd /home/oldboy/tools/php-5.5.32/ext/mysqli

/application/php/bin/phpize

./configure--with-php-config=/application/php/bin/php-config

make && make install

echo " extension = mysqli.so">>/application/php/lib/php.ini

killall php-fpm

/application/php/sbin/php-fpm

操作完毕后回到网页,刷新

技术分享

技术分享

第一项多出了MySQL,第二项也OK了。搞定,继续下一步

技术分享

技术分享

技术分享

技术分享

 

 

技术分享

排错方法看服务是否运行和查看日志:

/etc/init.d/zabbix_server status
tailf /tmp/zabbix_server.log 

假如手贱不跟老师后面设置密码,就可能会报这个错误

36269:20160603:171259.995 cannot set MySQL character set to "utf8"
 36269:20160603:171259.995 database is down: reconnecting in 10 seconds
 36269:20160603:171309.996 [Z3001] connection to database ‘zabbix‘ failed: [1045] Access denied for user ‘zabbix‘@‘localhost‘ (using password: YES)

可能是sed替换的时候没有替换对

7.1 监控页面切换为中文

技术分享

技术分享

8.1 Zabbix Agent客户端安装和使用

本机编译安装的时候已经开启了zabbix客户端功能。如果是其他新添加主机(CentOS67系统)不需要编译安装那么麻烦,直接使用官网的rpm就可以了,或者自己编译一个客户端然后定制rpm包即可。

8.1.1 服务端的客户端启动

##vim /application/zabbix/etc/zabbix_agentd.conf

/etc/init.d/zabbix_agentd start

选择配置主机然后找到zabbix server,点击停用的 状态,使其变为启用的。静待片刻后面可用性第一个ZBX会亮起绿灯,假如不亮点下过滤或者刷新即可.

技术分享

技术分享

 

8.1.2 新添加机器安装方法

CentOS6rpm -ivhhttp://repo.zabbix.com/zabbix/3.0/rhe1/6/x86_64/zabbix-release-3.0-1.e17.noarch.rpm

CentOS7: rpm -ivhhttp://repo.zabbix.com/zabbix/3.0/rhe1/7/x86_64/zabbix-release-3.0-1.e17.noarch.rpm

如果上述站点打不开,可以使用http://mirrors.aliyun.com/zabbix/zabbix/

wget http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.3-1.el6.x86_64.rpm

yum localinstallzabbix-agent-3.0.3-1.e16.x86_64.rpm

rpm -ivh zabbix-agent-3.0.3-1.el6.x86_64.rpm

vim/etc/zabbix/zabbix_agentd.conf

Server=服务端的ip          (95)

/etc/init.d/zabbix-agentstart

技术分享

技术分享

技术分享

添加后等待一段时间后可看到

技术分享

9.1 查看监控数据

技术分享

10.1解决中文乱码的问题

技术分享

服务端操作

wget -O /etc/yum.repos.d/epel.repo 技术分享http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /application/nginx/html/zabbix/fonts/DejaVuSans.ttf

技术分享

11.1 简单自定义监控

web01客户端执行

sed -i ‘293a UserParameter=login-user,who|wc -l‘/etc/zabbix/zabbix_agentd.conf

/etc/init.d/zabbix-agent restart

服务端操作

/application/zabbix/bin/zabbix_get --help

/application/zabbix/bin/zabbix_get  -s 10.0.0.8 -p 10050 -k"login-user"

此处的IP地址填写的是服务端的IP地址

10.0.0.8   客户端                                                                            

login-user       

-p             端口

-k            

11.1.1 创建应用集

技术分享

技术分享

技术分享

11.1.2 创建监控项

技术分享

技术分享

技术分享

11.1.3 创建触发器

技术分享

技术分享

技术分享

技术分享

技术分享

 

技术分享

11.1.4 创建图形

技术分享

技术分享

技术分享

技术分享

技术分享

11.1.5 查看效果

选择监测中---图形---群组Web Server---主机LNMP----图形:登录用户数量趋势

技术分享

 

12.1 监控报警

技术分享

开启多个用户登录。。。。

技术分享

12.2 邮件报警

1Email zabbix2.x不支持认证邮箱,只能本机开启sendmailPostfix发送邮件;在zabbix3.x开始支持认证邮箱

2jabber 一个开源即时通信软件,jabber有第三方插件,能让jbber用户和MSNYahooMessagerIQCIM用户互相通讯。因为Google遵从jabber协议,并且Google已经将Gtalk的服务器开放给了其他的jabber服务。所以PSIGiamJabber客户端软件支持GTalk用户登录。国内基本没人使用

3SMS 短信猫

4Ez Texting 给用户手机发短信,貌似只支持美国和加拿大

5Scripts 自定义脚本,把信息传递给脚本,我们在脚本里使用mail、飞信发短信、调用短信接口发送短信等等

但是在zabbix3.0中使用自带的email功能还是坑!因此我们还是使用老方法-写脚本

12.2.1 配置mail.rc

[root@zb01 mysqli]# tail -2 /etc/mail.rc

#yxy mail

set from= xxxxxxxxx@126.com smtp=smtp.126.com smtp-auth-user= xxxxxxxxxsmtp-auth-password=xxxxxxxxx smtp-auth=login

12.2.2 邮件报警脚本

程序会传给脚本3个参数,收件人,邮件标题,邮件主题,系统要有dos2unix、mail命令。

没有就yum install -y dos2unix mail

cd /application/zabbix/share/zabbix/alertscripts/

[root@oldboyedu alertscripts]# vim email.sh
#!/bin/bash
email_File=/tmp/email.log
function main(){
        echo "$3" >$email_File
        /usr/bin/dos2unix $email_File
        /bin/mail -s "$2" "$1" <$email_File
main "$1" "$2" "$3"

为了避免测试时候的垃圾邮件,可以先创建一个模拟脚本用来测试

echo ‘echo "$1" "$2" "$3" >/tmp/email.log‘ >email.sh

chmod +x email.sh

技术分享

添加以下3个参数,分别对应sendEmail.sh脚本需要的3个参数:收件人地址、主题、详细内容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。
那是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。
在2.x版本不存在这个问题,默认会传3个参数。

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

测试:

tail -F /tmp/email.log

如果不成功需要,或者检查其他错误

默认/tmp/email.log不存在,但是使用tail -F 是可以获取的

chown zabbix.zabbix /tmp/email.log

[root@zb01 tmp]# tail -F /tmp/email.log

tail: cannot open `/tmp/email.log‘ for reading: Nosuch file or directory

tail: `/tmp/email.log‘ has become accessible

385977076@qq.com PROBLEM: μó§31y3 Trigger:μó§31y3

Trigger status: PROBLEM

Trigger severity: Average

Trigger URL:

 

Item values:

 

1. μó§êyá (LNMP:login-user): 5

2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*

3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*

 

Original event ID: 104

tail: /tmp/email.log: file truncated

Original event ID: 104

开启多个用户登录:

会检测到报警

13.1 监控可视化

技术分享

14.1 zabbix共享模板

技术分享


zabbix

标签:zabbix

原文地址:http://11266103.blog.51cto.com/11256103/1788516

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!