zabbix监控搭建,钉钉告警

snmp协议:简单网络管理协议

zabbix实验规划:

图形1                zabbix server

字符1                zabbix proxy

字符2                被监控服务器一 by server

字符3                       被监控服务器二 by proxy

字符4                        被zabbix server 或 proxy 自动发现,自动监控

1、zbblix服务器

1.1、基础网络环境配置

$cd /etc/yum.repos.d/

$mv CentOS.Media.repo back

$mv back/CentOS.Base.repo  ./

$yum clean all

1.2、安装所需软件及依赖

$ yum -y install net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc net-tools mariadb mariadb-server

1.3、启动mariadb数据库

$ systemctl enable mariadb

$ systemctl start mariadb

### 安装zabbix服务器端

2、安装zbbix服务器端

2.1. 下载并安装zabbix仓库,并安装zabbix服务器端和客户端

   $ rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

   $ yum -y install zabbix-server-mysql zabbix-agent

   #切记不要安装epel源,会和zabbix源造成冲突。

2.2. 安装并修改zabbix frontend仓库,然后安装zabbix前端软件包

   $ yum -y install centos-release-scl

   $ vim /etc/yum.repos.d/zabbix.repo

   [zabbix-frontend]

   ...

   enabled=1

   …

   $ yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl

2.3. 创建数据库,授权指定用户管理数据库

   $ mysql -uroot

   MariaDB [(none)]> create database zabbix default character set utf8 collate utf8_bin;

   MariaDB [(none)]> grant all on zabbix.* to "zabbix"@"localhost" identified by "123456";

   MariaDB [(none)]> grant all on zabbix.* to "zabbix"@"%" identified by "123456";                #选做

  

   $ cd /usr/share/doc/zabbix-server-mysql-5.0.39/

   $ zcat create.sql.gz | mysql -uroot zabbix

   #将zabbix数据库文件导入到mariadb数据库中,或用gunzip  create.sql.gz   解压,再导入zabbix库

$mysql

$use  abbix;

$show tables;

2.4. 修改zabbix server 配置文件,教zabbix连接数据库

   $ vim /etc/zabbix/zabbix_server.conf

   DBHost=localhost

   DBName=zabbix

   DBUser=zabbix

   DBPassword=123456

2.5. 编辑PHP配置解析配置

   $ cd /etc/opt/rh/rh-php72/php-fpm.d/

   $ vim zabbix.conf

   php_value[date.timezone] = Asia/Shanghai

2.6. 启动httpd等服务,并设置开机自启

$ systemctl enable httpd zabbix-server zabbix-agent rh-php72-php-fpm

$ systemctl start httpd zabbix-server zabbix-agent rh-php72-php-fpm

2.7使用浏览器访问:http://IP/zabbix 安装并配置zabbix web界面

根据提示操作

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

2.8中文乱码解决办法

$在Windows上下载模版移动到linux里,点击Windows中的控制面板,进入下列页面

$点击类别,大图标进入下列页面

$点击字体,进入下列页面,选择一个字体复制粘贴到桌面,然后导入linux。

$ cd /usr/share/fonts/dejavu

$mv simsun.ttc DejaVuSans.ttf

3. 安装zabbix客户端-Linux端

3.1. 配置客户端软件仓库

 

  $cd /etc/yum.repos.d/

  $mv CentOS-Media.repo back

  $mv back/CentOS-Base.repo  ./

  $yum clean all

  $ rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

3.2. 安装客户端软件

   $ yum -y install zabbix-agent

3.3. 修改zabbix agent配置文件

   $ vim /etc/zabbix/zabbix_agentd.conf

   server=192.168.152.10               #填写zabbix主服务器的IP,主动模式连接

   ServerActive=192.168.152,10    #填写zabbix主服务器的IP,被动模式连接

3.4. 启动zabbix agent服务

   $ systemctl enable zabbix-agent

   $ systemctl start zabbix-agent

3.5. web管理页面添加客户端监控

   1、点击配置——主机——创建主机

  

  2、填写主机名称,建议写成需要被监控的IP地址,可见名称随意,群组随意,可以选择,客户端:填写IP;该页面填写好后,点击左上方的模版选项,选择一个需要监控的模版,选择好后点击添加。

 5. 安装zabbbix proxy代理

5.1. 配置代理服务器软件仓库并安装相关软件

  

   $cd /etc/yum.repos.d/

   $mv CentOS-Media.repo back

   $mv back/CentOS-Base.repo  ./

   $yum clean all

   $ rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

   $ yum -y install zabbix-proxy-mysql mariadb mariadb-server

   #切记不要安装epel源,会和zabbix源造成冲突。

2. 配置mariadb数据库

   $ systemctl enable mariadb

   $ systemctl start mariadb

   $  mysql

   MariaDB [(none)]> create database zabbix_proxy default character set utf8 collate utf8_bin;

   MariaDB [(none)]> grant all on zabbix_proxy.* to "zabbix"@"localhost" identified by "123456";

  

   $ cd /usr/share/doc/zabbix-proxy-mysql-5.0.39/

   $ zcat schema.sql.gz | mysql -uroot  zabbix_proxy

   #将zabbix proxy数据库文件导入到mariadb数据库中

   $mysql

   $use  abbix_proxy;

   $show tables;

3. 修改zabbix proxy配置文件,并完成启动和自启动

   $ vim /etc/zabbix/zabbix_proxy.conf

   Server=192.168.152.10

   ServerPort=10051

   Hostname=Zabbix proxy

   ListenPort=10051

   DBHost=localhost

   DBName=zabbix_proxy

   DBUser=zabbix

   DBPassword=123456

   DBPort=3306

   #注意:配置文件中Hostname的名称非常重要,确定好之后不要随便修改

   $ systemctl start zabbix-proxy

   $ systemctl enable zabbix-proxy

   $netstat -anpt 

4. 登录需要被zabbix_prosy监控的客户端,修改zabbix agent使用zabbix proxy监控,前提是被监控的主机已经安装好zabbix agent工具

   $ vim /etc/zabbix/zabbix_agentd.conf

   server=192.168.152.11                  #zabbix proxy IP

   ServerActive=192.168.152.11       #zabbix proxy IP

  

   $ systemctl enable zabbix-agent

   $ systemctl start zabbix-agent

   #要求zabbix agent将数据发往zabbix proxy进行保存处理

5. web管理界面添加代理,并设置zabbix agent指向zabbix proxy

  

添加代理监控的主机,监控方式为代理程序监控。

注意:每次操作完之后都要点击更新才会生效,最后重启zabbix server端,变更数据源为zabbix proxy

 

 

二、报警

1、网页页面报警

1、用户设置——正在发送消息——前端信息中——更新

2、增加对第一台-12机器的apache进行监控——配置——主机——第一台-12机器——模版——选择新的模版Appllcations——APP Apache  by Zbbix agent——更新——因为12机器没安装apache,所以一会会报警。

2. 发送邮件报警

1. 选择Email作为报警媒介

2. 设置Email报警媒介相关参数

           邮箱服务器地址:smtp.163.com

发件:

账号:wfy_wyf_001@163.com

密码:19990916wyf@                        #通过官网网页登录的密码

授权码:i        #用来第三方工具登录邮箱

收件:

账号:xbz_002@126.com

密码:xbz002

   2.1. 获取邮件发送端的第三方登陆授权密码

     

   2.2. 将参数填写到Email报警媒介中

填写信息,密码填写的是上方申请的授权码。

   

   2.3. 配置完成后测试是否能正常发送邮件

    

   

     

3. 将报警媒介添加到指定监控项的动作中

  

   添加动作时,注意选用触发器示警度,然后选择大于等于某警告级别以上即可。

  

   设置符合触发机制的操作行为:发现问题时发送的信息

   Problem: {EVENT.NAME}

  

   Problem started at {EVENT.TIME} on {EVENT.DATE}

   Problem name: {EVENT.NAME}

   Host: {HOST.NAME}

   Severity: {EVENT.SEVERITY}

   Operational data: {EVENT.OPDATA}

   Original problem ID: {EVENT.ID}

   {TRIGGER.URL}

   设置符合触发机制的操作行为:问题恢复时发送的信息

   Resolved in {EVENT.DURATION}: {EVENT.NAME}

  

   Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}

   Problem name: {EVENT.NAME}

   Problem duration: {EVENT.DURATION}

   Host: {HOST.NAME}

   Severity: {EVENT.SEVERITY}

   Original problem ID: {EVENT.ID}

   {TRIGGER.URL}

4. 配置用户参数,设置收件人信息

5. 制造报警,检查报警是否正常触发动作,邮件是否发送

3. 发送钉钉报警

1. 登陆钉钉在群里创建机器人生成api接口地址

 

2. 编写钉钉信息发送脚本,设置钉钉报警媒介

   $ cd /usr/lib/zabbix/alertscripts

   $ vim dingding.sh

   #!/bin/bash

   to=$1

   subject=$2

   text=$3

   curl 'https://oapi.dingtalk.com/robot/send?access_token=3581fa0977a8415fccfb9b27df3924cb31f059a67e08e8a61c9bf222cf7691b0' \

   -H 'Content-Type: application/json' \

   -d '

   {"msgtype": "text",

   "text": {

   "content": "'"$text"'"

   },

   "at":{

   "atMobiles": [ "'"$to"'" ],

   "isAtAll": false

   }

   }'

  

   $ chmod +x dingding.sh

  新创建一个dingding报警媒介:如下图所示

 

   三个参数

   {ALERT.SENDTO}

   {ALERT.SUBJECT}

   {ALERT.MESSAGE}

   管理——用户——Admin——报警媒介——添加:填写类型及收件人

3. 设置动作条件触发后的行为:重新添加一个专门发送给钉钉的警告(问题警告、故障恢复)

 

 

4. 显示报警信息

  

  

## 四、高级功能

### 1. 聚合图形

直接在web界面即可完成聚合图形的设置,见下图

### 2. 自动发现

自动发现主要应对多服务器监控需求,但是有前提条件,需要在每个被监控主机提前安装好zabbix agent才能实现。

添加一台新的主机,安装zabbix agent程序,修改配置文件并启动,等待被发现即自动添加即可。新主机的配置文件IP指向zabbix-server端

 

3. 创建自定义监控模板-实现nginx流量监控

实验前提:已实现对Linux主机的基础监控,Nginx流量监控会以新监控模板的方式加入到现有主机中。

1. 在被监控主机安装部署Nginx服务,并开启状态监控模块

   $ yum -y install gcc pcre-devel zlib-devel

   $ wget http://nginx.org/download/nginx-1.22.1.tar.gz

   $ tar -xf nginx-1.22.1.tar.gz

   $ cd nginx-1.22.1/

   $ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module && make && make install

   #完成Nginx的安装及统计模块的安装

 

   $ vim /usr/local/nginx/conf/nginx.conf

   server {

           ... ...

           location /tongji {

                   stub_status on;

           }

   }

   #修改配置文件开启统计模块

  

   $ ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

   $ nginx

   #启动nginx,并通过浏览器测试统计模块是否生效:http://ip/tongji

  

2. 在zabbix agent中添加Nginx数据采集脚本实现流量数据收集,并添加到自定义监控中

   $ vim /etc/zabbix/zabbix_agentd.d/check_nginx.sh

#!/bin/bash        

HOST="127.0.0.1"

PORT="80"

# 检测 nginx 进程是否存在

function ping {

           /sbin/pidof nginx | wc -l

}

   # 检测 nginx 性能

   function active {

           /usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| grep 'Active' | awk '{print $NF}'

   }        

   function reading {

           /usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| grep 'Reading' | awk '{print $2}'

   }

   function writing {

           /usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| grep 'Writing' | awk '{print $4}'

   }

   function waiting {

           /usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'

   }

   function accepts {

           /usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| awk NR==3 | awk '{print $1}'

   }

   function handled {

           /usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| awk NR==3 | awk '{print $2}'

   }

   function requests {

           /usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| awk NR==3 | awk '{print $3}'

   }

   # 执行function

   $1

   #-------------------------------END------------------------------------------------

  

   $ cd /etc/zabbix/zabbix_agentd.d/

   $ chmod +x check_nginx.sh

   $ ./check_nginx.sh ping

   $ ./check_nginx.sh requests

   #编写脚本,设置执行权限,测试关键词数据过滤是否有效

  

   $ vim /etc/zabbix/zabbix_agentd.conf    #在最后一行添加下面一行

   UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/check_nginx.sh $1

   $ systemctl restart zabbix-agent

   #将设置好的脚本添加到zabbix agent配置文件中,设置为自定义监控

3. 在zabbix server端安装专门的数据收集工具,将zabbix agent上收集的nginx流量数据拉取到本地

   $ yum -y install zabbix-get

   $ zabbix_get -s zabbix-agent-IP -k 'nginx.status[ping]'

   $ zabbix_get -s zabbix-agent-IP -k 'nginx.status[requests]'

   #使用zabbix server端测试能否连接到zabbix agent端设置的自定义监控,并正常获取数据

4. 在zabbix server端的web管理界面中添加Nginx数据采集模板,完成自动数据采集(应用集、监控项、触发器、图形)(详见以下截图)

 

  

   选中自己添加的 nginx 模板,选择上方的应用集按钮,创建一个叫 nginx 的应用集(详见以下截图)

   选择上方的监控项,点击创建监控项,名称:nginx ping 和 nginx requests  分两次完成创建(详见以下截图)

   名称:nginx ping

   键值:nginx.status[ping]

   应用集:nginx

  

   名称:nginx requests

   键值:nginx.status[requests]

   应用集:nginx

   选择上方的触发器,然后点击创建触发器(详见以下截图)

   名称:nginx is down

   表达式:添加自己定义的ping的监控项[ping]

   #还可以仿照继续添加requests的触发器

  

 

 

  

 

   选中上方的图形,点击创建图形(详见以下截图)

   名称:nginx requests

   监控项:选择自己已经创建好了的监控项[requests]

  

5. 最终将自己定义的监控项添加到已监控的主机中即可

   在配置中找到已经实现监控的主机,添加自定义的nginx监控模板即可(详见以下截图)

  

添加压力进行测试 while true;do curl 192.168.252.104;done

  • 23
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值