zabbix部署

1. zabbix介绍

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

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

  • zabbix由2部分构成,zabbix server与可选组件zabbix agent。

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

  • zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

  • zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
    另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。

2. zabbix特点

  • zabbix的主要特点:

安装与配置简单,学习成本低
支持多语言(包括中文)
免费开源
自动发现服务器与网络设备
分布式监视以及WEB集中管理功能
可以无agent监视
用户安全认证和柔软的授权方式
通过WEB界面设置或查看监视结果
email等通知功能

  • Zabbix主要功能:

CPU负荷
内存使用
磁盘使用
网络状况
端口监视
日志监视

3. zabbix配置文件

  • zabbix配置文件有两种:

服务器端配置文件(/usr/local/etc/zabbix_server.conf)
客户端配置文件(/usr/local/etc/zabbix_agentd.conf)
zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)
服务器端配置文件zabbix_server.conf常用配置参数:

参数 作用
LogFile 设置服务端日志文件存放路径
ListenIP 设置服务端监听IP
ListenPort 设置服务端监听的端口号
PidFile 设置服务端进程号文件存放路径
DBHost 指定zabbix的数据库服务器IP
DBName 指定zabbix使用的数据库库名
DBUser 指定zabbix数据库登录用户
DBPassword 指定zabbix数据库登录密码
DBPort 指定zabbix数据库端口号
User 设置zabbix以什么用户的身份运行
AlertScriptsPath 设置告警脚本存放路径
ExternalScripts 外部脚本存放路径
  • 客户端配置文件zabbix_agentd.conf常用配置参数:
参数 作用
Server 指定zabbix服务器的IP或域名
ServerActive 指定zabbix服务器的IP或域名
Hostname 指定本机的主机名,此项必须与web界面配置项一致
UnsafeUserParameters 是否启用自定义监控项,可选值为{1
UserParameter 指定自定义监控脚本参数
LogFile 设置客户端日志文件存放路径

4. 部署zabbix

环境说明:
服务器名称: xxx

环境 IP 要安装的应用
服务器 192.168.125.129 lamp架构
zabbix server
zabbix agent
客户端 192.168.125.128 zabbix agent

4.1 zabbix安装

[root@xxx src]# yum -y install net-snmp-devel libevent-devel  --安装依赖包
...
[root@ src]#wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz  、--下载zabbix
[root@xxx src]# tar xf zabbix-4.0.3.tar.gz  --解压
[root@xxx src]# groupadd -r zabbix  --创建组
[root@xxx src]# useradd -r -g zabbix -M -s /sbin/nologin zabbix   --创建用户
[root@xxx src]# mysql -uroot -p  --配置zabbix数据库
Enter password: 
...
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'xj123456';  --允许zabbix里所有的表以zabbix用户在本地用密码登录
Query OK, 0 rows affected, 2 warnings (0.08 sec)

mysql> flush privileges;  --刷新权限
Query OK, 0 rows affected (0.01 sec)
[root@xxx src]# cd /usr/src/zabbix-4.0.3/database/mysql/
[root@xxx mysql]# ll  --按顺序导入数据
总用量 5808
-rw-r--r--. 1 1001 1001 3802313 12月 20 19:24 data.sql  --3
-rw-r--r--. 1 1001 1001 1978341 12月 20 19:24 images.sql   --2
-rw-r--r--. 1 1001 1001     392 12月 20 19:24 Makefile.am
-rw-r--r--. 1 1001 1001   15711 12月 20 19:24 Makefile.in
-rw-r--r--. 1 1001 1001  140265 12月 20 19:24 schema.sql  --1
导入数据
[root@xxx mysql]# mysql -uzabbix -pxj123456 zabbix < schema.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@xxx mysql]# mysql -uzabbix -pxj123456 zabbix < images.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@xxx mysql]# mysql -uzabbix -pxj123456 zabbix < data.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
编译安装zxbbix
[root@xxx mysql]# cd /usr/src/zabbix-4.0.3
[root@xxx zabbix-4.0.3]# ./configure --prefix=/usr/local/zabbix --enable-server \
> --enable-agent \
> --with-mysql \
> --with-net-snmp \
> --with-libcurl \
> --with-libxml2
...
[root@xxx zabbix-4.0.3]# make install
...

4.2 zabbix服务配置

[root@xxx ~]# ls /usr/local/etc/
zabbix_agentd.conf  zabbix_agentd.conf.d  zabbix_server.conf  zabbix_server.conf.d
[root@xxx ~]# vim /usr/local/etc/zabbix_server.conf  --修改配置文件,将zabbix密码写入
# Mandatory: no
# Default:
DBPassword=xj123456
开启zabbix--server和zabbix--agentd
[root@xxx ~]# zabbix_server 
[root@xxx ~]# ss -anlt
State      Recv-Q Send-Q                        Local Address:Port                          Peer Address:Port 
LISTEN     0      100                               127.0.0.1:25                                       *:*     
LISTEN     0      128                                       *:10051                                    *:*     
LISTEN     0      128                               127.0.0.1:9000                                     *:*     
LISTEN     0      5                                         *:873                                      *:*     
LISTEN     0      128                                       *:22                                       *:*     
LISTEN     0      100                                     ::1:25                                      :::*     
LISTEN     0      5                                        :::873                                     :::*     
LISTEN     0      80                                       :::3306                                    :::*     
LISTEN     0      128                                      :::80                                      :::*     
LISTEN     0      128                                      :::22                                      :::*     
[root@xxx ~]# zabbix_agentd 
[root@xxx ~]# ss -anlt
State      Recv-Q Send-Q                        Local Address:Port                          Peer Address:Port 
LISTEN     0      100                               127.0.0.1:25                                       *:*     
LISTEN     0      128                                       *:10050                                    *:*     
LISTEN     0      128                                       *:10051                                    *:*     
LISTEN     0      128                               127.0.0.1:9000                                     *:*     
LISTEN     0      5                                         *:873                                      *:*     
LISTEN     0      128                                       *:22                                       *:*     
LISTEN     0      100                                     ::1:25                                      :::*     
LISTEN     0      5                                        :::873                                     :::*     
LISTEN     0      80                                       :::3306                                    :::*     
LISTEN     0      128                                      :::80                                      :::*     
LISTEN     0      128                                      :::22                                      :::*    

4.3 zabbix服务端web界面安装与配置

4.3.1 zabbix web界面安装前配置

修改/etc/php.ini的配置并重启php-fpm,否则不能启用zabbix服务端的web界面
[root@xxx ~]# vim /etc/php.ini 
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
;date.timezone = Asia/Shanghai
[root@xxx ~]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done
[root@xxx ~]# cd /usr/src/zabbix-4.0.3
[root@xxx zabbix-4.0.3]# ls
aclocal.m4  ChangeLog     config.log     configure.ac  frontends   m4           man      README
AUTHORS     compile       config.status  COPYING       include     Makefile     misc     sass
bin         conf          config.sub     database      INSTALL     Makefile.am  missing  src
build       config.guess  configure      depcomp       install-sh  Makefile.in  NEWS
[root@xxx zabbix-4.0.3]# mkdir /usr/local/apache/htdocs/zabbix-xj  --创建网站目录
[root@xxx zabbix-4.0.3]#  cp -a frontends/php/* /usr/local/apache/htdocs/zabbix-xj/  --将网页文件拷贝到网站目录
[root@xxx zabbix-4.0.3]# chown -R apache.apache /usr/local/apache/htdocs  --将属主属组都改为apache
[root@xxx zabbix-4.0.3]# ll /usr/local/apache/htdocs
[root@xxx zabbix-4.0.3]# ll /usr/local/apache/htdocs
总用量 8
-rw-r--r--.  1 apache apache   45 6月  12 2007 index.html
drwxr-sr-x.  2 apache apache   22 2月  22 10:59 xj.com
drwxr-sr-x. 13 apache apache 4096 2月  22 14:54 zabbix-xj
`配置appache虚拟主机
[root@xxx zabbix-4.0.3]# vim /etc/httpd24/httpd.conf 


    DocumentRoot "/usr/local/apache/htdocs/zabbix-xj"
    ServerName www.zabbix-xj.com
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix-xj/$1
    
        Options none
        AllowOverride none
        Require all granted
    

设置zabbix/conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
[root@xxx zabbix-4.0.3]# chmod 777 /usr/local/apache/htdocs/zabbix-xj/conf
[root@xxx zabbix-4.0.3]# ll /usr/local/apache/htdocs/zabbix-xj/conf -d
drwxrwsrwx. 2 apache apache 78 12月 20 19:24 /usr/local/apache/htdocs/zabbix-xj/conf
重启apache服务
[root@xxx zabbix-4.0.3]# apachectl restart
[root@xxx zabbix-4.0.3]# ss -anlt
State      Recv-Q Send-Q                        Local Address:Port                          Peer Address:Port 
LISTEN     0      100                               127.0.0.1:25                                       *:*     
LISTEN     0      128                                       *:10050                                    *:*     
LISTEN     0      128                                       *:10051                                    *:*     
LISTEN     0      128                               127.0.0.1:9000                                     *:*     
LISTEN     0      5                                         *:873                                      *:*     
LISTEN     0      128                                       *:22                                       *:*     
LISTEN     0      100                                     ::1:25                                      :::*     
LISTEN     0      5                                        :::873                                     :::*     
LISTEN     0      80                                       :::3306                                    :::*     
LISTEN     0      128                                      :::80                                      :::*     
LISTEN     0      128                                      :::22                                      :::*     

4.3.2 安装zabbix服务web服务

zabbix部署_第1张图片
zabbix部署_第2张图片
zabbix部署_第3张图片
zabbix部署_第4张图片
zabbix部署_第5张图片
zabbix部署_第6张图片

2.客户端安装

安装依赖包
[root@xj ~]# yum -y install net-snmp-devel libevent-devel openssl-devel prce-devel gcc gcc-g++
创建zabbix用户和组
[root@xj ~]#groupadd -r zabbix
[root@xj ~]#useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@xj ~]# cd /usr/local/
[root@xj local]# tar xf zabbix-4.0.3.tar.gz   --解压
[root@xj local]# make install
[root@xj local]#vim /usr/local/etc/zabbix_agentd.conf   --修改配置文件
Server=192.168.125.129  改为客户端ip
...
ServerActive=192.168.125.128
...
Hostname=xj001  --唯一标志符
启动服务
[root@xj local]# zabbix_agentd 
[root@xj local]# ss -anlt
[root@xj local]# ss -anlt
State       Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port 
LISTEN      0      100                          127.0.0.1:25                                  *:*     
LISTEN      0      128                                  *:10050                               *:*     
LISTEN      0      128                                  *:22                                  *:*     
LISTEN      0      100                                ::1:25                                 :::*     
LISTEN      0      128                                 :::22                                 :::*     

  • 创建主机组
    zabbix部署_第7张图片
    zabbix部署_第8张图片
  • 创建主机
    主机名和配置文件里hostname一致,ip地址为客户端ip
    zabbix部署_第9张图片
    在这里插入图片描述
  • 模板使用
    在主机里添加模板,选择完后要添加才生效
    zabbix部署_第10张图片
    在这里插入图片描述
    添加模板后有监控项
    zabbix已启用
    zabbix部署_第11张图片
    创建模板
    zabbix部署_第12张图片
  • 链接的模板
    zabbix部署_第13张图片
    zabbix部署_第14张图片
  • 更改模板,可以在链接的模板上新加触发器
    将大小改为200M
    zabbix部署_第15张图片

5.监控项和触发器

zabbix中监控项仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,“触发器"就用于为监控项所收集的数据定义阈值,每一个触发器仅能管理至一个监控项,但是可以为一个监控项同时使用多个触发器;意思就是,为一个监控项定义多个具有不同阈值的触发器,可以实现不同级别的报警。一个触发器由一个表达式构成,它定义了监控项所采集的数据的一个值,一旦某次采集的数据超出了触发器定义的值,触发器状态将会转为"problem”(问题);而当采取的数据再次回归至合理的范围内时,其状态将重新返回到"OK"
创建监控项

  • 创建监控项有两种方法:
    1、配置—-主机—-选择要创建监控项的主机—–监控项—–创建监控项
    2、配置—–模板—选择要创建监控项的模板——监控项—–创建监控项
    配置完成后点击更新
    zabbix部署_第16张图片
    在这里插入图片描述
    创建触发器
    1、配置—-主机—-选择要创建触发器的主机—–触发器—–创建触发器
    2、配置—–模板—选择要创建触发器的模板——触发器—–创建触发器
    选择刚刚创建的监控项和选择需要的功能
    zabbix部署_第17张图片
    zabbix部署_第18张图片
    在这里插入图片描述
    测试,更改文件查看是否警告
    在这里插入图片描述

5.1监控进程

通过脚本监控进程

[root@xj ~]# vim /usr/local/etc/zabbix_agentd.conf  --更改配置文件
UnsafeUserParameters=1
...
UserParameter=jiankong_mysqld,/test/jiankong_process.sh mysqld
[root@xj test]# cat jiankong_process.sh 
#!/bin/bash
X=$(ps -ef |egrep -v "grep|$0"|grep $1|wc -l)
if [ $X -eq 0 ];then
	echo 1
else
	echo 0
fi
[root@xj ~]#pkill zabbix
[root@xj ~]#zabbix_agentd

把键值key添加到监控项中
zabbix部署_第19张图片
创建触发器,1为进程没开启
zabbix部署_第20张图片
测试关闭mysqld服务,出现问题
在这里插入图片描述
开启服务,问题解决
在这里插入图片描述

5.3监控日志

从官网下载log.py文件
官网

  • log.py
    作用:检查日志文件中是否有指定的关键字
    第一个参数为日志文件名(必须有,相对路径、绝对路径均可)
    第二个参数为seek position文件的路径(可选项,若不设置则默认为/tmp/logseek文件。相对路径、绝对路径均可)
    第三个参数为搜索关键字,默认为 Error
    可以只用第一个参数或者全用,不能只用其中的两个参数
    zabbix部署_第21张图片
    更改配置文件
[root@xj ~]# vim /usr/local/etc/zabbix_agentd.conf
...
UserParameter=jiankong_log_apache, python /test/log.py /var/log/messages
[root@xj ~]#pkill zabbix
[root@xj ~]#zabbix_agentd

创建监控项
zabbix部署_第22张图片
创建触发项
zabbix部署_第23张图片
测试,往日志里加error
在这里插入图片描述
指定关键字

[root@xj ~]# vim /usr/local/etc/zabbix_agentd.conf
...
UserParameter=jiankong_log_apache, python /test/log.py /var/log/messages   /opt/xxx(路径)   xj(关键词)

在这里插入图片描述

5.4 邮件监控

链接

  • 邮件监控的两种情况:

  • 1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:[email protected]),只能发送,不能接收外部邮件。

  • 2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:[email protected]),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。

配置邮件监控-服务器

[root@xxx ~]# systemctl stop postfix  --停止系统邮箱服务
[root@xxx ~]# systemctl disable  postfix
rm '/etc/systemd/system/multi-user.target.wants/postfix.service'
[root@xxx ~]# yum -y install mailx   --安装邮箱工具
....
更改配置文件
[root@xxx ~]# vim /etc/mail.rc 
set [email protected] --发送的邮箱
sey smtp=smtp.163.com --邮箱服务器地址
set [email protected] --认证用户
set smtp-auth-password=xj1998  (邮箱密码或者授权码)
set smtp-auth=login  --认证 登录
手动测试发送邮件
[root@xxx ~]# echo 'zabbix xj mail'|mail -s 'zabbix' [email protected]

zabbix部署_第24张图片
创建报警媒介内型
管理 -报警媒介类型-创建媒介类型
zabbix部署_第25张图片
在用户添加报警媒介
zabbix部署_第26张图片
zabbix部署_第27张图片
zabbix部署_第28张图片
更改完成后点更新

维护-动作–创建动作(触发器)
zabbix部署_第29张图片
zabbix部署_第30张图片
动作–操作
zabbix部署_第31张图片
点击新的
zabbix部署_第32张图片
选择完成后点击添加

问题恢复后发送邮件确认
恢复操作 点击新的
zabbix部署_第33张图片
zabbix部署_第34张图片
配置邮箱配置文件

[root@xxx ~]# vim /etc/mail.rc 
set [email protected]  --发件人邮箱地址
set smtp=smtp.163.com  --邮箱服务器地址
set [email protected]  --发件人邮箱地址
set smtp-auth-password=xj1998  --密码或者授权码
set smtp-auth=login 

添加zabbix邮件发送脚本

[root@xxx ~]# vim /usr/local/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/etc/scripts.mail  --更改脚本默认的位置
[root@xxx ~]# mkdir /usr/local/etc/scripts.mail
[root@xxx ~]# vim /usr/local/etc/scripts.mail/mail.sh
[root@xxx ~]# cat /usr/local/etc/scripts.mail/mail.sh
#!/bin/bash
echo "$3" |mail -s "$2" $1
[root@xxx scripts.mail]# chmod +x mail.sh 
[root@xxx scripts.mail]# cd /usr/local/etc/
[root@xxx etc]# chown -R zabbix.zabbix scripts.mail/   --将脚本目录属主改为zabbix
[root@xxx etc]# ll scripts.mail/ -d
drwxr-xr-x. 2 zabbix zabbix 20 2月  22 22:25 scripts.mail/
[root@xxx etc]# ll scripts.mail/ 
总用量 4
-rwxr-xr-x. 1 zabbix zabbix 43 2月  22 22:25 mail.sh
重启zabbix服务
[root@xxx ~]# pkill zabbix
[root@xxx ~]# zabbix_server 
[root@xxx ~]# zabbix_agentd 
测试脚本,临时切换到zabbix用户测试
[root@xxx ~]# su - zabbix -s /bin/bash
上一次登录:五 2月 22 22:37:40 CST 2019pts/1 上
su: 警告:无法更改到 /home/zabbix 目录: 没有那个文件或目录

-bash-4.2$ /usr/local/etc/scripts.mail/mail.sh [email protected] "sss" "sss"

zabbix部署_第35张图片
测试脚本自动监控文件
zabbix部署_第36张图片
zabbix部署_第37张图片
zabbix部署_第38张图片

你可能感兴趣的:(zabbix部署)