Zabbix监控

简介

为什么选择zabbix:轻量(一台一般配置的机器支持监控上百台以上机器)、简单(WEB-GUI配置)、高效(支持多种方式采集数据)、企业级、开源、分布式

Zabbix官方文档:  https://www.zabbix.com/documentation/2.4/

参考  http://www.ttlsa.com/zabbix/follow-ttlsa-to-study-zabbix/

原理:数据采集->数据存储->数据展示(cacti支持数据存储和展示不重视状态变化并报警,nagios支持数据采集重状态变化并报警,因此常用cacti+nagios来监控大型系统,zabbix均支持而且一台一般配置的机器支持监控上百台以上机器)

Zabbix主要功能:

监控CPU、负荷、内存、磁盘、网络、端口(应用程序)、日志、脚本自定义监控项

Zabbix组件:(各个组件不一定在一台机器上)

Zabbix-Server:Zabbix Serve由 C开发,需运行在LAMP或LNMP环境下,对硬件要求低,Server除Windows支持外基本支持
Zabbix-Agent:目前已有的agent由 C开发,基本支持市面常见的Linux、HPUX、Solaris、Mac OS X、Windows等
Zabbix-web GUI:由 PHP开发,用于展示和设置
Zabbix-Proxy:可选,分布式监控的专用组件,用于缓解Server的压力
Zabbix-database:Mysql,PostGreSQL,Oracle,DB2,SQLite,MSSQL

注意:Server和Agent时间要一致,时间不同步将导致监控的数据不一致,有可能出现监控了一周却始终只有三五天数据或是无法得到当前时间数据的情况。

所以server和agent任务计划要定时执行ntpdate

准备环境

Linux版本: CentOS release 6.8 (Final) 2.6.32-642.6.2.el6.x86_64

zabbix支持安装在多种数据库上,本方案中数据库为mysql

Server  139.129.119.104

Agent   112.74.97.66

#修改yum源,加快下载速度

这里使用中科大yum源 

https://lug.ustc.edu.cn/wiki/mirrors/help/centos

#安装所需的依赖包

# yum install  -y  gcc gcc-g++ libxml2-devel net-snmp-devel curl-devel perl-DBI php-gd  php-bcmath php-mbstring php-xml mysql-devel

#yum安装 lamp环境

yum install -y httpd mysql-server php php-mysql 

/etc/init.d/httpd start

chkconfig httpd on  # httpd开机启动

/etc/init.d/mysqld restart

cd /var/www/html/

vim 1.php 

<?php
phpinfo()
?>

http://ip/1.php  #看到php版本号说明lamp环境搭建成功

yum安装zabbix

#安装zabbix yum源头

rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

ls /etc/yum.repos.d/zabbix.repo  #路径存在,yum源安装成功

#安装zabbix server端

yum install zabbix-server-mysql zabbix-web-mysql  

#安装zabbix agent端

yum install zabbix-agent

#初始化数据库

mysql  #我的mysql未设置密码

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

mysql> quit;

cd /usr/share/doc/zabbix-server-mysql-2.4.8/create 

mysql -uroot zabbix < schema.sql

mysql -uroot zabbix < images.sql

mysql -uroot zabbix < data.sql

 

#修改zabbix配置文件

vi /etc/zabbix/zabbix_server.conf

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

service zabbix-server start

 

#页面安装zabbix 

ip/zabbix/setup.php  #可以看到zabbix欢迎页面,点击Next,出现

vim /etc/httpd/conf.d/zabbix.conf   #http://ip/zabbix/setup.php#页面出现错误均是设置这个文件

php_value date.timezone Asia/Chongqing  #不要和系统时区一致,否则会报错 

 /etc/init.d/httpd restart

#登陆zabbix

username:Admin   #用户名默认为Admin

password:zabbix  #密码是自定义的

源码安装zabbix

#源码下载地址 

http://www.zabbix.com/download2

tar -zxvf zabbix-2.4.8.tar.gz

cd zabbix-2.4.8

#增加zabbix用户和组

groupadd zabbix

useradd -g zabbix zabbix

#初始化数据库

mysql  #我的mysql未设置密码

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

mysql> quit;

cd  database/mysql

mysql -uroot zabbix < schema.sql

mysql -uroot zabbix < images.sql

mysql -uroot zabbix < data.sql

#编译安装

cd ../..

./configure --prefix=/usr/local/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2

make && make install

#修改zabbix配置文件

vim /usr/local/zabbix_server/etc/zabbix_server.conf

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

DBSocket=/var/lib/mysql/mysql.sock

 #修改启动脚本

cp misc/init.d/fedora/core5/* /etc/init.d/

vi /etc/init.d/zabbix_server

ZABBIX_BIN="/usr/local/zabbix_server/sbin/zabbix_server"

vim /etc/init.d/zabbix_agentd

ZABBIX_BIN="/usr/local/zabbix_server/sbin/zabbix_agentd"

chkconfig --add zabbix_server;chkconfig zabbix_server on  #开机启动zabbix

#页面安装zabbix 

mkdir /var/www/html/zabbix
cp -r frontends/php/* /var/www/html/zabbix/

 /etc/init.d/zabbix_server start

 

vim /etc/php.ini   #http://ip/zabbix/setup.php#页面出现错误均是设置这个文件

date.timezone =  Asia/Chongqing  #时区不能和系统相同

 

 点击“Download configuration file”按钮,

并将下载的zabbix.conf.php保存到,/var/www/html/zabbix/conf/下,点击“Retry”按钮重试=====》

 

/etc/init.d/httpd restart

#登陆zabbix

username:Admin   #用户名默认为Admin

password:zabbix  #密码是自定义的

 

汉化

 上传字体文件到zabbix中

C:\Windows\Fonts\simkai.ttf(楷体)上传到服务器zabbix网站目录fonts目录下,上传后simkai.ttf名可能会是SIMKAI.TT,必须改成小写

 修改zabbix php配置文件

找到zabbix安装目录

sed -i 's/DejaVuSans/simkai/g'  ./include/defines.inc.php

数据采集

步骤

1.添加主机

  组态-》主机-》创建主机-》snmp接口  #(这里可选择接口)

2.添加模板(模板有一些监控项,也可以自定义监控项不添加模板)

  某主机名称-》模板-》添加模板

3.添加监控项

  某主机项目-》创建监控项  #这里可选择采集方式

4.创建项目图形,可选(如果不创建图形,到  监控(一级菜单)-》最新数据  查看)

  某主机图形-》创建图形-》添加监控项

5.显示图形

  监控(一级菜单)-》图形

snmp方式

Server和Agent均:  yum install -y net-snmp*

Agent :   vim /etc/snmp/snmpd.conf  #添加  view    systemview    included   .1

/etc/init.d/snmpd restart

 

snmpwalk -v 2c -c public  #手动测试能否获取OID

预定义OID  https://www.cnblogs.com/aspx-net/p/3554044.html 

自定义OID

可执行脚本
    exec echohaha /bin/echo hello world
    该信息保存在enterprises分支中的extEntry表中具体的OID为:  .1.3.6.1.4.1.2021.8.1
自定义OID
    extend .1.3.6.1.4.1.2021.50 shelltest /bin/bash /tmp/test.sh
    extend .1.3.6.1.4.1.2021.51 uname /bin/uname -r
    extend .1.3.6.1.4.1.2021.52 ps '/bin/ps'
    extend .1.3.6.1.4.1.2021.53 who /usr/bin/who
    extend .1.3.6.1.4.1.2021.54 test /tmp/test.py

ssh方式

vim  /usr/local/zabbix_server/etc/zabbix_server.conf  #添加

SSHKeyLocation=/home/zabbix/.ssh

 

sudo -u zabbix ssh-keygen -t rsa  //创建密钥

sudo -u zabbix ssh-copy-id root@112.74.97.66  //

ssh  root@112.74.97.66  //手动测试能否以rootshenfen登陆112.74.97.66 

#添加监控项:

external check方式

cd /usr/local/zabbix_server/

vim share/zabbix/externalscripts/checkport.sh   #添加

nc -w $1 $2 > /dev/null && echo 1 || ehco 0  #$1为HOST.CONN,$2为80

vim etc/zabbix_server.conf     #添加

ExternalScripts=/usr/local/zabbix_server/share/zabbix/externalscripts

 

#添加监控项:

 

HOST.CONN为Host interface的值

 agent方式

zabbix自身的方式,效率高,有主动被动两种方式

在agent端操作

 tar zxvf zabbix-2.4.8.tar.gz
 cd zabbix-2.4.8
 ./configure --prefix=/usr/local/zabbix_agent --enable-agent
 make
 make install
 cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/  #拷贝启动脚本

 vim /etc/init.d/zabbix_agentd  #修改BASEDIR

 BASEDIR=/usr/local/zabbix_agent

 cd /usr/local/zabbix_agent/

 vim etc/zabbix_agentd.conf  #修改配置文件

 
 useradd zabbix
 /etc/init.d/zabbix_agentd restart
 
测试是否能zabbix_get

/usr/local/zabbix_server/bin/zabbix_get -s 112.74.97.66 -p 10050 -k system.hostname
Agent

 

configuraration->Host->Agent interfaces

/usr/local/zabbix_agent/etc/zabbix_agentd.conf  #添加

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

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

 vim other.conf  #添加如下,名字任意取,后缀是.conf,格式:UserParameter=key,cmd
UserParameter=mysql.questions,mysqladmin -uroot status|cut -d: -f4|cut -d"S" -f1
 
 /etc/init.d/zabbix_agentd restart
#手动测试成功则添加到web:

[root@Server ~]# /usr/local/zabbix_server/bin/zabbix_get -s 112.74.97.66 -p 10050 -k mysql.questions
25

#添加监控项:
 

 vim other.conf   #添加

UserParameter=http.port[*],nc -w 1 $1 $2 > /dev/null && echo 1 || echo 0

手动测试成功则添加到web:

[root@Server ~]# /usr/local/zabbix_server/bin/zabbix_get -s 112.74.97.66 -p 10050 -k http.port[112.74.97.66,80]
1

触发器与报警

给监控项设置触发器

组态-》主机-》触发器-》创建触发器,设置名称、表达式、严重性等级

(触发器是事件的一种,事件会触发报警)

 邮件报警(发送内容)

 1.定义报警方式

管理-》示警媒介类型-》创建媒体类型

 #使用postfix邮件服务

yum install -y postfix; 

vim /etc/postfix/main.cf  #修改

inet_protocols = all 改为 inet_protocols = ipv4

 注释inet_interfaces = localhost

 

/etc/init.d/postfix start

 #测试postfix服务

echo 'haha' | mail -s 'test mail' 邮箱

 

2.定义收件用户

管理-》用户-》示警媒介

 

3.创建动作

组态-》动作-》创建动作

设置:动作(邮件内容)、条件(触发报警的条件)、操作()

 注意:邮件报警我用的监控服务器是阿里云,邮箱是126邮箱(不要用QQ邮箱,很难收到)

 邮件使用:http://blog.csdn.net/i_am_jojo/article/details/7944877

脚本报警(发送附件)

cd /usr/local/zabbix_server/etc

vim  zabbix_server.conf   #添加

AlertScriptsPath=/usr/local/zabbix_server/share/zabbix/alertscripts

 

/etc/init.d/postfix restart

cd usr/local/zabbix_server/share/zabbix/alertscripts

 vim sendmail.sh #添加

to=$1
subject=$2
body=$3
echo $body | mail -s "$subject" "$to"

 

 chmod +x sendmail.sh 

 

 1.定义报警方式

管理-》示警媒介类型-》创建媒体类型

2.定义收件用户,步骤同上

3.创建动作,步骤同上

 zabbix的API

API简介

 之前所有的操作都可以通过API,以编程方式实现,API是PHP写的接口

 大多数API至少包含四种方法:get,create,update和delete,但某些API可以提供一个完全不同的一套方法。

 

 

 

 

 

 
posted @ 2017-02-22 18:42  沐风先生  阅读(319)  评论(0编辑  收藏  举报