zoukankan      html  css  js  c++  java
  • Zabbix 安装

    Alexei Vladishev创建了Zabbix项目,当前处于活跃开发状态,Zabbix SIA提供支持.

    Zabbix是一个企业级的、开源的、分布式的监控套件

    Zabbix可以监控网络和服务的监控状况. Zabbix利用灵活的告警机制,允许用户对事件发送基于Email的告警. 这样可以保证快速的对问题作出相应. Zabbix可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划.

    Zabbix支持polling和trapping两种方式. 所有的Zabbix报告都可以通过配置参数在WEB前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix可以通过尽可能的配置来扮演监控你的IT基础框架的角色,而不管你是来自于小型组织还是大规模的公司.

    Zabbix是零成本的. 因为Zabbix编写和发布基于GPL V2协议. 意味着源代码是免费发布的.

    Zabbix公司也提供商业化的技术支持.

    请确保你所有的服务器时间都是正确的,为了确保时间ok,请在crontab里面加上定时时间同步。

    # crontab -l
    00 00  * * *    /usr/sbin/ntpdate -u 192.168.124.132

     Zabbix需要LNMP或者LAMP环境

    LNMP环境配置
    Linux
    NGINX
    PHP安装+NGINX配置
    MYSQL安装

    PHP安装参数
    如下模块要特别留意加上
    bcmath        –enable-bcmath
    mbstring    –enable-mbstring
    sockets        –enable-sockets
    gd            –with-gd
    libxml        –with-libxml-dir=/usr/local
    xmlwriter    同上
    xmlreader    同上
    ctype        默认支持
    session        默认支持
    gettext        默认支持

    ./configure  --prefix=/usr/local/php-5.5.7 
    --with-config-file-path=/usr/local/php-5.5.7/etc --with-bz2 --with-curl 
    --enable-ftp --enable-sockets --disable-ipv6 --with-gd 
    --with-jpeg-dir=/usr/local --with-png-dir=/usr/local 
    --with-freetype-dir=/usr/local --enable-gd-native-ttf 
    --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar 
    --with-gettext --with-libxml-dir=/usr/local --with-zlib 
    --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd 
    --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

    PHP配置参数

    max_execution_time = 300
    memory_limit = 128M
    post_max_size = 16M
    upload_max_filesize = 2M
    max_input_time = 300
    date.timezone = Asia/Shanghai

    安装 Perl

    http://www.perl.org/get.html
    wget http://www.cpan.org/src/5.0/perl-5.20.0.tar.gz 

    tar -zxvf perl-5.20.0.tar.gz 

    cd perl-5.20.0

    ./Configure -des -Dprefix=/usr/local/perl -Dusethreads -Uversiononly

    make & install

     或:

    apt-get install libperl-dev

     安装 net-snmp

    http://www.net-snmp.com/download.html

     
    wget http://ncu.dl.sourceforge.net/project/net-snmp/net-snmp/5.7.2.1/net-snmp-5.7.2.1.tar.gz
    tar -zxvf net-snmp-5.7.2.1.tar.gz
    ./configure --with-default-snmp-version="3" --prefix="/usr/local/net-snmp" --with-sys-contact="@@no.where" --with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp"

     关于配置参数说明:

     prefix:安装路径

    with-default-snmp-version(3): 3(在这里版本通常有三种形式:1,2c,3)
    with-sys-contact(配置该设备的联系信息): heaven(也可以是邮箱地址)
    with-sys-location(该系统设备的地理位置):BEIJING P.R China
    Location to write logfile (日志文件位置): /var/log/snmpd.log
    Location to Write persistent(数据存储目录): /var/net-snmp

    设置任何目录下可以运行snmp的命令,需做一下设置:

    echo export LD_LIBRARY_PATH=/usr/local/lib >> .bashrc

    验证安装是否成功 

    snmpget --version

    zabbix服务端安装

    http://www.zabbix.com/

    wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.6/zabbix-2.2.6.tar.gz

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

     或者指定

    ./configure --prefix=/usr/local/zabbix-2.2.6 --enable-server --enable-agent --enable-java --with-mysql --with-net-snmp=/usr/local/net-snmp/bin/net-snmp-config --with-libcurl=/usr/local/curl/bin/curl-config --with-libxml2=/usr/local/libxml2/bin/xml2-config

    错误:

    configure: error: MySQL library not found

    没有装mysql库

    apt-get install libmysql++-dev

    error: Invalid Net-SNMP directory - unable to find net-snmp-config

    没有装net-snmp的库 

    ln -s /usr/local/curl/include/curl /usr/lib
    ldconfig

     error:sysinc.h:383:24: error: curl/curl.h: No such file or directory

    vim ~/.bash_profile
    export LD_LIBRARY_PATH=/usr/local/curl/lib:/usr/local/mysql/lib
    export PATH=$PATH:/usr/local/curl/bin:/usr/local/curl/include/curl:/usr/local/curl/lib
    export C_INCLUDE_PATH=/usr/local/curl/include
    export CPLUS_INCLUDE_PATH=/usr/local/curl/include
    # 保存退出
    
    #生效
    source /root/.bashrc 

    在zabbix server一般充当两个角色:server、angent,所以上面的配置参数也同时加上了–enable-agent。
    备注:请安装好MySQL,snmp,curl开发库。

    创建用户

    如果你在root环境下运行zabbix,那么zabbix将会主动使用zabbix用户来运行。但是如果你的系统没有名叫zabbix的用户,你需要创建一个用户

    groupadd zabbix
    useradd -g zabbix zabbix

    设置Mysql环境变量

    export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/support-files

     启动Mysql

    mysql.server start
    mysql.server restart
    mysql.server stop

    设置root密码

    mysqladmin -u root -p password 123456

    root 用户登录

    mysql -u root -p123456 

    建立数据库

    create database zabbix default charset utf8;

    初始化zabbix数据

    mysql -uroot -p55570378 zabbix < /opt/zabbix-2.2.6/database/mysql/schema.sql

    命令集:

    #显示schema
    show databases;
    #打开库
    use zabbix;
    #列出所有表
    show tables;

    如果你仅仅是初始化proxy的数据库,那么够了。如果初始化server,那么接着导入下面两个sql

    mysql -uroot -p55570378 zabbix < /opt/zabbix-2.2.6/database/mysql/images.sql
    mysql -uroot -p55570378 zabbix < /opt/zabbix-2.2.6/database/mysql/data.sql

    配置zabbix

    配置zabbix_server配置文件,zabbix源码目录下

    cp /usr/local/zabbix-2.2.6/etc/zabbix_server.conf /usr/local/zabbix-2.2.6/etc/server.conf
    vim /usr/local/zabbix-2.2.6/etc/server.conf
    DBName=zabbix
    DBUser=root
    DBPassword=123456
    DBPort=3306

    启动Zabbix Server

    /usr/local/zabbix-2.2.6/sbin/zabbix_server -c /usr/local/zabbix-2.2.6/etc/zabbix_server.conf

    默认端口10051

    zabbix客户端安装

    tar -zxvf zabbix-2.2.6.tar.gz
    cd zabbix-2.2.6/
    ./configure --prefix=/usr/local/zabbix-2.2.2/ --enable-agent
    make & make install

    zabbix客户端配置 

    vim /usr/local/zabbix-2.2.2/etc/zabbix_agentd.conf
    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=Zabbix server

    其中Server和ServerActive都指定zabbixserver的IP地址,不同的是,前者是被动后者是主动。也就是说Server这个配置是用来允许127.0.0.1这个ip来我这取数据。而serverActive的127.0.0.1的意思是,客户端主动提交数据给他。

    zabbix客户端启动

    /usr/local/zabbix-2.2.2/sbin/zabbix_agentd

     默认端口10050

    zabbix管理网站配置
    拷贝前端文件

    mkdir /usr/local/zabbix-2.2.6/web
    cp -rp /opt/zabbix-2.2.6/frontends/php/* /usr/local/zabbix-2.2.6/web/

    配置Nginx

    server {
                listen 8080;
                server_name localhost;
                access_log /usr/local/nginx/logs/zabbix.log;
         
                index index.html index.php index.html;
                root /usr/local/zabbix-2.2.6/web;
         
                location / {
                        try_files $uri $uri/ /index.php?$args;
                }
         
                location ~ ^(.+.php)(.*)$ {
                        fastcgi_split_path_info ^(.+.php)(.*)$;
                        include fastcgi.conf;
                        fastcgi_pass  127.0.0.1:9000;
                        fastcgi_index index.php;
                        fastcgi_param  PATH_INFO $fastcgi_path_info;
                }
     }

     启动 PHP

    /usr/local/php-5.6.0/sbin/php-fpm

     启动Nginx

    /usr/local/nginx/sbin/nginx

    访问

    http://192.168.124.132:8080/

    依次向导配置

    登陆zabbix,默认用户名:Admin,密码:zabbix

    主要术语

    • Host主机:要监控的网络设备

    • Host Group主机组:主机的逻辑容器,可包含主机和模板;通常用于给用户或用户组指派监控权限时使用

    • Item监控项:一个特定监控指标的相关数据,是数据采集的核心,每个item都由key进行唯一标识

    • Trigger触发器:用于为监控项item所收集的数据定义阈值,触发器的状态在OK和PROBLEM间不断切换

    • Event事件:触发器的状态转变,新的agent或重新上线的agent的自动注册等,都会产生event

    • Action动作:指对于特定event实现定义的处理方法,由通知内容、条件、操作这3部分组成

    • Escalation报警升级:发送警报或执行远程命令的自定义方案

    • Media Type媒介:发送通知的手段或通道,如Email,Jabber或SMS等

    • Notification通知:通过选定的media向用户发送的有关某event的信息

    其它术语

    • Remote Command远程命令:预定义的命令,可在被监控主机处于某特定条件下自动执行

    • Template模板:用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application等

    • Application应用:一组item的集合

    • Web scennaria web场景:用于检测web站点可用性的一个或多个HTTP请求

    • Frontend前端:Zabbix的web接口

    其它概念

    UserParameter用户参数:可在被监控端通过设置UserParameter的方式,获得Zabbix预定义的key无法收集到的监控数据

    • 语法格式:UserParameter=<key>,<command>

    • 如:UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

    • server端的调用的key为:mysql.ping ,可获得被监控主机上mysql程序的存活状况

    • 如:UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}' ,带参数的UserParameter可批量监控多个同类监控项

    • server端的调用的key为memory.usage[MemFree] ,获得被监控主机剩余内存的数值

    • server端的调用的key为memory.usage[MemTotal} ,获得被监控主机总内存的数值

    Macros宏:zabbix基于宏保存预设的文本模式,并在调用时将其替换为其中的文本,可理解为全局变量

    • 宏的名称只能使用大写字母、数字及下划线

    • 分为zabbix内置宏和用户自定义宏

    • 内置的宏,有{HOST.NAME},{HOST.IP},{TRIGGER.NAME},{TRIGGER.DESCRIPTION}等

    • 用户自定义的宏要使用{$MACRO}这种特殊的格式引用,以区别于zabbix内置的宏

  • 相关阅读:
    gulp中glob的匹配规则
    ES6————let和const命令
    location
    section,div,artical的区别
    Mysql基本语法
    Nodejs基础中间件Connect
    springMVC结合Jcrop实现头像上传裁剪预览功能--javaweb修订版
    Nodejs Express 4.X 中文API 4--- Router篇
    Nodejs Express 4.X 中文API 3--- Response篇
    Nodejs Express 4.X 中文API 2--- Request篇
  • 原文地址:https://www.cnblogs.com/saintaxl/p/3954998.html
Copyright © 2011-2022 走看看