zoukankan      html  css  js  c++  java
  • Zabbix 3.4.2 install && Configuration

    原理:

    1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;

    2)database storage:专用于存储所有配置信息,以及由zabbix收集的数据;

    3)web interface:zabbix的GUI接口;

    4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;

    5)agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;

    另外,zabbix server、proxy、agent都有自己的配置文件以及log文件。

    一个监控系统运行的大概的流程是这样的:

    agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。

    其中agentd收集数据分为主动和被动两种模式:

    主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

    被动:server向agent请求获取监控项的数据,agent返回数据。

    【主动监测】通信过程如下:

    zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy。

    问题1:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。

    分两个部分:

     获取ACTIVE ITEMS列表

    • Agent打开TCP连接(主动检测变成Agent打开)
    • Agent请求items检测列表
    • Server返回items列表
    • Agent 处理响应
    • 关闭TCP连接
    • Agent开始收集数据

    主动模式:

    • Agent建立TCP连接
    • Agent提交items列表收集的数据
    • Server处理数据,并返回响应状态
    • 关闭TCP连接

    被动模式:

    • Server打开一个TCP连接
    • Server发送请求agent.ping
    • Agent接收到请求并且响应<HEADER><DATALEN>1
    • Server处理接收到的数据1
    • 关闭TCP连接

    问题2:

    被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了。

    那实际监控中是用主动的还是被动的呢?这里主要涉及两个地方:

    1、新建监控项目时,选择的是zabbix代理还是zabbix端点代理程式(主动式),前者是被动模式,后者是主动模式。

    2、agentd配置文件中StartAgents参数的设置如果为0,表示禁止被动模式,否则开启。一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。

    常用的监控架构平台

    1、server-agentd模式:

    这个是最简单的架构了,常用于监控主机比较少的情况下。

    2、server-proxy-agentd模式:

    这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力。

    开始搭建:

    [root@opop01 ~]# uname -r
    3.10.0-693.el7.x86_64
    [root@opop01 ~]# cat /etc/centos-release
    CentOS Linux release 7.4.1708 (Core)

    服务端IP:192.168.0.223
    客户端IP:192.168.0.224

    [root@opop1 ~]# systemctl stop firewalld.service
    [root@opop1 ~]# systemctl disable firewalld.service
    [root@opop1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

    挂载光盘

    [root@opop01 ~]# mount /dev/sr0 /mnt/usb1
    [root@opop01 ~]# yum -y install  lrzsz  vim
    [root@opop01 ~]# vim  /etc/hosts
        192.168.0.223 opop01
        192.168.0.224 opop2

    [root@opop01 ~]# mkdir /opop
    [root@opop01 ~]# cd /opop/

    创建用户:
    [root@opop01 opop]# groupadd zabbix
    [root@opop01 opop]# useradd -r -g zabbix zabbix

    部署LAMP环境:
    [root@opop01 opop]# yum -y install vim lrzsz wget gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-server krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers net-snmp-devel httpd httpd-devel mariadb mariadb-server php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml net-snmp-devel libxml2-devel libcurl-deve libevent libevent-devel mysql mysql-devel

    启动mariadb并导入数据库:
    [root@opop01 opop]# systemctl start mariadb.service
    [root@opop01 opop]# mysqladmin -uroot password '123456'
    [root@opop01 opop]# mysql -uroot -p123456
    MariaDB [(none)]> create database zabbix character set utf8;
    MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';
    MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'%' identified by '123456';
    MariaDB [(none)]> exit
    Bye


    [root@opop01 opop]# systemctl restart mariadb.service

    [root@opop01 opop]# systemctl enable mariadb
    [root@opop01 opop]# systemctl restart httpd.service
    [root@opop01 opop]# systemctl enable httpd.service

    下载zabbix源码包
    [root@opop01 opop]# wget https://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.2/zabbix-3.4.2.tar.gz?r=&ts=1517190738&use_mirror=jaist
    [root@opop01 opop]# tar -zxvf zabbix-3.4.2.tar.gz
    [root@opop01 opop]# cd zabbix-3.4.2/database/mysql/
    [root@opop01 mysql]# mysql -uroot -p123456 zabbix < schema.sql    #这里导入的时候有先后顺序,需注意 
    [root@opop01 mysql]# mysql -uroot -p123456 zabbix < images.sql
    [root@opop01 mysql]# mysql -uroot -p123456 zabbix < data.sql
    [root@opop01 mysql]# cd ../../


    编译:
    [root@opop01 zabbix-3.4.2]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
    [root@opop01 zabbix-3.4.2]# make install
    [root@opop01 zabbix-3.4.2]# chown -R zabbix:zabbix /usr/local/zabbix/

    修改zabbix_server.conf
    [root@opop01 zabbix-3.4.2]# vim /usr/local/zabbix/etc/zabbix_server.conf
    LogFile=/tmp/zabbix_server.log
    PidFile=/tmp/zabbix_server.pid
    DBName=zabbix                 #数据库的名字
    DBUser=zabbix                  #mysql中授权过的用户名
    DBPassword=123456                 #mysql中授权过的用户名的密码
    DBSocket=/var/lib/mysql/mysql.sock          #这个要查下mysql的套接字在什么位置
    DBPort=3306
    ListenIP=192.168.0.223                 #服务端IP
    Timeout=4
    AlertScriptsPath=/etc/zabbix/alertscripts
    LogSlowQueries=3000
    Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf
    LogSlowQueries=3000
    ##############  grep -v ^# /usr/local/zabbix/etc/zabbix_server.conf | grep -v ^$ 可查看所有配置   ###########

    修改zabbix_agentd.conf
    [root@opop01 zabbix-3.4.2]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
    PidFile=/tmp/zabbix_agentd.pid
    LogFile=/tmp/zabbix_agentd.log
    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=Zabbix server
    Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

    添加前端文件:
    [root@opop01 zabbix-3.4.2]# mkdir /var/www/html/zabbix
    [root@opop01 zabbix-3.4.2]# cp -r frontends/php/*    /var/www/html/zabbix/
    [root@opop01 zabbix-3.4.2]# pwd
    /opop/zabbix-3.4.2
    [root@opop01 zabbix-3.4.2]# chown  -R  apache:apache   /var/www/html/zabbix/

    编辑PHP的配置文件
    [root@opop01 zabbix-3.4.2]# vim /etc/php.ini
    384   max_execution_time = 300
    394   max_input_time = 300
    405   memory_limit = 128M
    672   post_max_size = 32M
    878   date.timezone = Asia/Shanghai


    将zabbix添加到系统路径,并建立软链接:
    [root@opop01 zabbix-3.4.2]# cp misc/init.d/tru64/zabbix_server   /etc/init.d/
    [root@opop01 zabbix-3.4.2]# cp misc/init.d/tru64/zabbix_agentd   /etc/init.d/
    [root@opop01 zabbix-3.4.2]# chmod +x /etc/init.d/zabbix_server
    [root@opop01 zabbix-3.4.2]# chmod +x /etc/init.d/zabbix_agentd
    [root@opop01 zabbix-3.4.2]# ln  -s  /usr/local/zabbix/sbin/*    /usr/local/sbin/
    [root@opop01 zabbix-3.4.2]# ln  -s  /usr/local/zabbix/bin/*     /usr/local/bin/

    [root@opop01 zabbix-3.4.2]# service  zabbix_server  start   { stop | restart }
    Zabbix server started.
    [root@opop01 zabbix-3.4.2]# service  zabbix_agentd  restart
    Zabbix agent started.
    [root@opop01 zabbix-3.4.2]# service  httpd  restart


    打开网页输入:192.168.0.223/zabbix--->>Next step---->>Database type(mysql)、Database host(localhost)、Database type(0也就代表默认,也就是3306)、Database name(就是在数据库中创建的zabbix)、user(mysql中授权的zabbix用户)、Password(手动输入123456即可,也就是授权zabbix时的那个密码)
    Next step <<---->>Host(我这里写的是服务端的IP[上面会有提示看着写就行]Port(10051)、Name(可自定义,也就是待会web启动起来后右上角显示的名字)
    Next step <<---->>这里会对刚才的配置做一个总结---->>
    Next step <<---->>提示“Congratulations! You have successfully installed Zabbix frontend.”即表示成功---->>Finish
    Username : admin
    Password : zabbix

    ##############################################################################################################################
    点击第一个Next step后出现的问题:
    PHP    bcmath    off    Fail
    PHP    LDAP      off     Warning
    解决:
    [root@opop01 zabbix-3.4.2]# yum install *bcmath* --skip-broken
    [root@opop01 zabbix-3.4.2]# yum -y install  php-ldap
    [root@opop01 zabbix-3.4.2]# service  zabbix_server  restart
    [root@opop01 zabbix-3.4.2]# service  httpd  restart
    确保点击第一个Next step后显示都是OK的状态方可进行下一步
    ##############################################################################################################################

    进来web页面后看下右下角的Status of Zabbix中的Zabbix server is running 是否为Yes

    将英文改成中文:
    点击web页面右上角的小人头像Language中选中Chinaese(zh_CN)---->>update即可

    打开监控本机:
    配置---->>主机---->>选中本地主机---->>启用即可

    添加主机
    配置---->>主机---->>右上角“创建主机”---->>主机名就是客户端的配置文件中的Hostname的名字--->>可见的名称随便写---->>群组写“linux server”--->>agent代理程序的接口ip地址写客户端的IP地址---->>>更新即可


    中文乱码问题的解决:
    Win+R打开运行,输入fonts,回车进入Windows字体目录,找到微软雅黑-常规字体,复制出来将文件名修改为msyh.ttf,然后上传到/var/www/html/zabbix/fonts
    上传成功后编辑
    [root@opop01 ~]# vim /var/www/html/zabbix/include/defines.inc.php
    ........... 省略一部分 大约在47行上下 ..............
    原样:
    define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
    修改为:
    define('ZBX_GRAPH_FONT_NAME', 'msyh'); // font file name

    修改完以后web页面上刷新一下即可

     以上全在zabbix_server端完成的......


    客户端安装:(被监控端安装)
    关闭防火墙和selinux:
    [root@opop2 ~]# systemctl stop firewalld.service
    [root@opop2 ~]# systemctl disable firewalld.service
    [root@opop2 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/'  /etc/selinux/config

    [root@opop2 ~]# vim /etc/hosts
    192.168.0.223 opop01
    192.168.0.224 opop2

    创建zabbix用户和组:
    [root@opop2 ~]# groupadd zabbix
    [root@opop2 ~]# useradd -g zabbix -s /sbin/nologin zabbix

    [root@opop2 ~]# yum -y install  gcc  vim  lrzsz

    [root@opop2 ~]# vi /etc/services               #添加zabbix服务对应的端口,默认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

    [root@opop2 ~]# mkdir /opop
    [root@opop2 ~]# cd /opop
    [root@opop2 opop]# tar -zxvf zabbix-3.4.2.tar.gz        #该包是从服务端scp发过来的
    [root@opop2 opop]# cd zabbix-3.4.2
    [root@opop2 zabbix-3.4.2]# ./configure --prefix=/usr/local/zabbix --enable-agent
    ###############################################################################################################################
    问题:
    checking for libpcre support... no
    configure: error: Unable to use libpcre (libpcre check failed)
    解决:
    [root@opop2 zabbix-3.4.2]# yum -y install pcre*
    再次执行./configure --prefix=/usr/local/zabbix --enable-agent即可
    ###############################################################################################################################
    [root@opop2 zabbix-3.4.2]# make install

    [root@opop2 zabbix-3.4.2]# ln  -s  /usr/local/zabbix/sbin/*   /usr/local/sbin/
    [root@opop2 zabbix-3.4.2]# ln  -s  /usr/local/zabbix/bin/*   /usr/local/bin/

    修改zabbix_agent.conf:
    [root@opop01 zabbix-3.4.2]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
    PidFile=/tmp/zabbix_agentd.pid
    LogFile=/tmp/zabbix_agentd.log
    LogFileSize=0
    Server=192.168.0.223           #服务端的地址,用于被动模式,数据获取
    ListenPort=10050
    ### ServerActive=192.168.0.223       #注释掉该行,该行用于主动模式,数据提交
    Hostname=kkkk         #重点!!!!!
    Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/      #加一个zabbix
    注:
    Hostname=kkkk, 这个名字自定义也可,只要保证在web页面上添加主机时和这里Hostname的名字一致即可,要不zabbix server不能识别到zabbix agent

    [root@opop2 zabbix-3.4.2]# cp misc/init.d/fedora/core/zabbix_agentd   /etc/rc.d/init.d/zabbix_agentd
    [root@opop2 zabbix-3.4.2]# chown zabbix:zabbix   /etc/rc.d/init.d/zabbix_agentd
    [root@opop2 zabbix-3.4.2]# chmod +x /etc/rc.d/init.d/zabbix_agentd
    [root@opop2 zabbix-3.4.2]# vi /etc/rc.d/init.d/zabbix_agentd
        BASEDIR=/usr/local/zabbix/              #编辑客户端启动脚本中zabbix的安装目录

    [root@opop2 zabbix-3.4.2]# chkconfig  --level 35  zabbix_agentd  on
    [root@opop2 zabbix-3.4.2]# service  zabbix_agentd  start
    Starting zabbix_agentd (via systemctl): [ 确定 ]

    截至现在就搭好了。打开浏览器输入192.168.0.223/zabbix添加主机吧

  • 相关阅读:
    redis持久化的几种方式
    Spring Cloud基础教程
    微服务实践三: 服务编排
    分库分表的几种常见玩法及如何解决跨库查询等问题
    Spring Cloud微服务开发笔记5——Ribbon负载均衡策略规则定制
    第1章 Python基础-Python介绍&循环语句 练习题&作业
    MySQL中 optimize table '表名'的作用
    Python3 命令行参数
    Python enumerate() 函数
    Python rpartition() 方法
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/8384714.html
Copyright © 2011-2022 走看看