Zabbix 监控

一、Zabbix介绍

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

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

zabbix2部分构成,zabbix server与可选组件zabbix agent

提供api功能,二次开发方便,你可以选用zabbix来进行二次深度开发,结合cmdb资产管理系统,业务管理系统。  

zabbix server可以通过SNMPzabbix agentping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。  

zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。  

zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。  

另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。  

 

二、zabbix的主要特点:  

- 安装与配置简单

- 支持多语言(包括中文)  

- 免费开源  

- 自动发现服务器与网络设备  

- 分布式监视以及WEB集中管理功能  

- 可以无agent监视  

- 用户安全认证和柔软的授权方式  

- 通过WEB界面设置或查看监视结果  

- email等通知功能

三、Zabbix主要功能: 

- CPU负荷  

- 内存使用  

- 磁盘使用  

- 网络状况  

- 端口监视  

- 日志监视

-监控nginxtomcat等应用

 

wKioL1hskhTAHJLLAAEn3NEfosk543.png-wh_50 

wKioL1hsklLxD9Q7AAJPGaxQLGs191.png-wh_50

wKiom1hsklWwsNccAAV5x5ME41g681.png-wh_50

wKioL1hsklbBgvcaAAL8dp49J2w393.png-wh_50

wKiom1hsklnyY5uxAATpomE9YQw027.png-wh_50

wKioL1hskluSWtsfAAKVM4L7qzI308.png-wh_50

wKiom1hskl3zbJdgAANB6rmuzFI765.png-wh_50

wKiom1hsknvTRTaqAARHsXZgJDM020.png-wh_50

四、Zabbix部署(监控端和被监控端)

-首先要部署好前提环境LNMP/LAMP

-创建组和用户

groupadd zabbix

useradd -g zabbix -m zabbix -s /sbin/nologin

-解压tar包并导入相关数据

tar xzf zabbix-3.2.0.tar.gz

cd zabbix-3.2.0/database/mysql/

mysql -u root -p

create database zabbix character set utf8;

grant all privileges on zabbix.* to zabbix@'10.99.1.122' identified by '123456';

use zabbix;

source schema.sql;  --表结构

source p_w_picpaths.sql;  --图片库

source data.sql;    --初始脚本

-编译安装zabbix

cd zabbix-3.2.0

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-mysql=/usr/local/mysql/bin/mysql_config

make && make install

ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

ln -s /usr/local/zabbix/bin/* /usr/local/bin/

vi /etc/services #编辑,在最后添加以下代码

# Zabbix

zabbix-agent 10050/tcp # Zabbix Agent

zabbix-agent 10050/udp # Zabbix Agent

zabbix-trapper 10051/tcp # Zabbix Trapper

zabbix-trapper 10051/udp # Zabbix Trapper

-修改zabbix配置文件

cd /usr/local/zabbix/etc

vi /usr/local/zabbix/etc/zabbix_server.conf

DBName=zabbix #数据库名称

DBUser=zabbix #数据库用户名

DBPassword=123456 #数据库密码

ListenIP=localhost #数据库ip地址

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #zabbix运行脚本存放目录

 

vi /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

UnsafeUserParameters=1 #启用自定义key

 

cp /root/software/zabbix-3.2.0/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server

cp /root/software/zabbix-3.2.0/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd

chmod +x /etc/rc.d/init.d/zabbix_server

chmod +x /etc/rc.d/init.d/zabbix_agentd

 

-修改zabbix开机启动脚本中的zabbix安装目录

vi /etc/rc.d/init.d/zabbix_server #编辑服务端配置文件

BASEDIR=/usr/local/zabbix/ #zabbix安装目录

 

vi /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件

BASEDIR=/usr/local/zabbix/ #zabbix安装目录

 

-配置web站点

cd /root/software/zabbix-3.2.0/frontends

cp -rf php /data/www/wwwroot/zabbix

 

-修改php配置文件参数

1vi /etc/php.ini #编辑修改

post_max_size =16M

max_execution_time =300

max_input_time =300

 

2vi /usr/local/php/etc/php-fpm.conf #编辑修改

request_terminate_timeout = 300

 

service php-fpm reload     #重启php-fpm

/usr/local/nginx/sbin/nginx  #启动nginx

service zabbix_server start   #启动zabbix服务端

service zabbix_agentd start  #启动zabbix监控端

-web访问http://ip/zabbix进行相关配置

五、被监控端

-安装依赖环境:

yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI

-安装包:

zabbix-3.2.0.tar.gz

tar -xzf zabbix-3.2.0.tar.gz

cd zabbix-3.2.0

-安装:

./configure --prefix=/usr/local/zabbix --enable-agent

make && make install

-编辑配置文件zabbix_agentd.conf

cp /usr/local/zabbix/etc/zabbix_agentd.conf /usr/local/zabbix/etc/zabbix_ zabbix_agentd.conf.back

vi/usr/local/zabbix/etc/zabbix_agentd.conf

修改项:

LogFile=/tmp/zabbix_agentd.log

Server=192.168.0.26

UnsafeUserParameters=1

DebugLevel=3

创建日志文件:

# touch /tmp/zabbix_agentd.log

# chmod 777 /tmp/zabbix_*

配置开机启动脚本:

# cd zabbix-3.2.0

# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd

启动zabbix_agentd

/etc/init.d/zabbix_agentd start

六、安装之后的界面和增加监控主机相关配置

wKioL1hsktfzIhm9AADvbz-bvMQ535.png-wh_50 

设置成中文,如果后面出现乱码需上传字体

wKiom1hskuiRa8aZAAB0NUW1ODE458.png-wh_50 

添加一台监控机器

wKioL1hskwiBfr2JAADQbWp4y4w555.png-wh_50

wKioL1hskwix_0kAAAB4QWfe6EQ401.png-wh_50

进入添加的主机

wKiom1hskznQqaF6AADN2RP3NsQ694.png-wh_50 

添加模版(里面有自带的模版,后面可以添加需要监控项目自定义模版)

wKioL1hsk0ziui6vAABNfYB8U18264.png-wh_50 

io是我自定义的模版,后面需要添加相关配置

wKiom1hsk12DcrDwAABKo3u39UQ684.png-wh_50 

-去到被监控机器添加监控io的配置

vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

 

cd /usr/local/zabbix/etc/zabbix_agentd.conf.d

vim userparameter_io.conf

UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}'  

UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'  

UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'  

UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'  

UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}'   

UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'  

UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'  

UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'

 

wKiom1hsk3SyrciWAAE2SKPcgOI224.png-wh_50 

这样就出图了

增加监控一个memory

wKioL1hsk5ChPmkRAAA_lrGaIXQ811.png-wh_50

wKiom1hsk5HSiYx2AADZIYlzdxA063.png-wh_50

下图监控本机的数据包括nginxio(这两个监控项目是自己定义模块)

wKioL1hsk7XiEfHeAAENF8t4yuo925.png-wh_50 

下图监控10.99.1.105的数据包括io(是自己定义模块)

wKioL1hsk8nj7B8xAAEeCxO5XqU365.png-wh_50 

下面图是添加自定义模块io

wKioL1hslBvC_u3mAACJ0aTKc5E585.png-wh_50 

然后点击创建监控项目进行添加(添加的名称与刚才上面配置文件的要对应)

wKioL1hslDDiFcjcAAEK3K8tCO8931.png-wh_50

wKiom1hslDGCXc7OAACQIksjKRc644.png-wh_50

七、邮件配置

wget http://nchc.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.4.17.tar.bz2

tar xf msmtp-1.4.17.tar.bz2

cd msmtp-1.4.17

./configure --prefix=/usr/local/msmtp

mkdir /usr/local/msmtp/etc

cd /usr/local/msmtp/etc

vim msmtprc

测试一下:/usr/local/msmtp/bin/msmtp xxx@qq.com,输入内容后按ctrl+D发出

yum install mutt*

Vim /etc/Muttrc.local

set sendmail="/usr/local/msmtp/bin/msmtp"

set use_from=yes

set realname="xxx@139.com"

set editor="vim"

 

echo "邮件报警测试" | mutt -s "测试" xxx@qq.com #收件人地址

 

vim /usr/local/zabbix/alertscripts/baojing,并写入如下内容:

#!/bin/bash

echo "$3" | mutt -s "$2" $1 # $3表示邮件内容、$2表示邮件标题、$1表示收件人