zabbix随堂笔记

Chapter1:Zabbix监控

官方网站:http://www.zabbix.com/    The Enterprise-class Monitoring Solution for Everyone

企业级监控解决方案

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

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

Zabbix主要特点

安装与配置简单,学习成本低

支持多语言(包括中文)

免费开源

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

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

可以无agent监视

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

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

email等通知功能

Zabbix主要功能

CPU负荷

内存使用

磁盘使用

网络状况

端口监视

日志监视

插件开发自定义

Zabbix组成

Zabbix Server和Zabbix agent

Zabbix Server可以通过SNMP,Zabbix agent,Ping,端口监视等你方法提供对远程服务器/网络状态的监视,数据收集功能,可以在运行Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OX X,Windows多平台。

Zabbix Agent安装在需要被监控的目标服务器上,主要完成对硬件信息与操作系统有关的内存,CPU等你信息收集。

Zabbix Server可以单独监视远程服务器的服务状态,同时也可以与Zabbix Agent结合。可以轮询Zabbix Agent主动接收监视数据(trapping传递 方式),同时还可以被动接收Zabbix Agent发送的数据。

Zabbix运行机制

 

Zabbix支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理Zabbix,通过C/S模式采集数据,通过B/S模式在Web端展示和配置!Agent监控端口10050

服务端安装Zabbix Server和Zabbix Agent两个服务,客户端只安装Zabbix Agent一个服务,监控原理就是Zabbix Agent服务将从系统中获取的相关数据传送给Zabbix Server,然后Zabbix Server服务奖数据分析之后以PHP页面展示出来!

整个环境所需要的软件包

php-5.6.13 libmcrypt-2.5.8

mysql-5.6.26

nginx-1.8.0              

zabbix-2.4.6

我们需要先构建LNMP的环境,因为Zabbix通过PHP页面展示

搭建LNMP的环境

首先搭建LNMP的环境,如果有这个环境可以忽略

安装Nginx

[root@XueGod63 ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel  ncurses-devel ----mysql安装需要 //zlib:给Nginx提供gzip模块,需要的支持;OPenssl提供SSL功能;PCRE,地址重写

安装pcre使用tar -zxvf pcre-8.36.tar.gz进行解压。

3. 运行 chmod -R 777 /pcre-8.36 对当前文件夹授予全部读写权限。

4. 切换到/pcre-8.36目录下,运行 ./configure 进行pcre初始化配置,会在控制台打印出一大堆的输出信息。

[root@XueGod63 ~]# tar xvf nginx-1.8.0.tar.gz -C /usr/local/src/ ; cd /usr/local/src/nginx-1.8.0

[root@XueGod63 nginx-1.8.0]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module

[root@XueGod63 nginx-1.8.0]# make && make install ; cd

[root@XueGod63 ~]# useradd -u 8001 -M -s /sbin/nologin  nginx

[root@XueGod63 ~]# vim /usr/local/nginx/conf/nginx.conf

#user  nobody;

user  nginx nginx;          #此行添加

……                                  #下面这段内容,需要去掉注释,然后修改script_filename

location ~ \.php$ {

    root           html;

    fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;

    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;

    include        fastcgi_params;

}

[root@XueGod63 ~]# /usr/local/nginx/sbin/nginx

[root@XueGod63 ~]# echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

 

安装MySQL

[root@XueGod63 ~]# yum remove -y mysql mysql-devel mysql-server

[root@XueGod63 ~]# tar xvf mysql-5.6.26.tar.gz -C /usr/local/src/ ; cd /usr/local/src/mysql-5.6.26

[root@XueGod63 mysql-5.6.26]# useradd -u 8003 -M -s /sbin/nologin mysql

[root@XueGod63 mysql-5.6.26]# yum install -y cmake

[root@XueGod63 mysql-5.6.26]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data  -DMYSQL_USER=mysql

[root@XueGod63 mysql-5.6.26]# make -j 4 ; make install

[root@XueGod63 mysql-5.6.26]# chown  -R mysql:mysql /usr/local/mysql/

[root@XueGod63 mysql-5.6.26]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

[root@XueGod63 mysql-5.6.26]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/

[root@XueGod63 mysql-5.6.26]# cd ; vim /etc/init.d/mysql.server //修改下面两项

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

[root@XueGod63 ~]# chkconfig mysql.server on

[root@XueGod63 ~]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

[root@XueGod63 ~]# ln -s /usr/local/mysql/bin/* /usr/bin/

[root@XueGod63 ~]# service mysql.server restart

[root@XueGod63 ~]# /usr/local/mysql/bin/mysql_secure_installation //顺便密码设置123456

[root@XueGod63 ~]# mysql -uroot -p123456 //测试OK

安装PHP

[root@XueGod63 ~]# tar xvf libmcrypt-2.5.8.tar.bz2 -C /usr/local/src/

[root@XueGod63 ~]# cd /usr/local/src/libmcrypt-2.5.8/

[root@XueGod63 libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt

[root@XueGod63 libmcrypt-2.5.8]# make ; make install ; cd

[root@XueGod63 ~]# tar xvf php-5.6.13.tar.bz2 -C /usr/local/src/

[root@XueGod63 ~]# cd /usr/local/src/php-5.6.13/

[root@XueGod63 php-5.6.13]# yum install -y php-pear libjpeg-devel libxml2 libxml2-devel openssl openssl-devel curl-devel libpng libpng-devel freetype-devel

 

ln -s /usr/lib64/libssl.so /usr/lib/

[root@XueGod63 php-5.6.13]# echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf

[root@XueGod63 php-5.6.13]# echo "/usr/local/libmcrypt/lib" >> /etc/ld.so.conf

[root@XueGod63 php-5.6.13]# ldconfig

[root@XueGod63 php-5.6.13]# echo "ldconfig" >> /etc/rc.local

 [root@XueGod63 php-5.6.13]# ./configure --prefix=/usr/local/php -with-config-file-path=/usr/local/php  --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath  --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring  --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets  --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/libmcrypt --with-gettext

#若不加--with-gettext,安装zabbix会有一个php gettext no fail的错误

[root@XueGod63 php-5.6.13]# make ; make install

[root@XueGod63 php-5.6.13]# cp /usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini

[root@XueGod63 php-5.6.13]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

[root@XueGod63 php-5.6.13]# cp /usr/local/src/php-5.6.13/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@XueGod63 php-5.6.13]# chmod +x /etc/init.d/php-fpm ; cd

[root@XueGod63 ~]# chkconfig --add php-fpm

[root@XueGod63 ~]# chkconfig php-fpm on

[root@XueGod63 ~]# echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php

在这里要特别注意nginx.conf配置文件:修改fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    $document_root 代表当前请求在root指令中指定的值。

[root@XueGod63 ~]# service php-fpm start

 

安装Zabbix

Zabbix需要数据库的支持,而却Zabbix已经自带了数据库结构,images数据库和表数据等相关内容

创建Zabbix使用数据库

[root@XueGod63 ~]# mysql -uroot -p

mysql> create database zabbix;

mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix'; //zabbix用户授权

mysql> exit

[root@XueGod63 ~]# tar xvf zabbix-2.4.6.tar.gz -C /usr/local/src/

[root@XueGod63 ~]# cd /usr/local/src/zabbix-2.4.6/

导入数据库,注意顺序,否则会报错

[root@XueGod63 zabbix-2.4.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql

[root@XueGod63 zabbix-2.4.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql

[root@XueGod63 zabbix-2.4.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

编译安装zabbix

[root@XueGod63 zabbix-2.4.6]# yum install -y net-snmp-devel //net-snmp-config依赖

[root@XueGod63 zabbix-2.4.6]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl

--prefix=       #指定路径

--enable-server     #Server支持

--enable-agent      #支持Zabbix客户端

--with-mysql            #指定MySql库可以选择制定路径mysql_config,mysql_config是命令,用于编译mysql客户端程序

--with-net-snmp #支持snmp协议,需要安装net-snmp-devel包

--with-libcurl  #支持CURL功能,libcurl主要功能就是用不同的协议连接不同的服务器,libcurl当前支持的协议有http,https,ftp,gopher,telent,dict,file,和ldap协议

其他参数:

--enable-proxy  指的是支持zabbix代理服务器,zabbix proxy是一个监控代理服务器,它收集到监控数据,选存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送的zabbix server。监控代理服务需要一个独立的数据库。

zabbix proxy的好处:进程监控,当监控文遏制通讯不方便的时候,当通讯上千台设备的时候,使用zabbix proxy可以简化维护分布式监控,降低zabbix server的负负载

 

看到如下信息,预编译就没有什么问题

……

***********************************************************

*            Now run 'make install'                       *

*                                                         *

*            Thank you for using Zabbix!                  *

*              <http://www.zabbix.com>                    *

***********************************************************

[root@XueGod63 zabbix-2.4.6]# make install ; cd //上面的提示,没有make步骤,直接install

[root@XueGod63 ~]# ls /usr/local/zabbix/ //编译成功,产生如下目录

bin  etc  lib  sbin  share

配置zabbix Server

[root@XueGod63 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

DBHost=localhost            #默认注释掉了,直接取消注释即可

DBName=zabbix               #数据库用户,我们授权的用户也是zabbix

DBUser=zabbix               #默认是root,我们授权的用户是zabbix

DBPassword=zabbix       #密码我们授权的也是zabbix

监控Zabbix Server本身

[root@XueGod63 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

Server=127.0.0.1                    #默认监控服务器自己,这三行不用改

ServerActive=127.0.0.1

Hostname=Zabbix server

UnsafeUserParameters=1  #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本

启动服务

[root@XueGod63 ~]# useradd -u 8005 -M -s /sbin/nologin zabbix //如果zabbix用户不存在,将以root运行,新建之后,如果zabbix存在,那么久直接可以用zabbix运行

[root@XueGod63 ~]# /usr/local/zabbix/sbin/zabbix_server //直接运行

[root@XueGod63 ~]# echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local //开机启动

[root@XueGod63 ~]# netstat -antup | grep zabbix //zabbix server运行端口10051

tcp      0      0 0.0.0.0:10051        0.0.0.0:*                   LISTEN      37568/zabbix_server

如果这里没有端口显示,则需要注册端口

这里要留意看zabbix_server.log  日志信息

[root@XueGod63 ~]# vim /etc/services //末尾添加下面这几行

zabbix-agent    10050/tcp               # Zabbix Agent

zabbix-agent    10050/udp               # Zabbix Agent

zabbix-trapper  10051/tcp               # Zabbix Trapper

zabbix-trapper  10051/udp               # Zabbix Trapper

编辑php页面控制文件

默认配置文件没有写入到我们的Nagix的配置文件中,也就是不能加载到我们的zabbix页面目录

[root@XueGod63 ~]# cp -r /usr/local/src/zabbix-2.4.6/frontends/php/* /usr/local/nginx/html/

[root@XueGod63 ~]# vim /usr/local/nginx/conf/nginx.conf

        location / {

            root   html;

            index  index.php index.html index.htm;      #找到此行内容,添加index.php

        }

重启服务

[root@XueGod63 ~]# /usr/local/nginx/sbin/nginx -s reload ; /etc/init.d/php-fpm restart

打开网页安装zabbix

浏览器输入:http://192.168.1.63  如图,下一步Next

 

开始检查环境,如图,发现很多环境不符合条件

 

编辑php.ini文件,修改环境

[root@XueGod63 ~]# vim /usr/local/php/php.ini

post_max_size = 16M                 #修改

max_execution_time = 300            #修改

max_input_time = 300                    #修改

date.timezone = Asia/Shanghai           #此行有注释,去注释并修改

always_populate_raw_post_data = -1      #此行取消注释即可

[root@XueGod63 ~]# /etc/init.d/php-fpm restart

刷新页面

 

下一步:

 

下面啊 一部不用管,直接下一步

 

下一步:

 

写入失败,直接down这个配置文件,然后上传上去

[root@XueGod63 ~]# mv zabbix.conf.php /usr/local/nginx/html/conf/

然后在点击Retry

 

点击Finish,完成安装!

登陆Zabbix并配置

登陆之后我们修改语言

默认用户名和密码分别问admin,zabbix

 

点击右上角,,Profile,然后选择语言

 

然后Update即可,页面变为中文

如果所示,可到我们当前监控的本机(默认没有启动,点击后面红色的停用,则启用)

 

Zabbix启动服务总结

Nginx服务启动

Php-fpm服务启动

Mysql服务器启动

Zabbix_server服务启动

部署Agent监控客户端

我们用XueGod64作为客户端,使用Zabbix Server监控XueGod64

安装Agent

[root@XueGod64 ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI //解决依赖

[root@XueGod64 ~]# useradd -u 8001 -M -s /sbin/nologin  zabbix

[root@XueGod64 ~]# tar xvf zabbix-2.4.6.tar.gz -C /usr/local/src/

[root@XueGod64 ~]# cd /usr/local/src/zabbix-2.4.6/

[root@XueGod64 zabbix-2.4.6]# ./configure --prefix=/usr/local/zabbix --enable-agent

//被监控端只需要部署agnet

[root@XueGod64 zabbix-2.4.6]# make install ; cd

[root@XueGod64 ~]# vim /etc/services //注册端口

zabbix-agent    10050/tcp               # Zabbix Agent

zabbix-agent    10050/udp               # Zabbix Agent

zabbix-trapper  10051/tcp               # Zabbix Trapper

zabbix-trapper  10051/udp               # Zabbix Trapper

配置Agnet开机启动

[root@XueGod64 ~]# grep "chkconfig" /usr/local/src/zabbix-2.4.6/ -R -color//查看有chkconfig的文件

/usr/local/src/zabbix-2.4.6/misc/init.d/fedora/core5/zabbix_agentd

/usr/local/src/zabbix-2.4.6/misc/init.d/fedora/core5/zabbix_server

/usr/local/src/zabbix-2.4.6/misc/init.d/fedora/core/zabbix_agentd

/usr/local/src/zabbix-2.4.6/misc/init.d/fedora/core/zabbix_server

[root@XueGod64 ~]# cp /usr/local/src/zabbix-2.4.6/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d

[root@XueGod64 ~]# vim /etc/init.d/zabbix_agentd //上一步生成了启动脚本,然后现在编辑脚本

ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"       #修改此行

[root@XueGod64 ~]# chkconfig --add zabbix_agentd

[root@XueGod64 ~]# chkconfig zabbix_agentd on

拓展:core和core5里面的文件都可以实现zabbix代理启动,core里面是测试版本,core5是稳定版本

配置Agentd的配置文件

[root@XueGod64 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf //客户端操作

Server=192.168.1.63#zabbix server地址,可以多个,用,隔开

ServerActive=192.168.1.63         #主动检查的意思,主动检查手机的数据的数据发送给Zabbix Server

Hostname=XueGod64

UnsafeUserParameters=1

启动服务

[root@XueGod64 ~]# /etc/init.d/zabbix_agentd restart

[root@XueGod64 ~]# netstat -antup | grep zabbix

tcp        0      0 0.0.0.0:10050       0.0.0.0:*                   LISTEN      9683/zabbix_agentd

Server端测试通讯

[root@XueGod63 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.1.64 -p10050 -k system.uname

//可以获取对方系统版本则证明没有问题

服务端配置管理脚本

[root@XueGod63 ~]# cp /usr/local/src/zabbix-2.4.6/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

[root@XueGod63 ~]# vim /etc/init.d/zabbix_agentd

        BASEDIR=/usr/local/zabbix       #修改此行内容为zabbix的安装位置

[root@XueGod63 ~]# chkconfig --add zabbix_agentd

[root@XueGod63 ~]# chkconfig zabbix_agentd on

[root@XueGod63 ~]# /etc/init.d/zabbix_agentd restart //可以监控自己,也要启动服务

[root@XueGod63 ~]# netstat -antup | grep zabbix //两者之间监控端口不一样

tcp        0      0 0.0.0.0:10050      0.0.0.0:*                   LISTEN      51645/zabbix_agentd

tcp        0      0 0.0.0.0:10051      0.0.0.0:*                   LISTEN      10786/zabbix_server

监控自己使用10050端口,监控对方使用的是10051端口

添加Host主机

进入添加主机的页面

注意:Hostname和我们在Agentd里面填写的相同,显示名可以不一样

 

添加模板

选择Template OS Linux,点击进去

在主机模板位置,后面选择Linux Server是,然后啊XueGod64移动到主机/模板中

 

然后查看我们能获取了那些内容

发现没有办法看到硬盘,等想干信息,因为默认系统自动发现配置是1小时每次,我们可以改为其他时间:

点击探索规则,编辑规则

改为10s探索一次即可

 

然后在查看我们能不能看到硬盘相关信息

设置Triger触发器值

 

查看硬盘警高值,默认是20%

 

修改触发值

选择Templates OS Linux,选择探索规则

然后选择触发器类型,下面有一个Free Disk Space is less than 20% on volume值,点击这个就可以修改值了,点击修改为15%

 

返回查看

修改内存警高值

组态-模板- Template OS Linux-触发器,默认是20M,我们修改为100M

 

修改保存之后

测试:在XueGod64上读取文件占用空间

[root@XueGod64 ~]# dd if=/dev/zero of=/root/a.txt bs=1M count=10240 //根据需求读取

 

自定义绘图颜色

组态-模板- Template OS Linux

 

最终图形颜色

 

总结zabbix的文件

zabbix_agent.conf是用超级服务(xinetd)的方式来启动的,被动检查,只有Server说检查的时候才建材

zabbix_agentd.conf是以独立进程的方式来启动的,一般使用这个来做配置,自动检查,自动提交

zabbix_server.conf Server启动配置文件,只有一个

zabbix_get 是Zabbix 中的一个程序,用于Zabbix-Server 到Zabbix-Agent 的数据获取,通常可以用来检测验证Agent 的配置是否正确。它的使用方法如下

zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>]  -k <key> 

-h:远程Zabbix-Agent 的IP 地址或者是主机名。

-p:远程Zabbix-Agent 的端口。

-I:本机出去的IP 地址,用于一台机器中有多个网卡的情况。

-k:获取远程Zabbix-Agent 数据所使用的Key。

[expmple@~]# zabbix_get -s 192.168.1.64 -k system.uname

zabbix_sender get相反,用来发送Zabbix服务器处理性能数据。该工具通常用于长时间运行的用户脚本,用于定期发送可用性和性能数据。使用方法如下

zabbix_sender [-Vhv] {[-zpsI] -ko | [-zpI] -T -i <file> -r} [-c <file>]

参数说明:

  -c --config <file>           配置文件绝对路径    

  -z --zabbix-server <server>     zabbix server的IP地址    

  -p --port <server port>       zabbix server端口.默认10051    

  -s --host <hostname>      主机名,zabbix里面配置的主机名(不是服务器的hostname),不能使用ip地址    

  -I --source-address <IP address> IP    

  -k --key <key>             监控项的key    

  -o --value <key value>        key值    

  -i --input-file <input file>   从文件里面读取hostname、key、value 一行为一条数据,使用空格作为分隔符,如果主机名带空格,那么请使用双引号包起来    

  -T --with-timestamps         一行一条数据,空格作为分隔符: <hostname> <key> <timestamp> <value>,配合 --input-file option,timestamp为unix时间戳    

  -r --real-time            将数据实时提交给服务器    

  -v --verbose              详细模式, -vv 更详细

zabbix_agent   客户端依赖超级服务的启动脚本

zabbix_agentd  客户端独立服务启动脚本

zabbix_server 启动脚本

关于页面介绍:http://waringid.blog.51cto.com/65148/945352/

Key值:自定义值,Zabbix自带了一部分key值,下面是一些常用的

zabbix的内置了很多key,如:

1、监控进程

/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k “net.tcp.service[http]

2、监控端口

/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k “net.tcp.port[,80]” 结果:1存在,0不存在;

3、进程数量

/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k “proc.num[]

/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k “proc.num[httpd]

4、执行命令

/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k “system.run[curl -s  “http://127.0.0.1/php-fpm-uuzu-status”  | grep ‘idle processes’ | awk ‘{print $3;}]

/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k “system.run[ps auxw | grep ‘httpd’ | grep -v ‘grep’ -c]

5、其他

vm.memory.size[available]

 vfs.file.cksum[/etc/passwd]

 system.cpu.switches

 system.cpu.num

 system.cpu.util[,user]

 system.cpu.util[,nice]

 system.cpu.util[,system]

 system.cpu.util[,iowait]

 system.cpu.util[,idle]

 system.cpu.util[,interrupt]

 system.cpu.util[,steal]

 system.cpu.util[,softirq]

 system.swap.size[,free]

 system.swap.size[,pfree]

 system.boottime

 system.localtime

 system.hostname

 system.cpu.intr

 kernel.maxfiles

 kernel.maxproc

 system.users.num

 proc.num[]

 proc.num[,,run]

 system.cpu.load[percpu,avg1]

 system.cpu.load[percpu,avg5]

 system.cpu.load[percpu,avg15]

 system.uname

 system.uptime

 vm.memory.size[total]

 system.swap.size[,total]

 net.tcp.service[ftp,,155]

 net.tcp.service[http]

 net.tcp.service.perf[http,,8080]

 net.tcp.service[service,, ]

怎么自定义一些key

要先启用自定义key,需要在客户端的配置文件zabbix_agentd.conf中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如:

UnsafeUserParameters=0改为 UnsafeUserParameters=1并去掉前面的注释符

UserParameter=改为UserParameter=aaa.bbb[*], /usr/local/script/monitor.sh $1 $2 …

 

说明:  aaa.bbb[*] —zabbix服务器添加监控信息时需要用到的key值,

 格式:aaa.bbb[*](例:system.file.size[*])

 /usr/local/script/monitor.sh —-监控脚本绝对路径

 为了便于灵活监控,有时脚本需要传入参数,此参数可从zabbix服务器端传入,所有参数按顺序分别从$1-$9表示

 注:   (1)若无需传入参数,则$1-$9可省略

    (2)该自定义脚本可由zabbix服务器控制收集数据的频率(如:每30s运行一次),无需再添加计划任务

        (3)以上参数请根据实际情况填写,并注意去除参数前注释符(#)

        (4)注意在key值和后面的脚本之间有个逗号隔开

配置Zabbix监控Apache服务

http://www.zabbix.org/wiki/Main_Page

https://github.com/zabbix/zabbix-community-repos 各种模板

http://www.douglas.wiki.br/doku.php?id=en:installing_and_configuring_zabbix 

寻找或者自己写监控脚本

上面给出部分网站去寻找脚本,有能力的可以自己写,我们可以借助别人的搅拌,这些脚本大多数是遵循GPL的协议

 

下载一个脚本之后,你要分析下脚本的运行环境,这几脚本大多数是个人缩写,每个人的运行环境不一样,所以你可以

VIM打开分析一下,有的是python,有的是ruby写的,脚本拿到手需要改里面的东西!

如上图脚本,第一个是执行脚本,我们先对执行脚本一些必要操作,我们使用XueGod64作为apache Server

[root@XueGod64 ~]# mv check_apache /usr/local/zabbix/bin/

[root@XueGod64 ~]# cd /usr/local/zabbix/bin/ ; chmod +x check_apache //脚本可执行权限

[root@XueGod64 bin]# vim check_apache //脚本需要我们改动的东西

……

126     rval=$?;;

127 'version')

128     ApacheVersion=$(/usr/sbin/httpd -v 2> /dev/null | head -n 1 | awk '{print $3}' | cut -d '/' -f     2 | tail -n 1)

129     echo "$ApacheVersion"

130     exit $rval;;

……

#在128行,我们这里使用yum安装的apache,所以我们的版本获取方式是httpd命令,如果你用源码编译,需要指定绝对路径

改动配置文件

第二个文件就是我们改动和添加到主agentd配置文件的内容

[root@XueGod64 bin]# vim ../etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf          #此行启用并修改

[root@XueGod64 bin]# cd

[root@XueGod64 ~]# mv conf-apache.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@XueGod64 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/conf-apache.conf    //修改此文件

    UserParameter=apache[*],/usr/local/zabbix/bin/check_apache \$1

[root@XueGod64 ~]# service zabbix_agentd restart

httpd文件的配置

[root@XueGod64 ~]# yum install httpd -y

[root@XueGod64 ~]# vim /etc/httpd/conf/httpd.conf //末尾添加这一段

<IfModule mod_status.c>

#

# Allow server status reports generated by mod_status,

# with the URL of http://servername/server-status

# Uncomment and change the "192.0.2.0/24" to allow access from other hosts.

#

<Location /server-status>

    SetHandler server-status

    Order deny,allow

    Deny from all

    Allow from 127.0.0.1 ::1

#    Allow from 192.0.2.0/24

</Location>

 

# Keep track of extended status information for each request

ExtendedStatus On

 

# Determine if mod_status displays the first 63 characters of a request or

# the last 63, assuming the request itself is greater than 63 chars.

# Default: Off

#SeeRequestTail On

 

<IfModule mod_proxy.c>

    # Show Proxy LoadBalancer status in mod_status

    ProxyStatus On

</IfModule>

 

</IfModule>

[root@XueGod64 ~]# service httpd restart ; cd /usr/local/zabbix/bin/

测试脚本是否正常

[root@XueGod64 bin]# ./check_apache Uptime //使用-h或直接回车,有帮助出现

27

前端页面操作

导入模板

选择模板Template_App_Apache_Service.xml,导入

 

模板应用

数据过滤

选择XueGod64Apache

点开Apache

然后去http://192.168.1.64打开多刷页面

然后随便点开有个变动的图,可以看到

配置zabbix邮件报警

[root@XueGod63 ~]# yum install postfix //安装postfix

[root@XueGod63 ~]# vim /etc/postfix/main.cf //修改下面行

myhostname = XueGod63

mydomain = XueGod63

myorigin = $myhostname

inet_interfaces = all

mynetworks = 127.0.0.0/8, 192.168.1.0/24

[root@XueGod63 ~]# service postfix restart

注册一个测试邮箱:163的即可

打开zabbix页面:

 

填写自己的主机名即可

 

配置用户

点击示警媒介--添加--选择Zabbix Email---输入收件人地址---添加

 

设置触发报警动作,组态-动作-创建动作

 

内容如下

名称:Action-Email

默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

恢复信息:打钩

恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

已启用:打钩

不要更新,先切换到如图:

 

点击添完成,先测试能否收到测试邮件

[root@XueGod63 ~]# mail -s "[email protected]" ******************@163.com

hahahahahahahah

ahsdfohasdfoasdfasd

EOT         #Ctrl + D

 

测试,关闭zabbix客户端服务zabbix_agentd

[root@XueGod64 ~]# service zabbix_agentd stop

结果:

 

[root@XueGod64 ~]# service zabbix_agentd start

 

 

延迟太大,只要看到动作后面是正常,即可,我测试的时候延迟有15分钟左右,最快也要5分钟左右

 

配置zabbix监控Windows

http://www.zabbix.com/download.php 下载Windows版本Agentd

提取文件,修改里面的conf目录下的zabbix_agent.win.conf(用写字板打开)

Server=192.168.1.63

ServerActive=192.168.1.63

Hostname=Windows host

然后在cmd命令行中:管理员运行cmd.exe

C:\Users\LinuxStury-Vir\Desktop\zabbix_agents_2.4.1.win\bin\win32\zabbix_agentd.exe --config "C:\Users\LinuxStury-Vir\Desktop\zabbix_agents_2.4.1.win\conf\zabbix_agentd.win.conf" --install

出现下面的:,表示简装成功

zabbix_agentd.exe [3368]: service [Zabbix Agent] installed successfully

zabbix_agentd.exe [3368]: event source [Zabbix Agent] installed successfully

开始-运行-services.msc--找到zabbix Agent,启动服务

 

然后在页面添加:

组态-主机-创建主机

模板:

 

查看监控结果

Windows下删除agent服务: 1:net stop “zabbix agent”  2: sc delete “zgent delete”

下面是一些报错常见案例处理:cannot send list of active checks to [127.0.0.1]: host [Zabbix server] not found

出现该错误的原因是一般是zabbix_agentd.conf里面的Hostname和前端zabbix web里面的配置不一样所造成的,即在zabbix web页面Monitoring->Configuration->Hosts 页面的Name和zabbix_agentd.conf里面的Hostname要一样。

 

猜你喜欢

转载自blog.csdn.net/qq_32485197/article/details/80930570