Zabbix监控

Zabbix监控

:非常成熟的监控日志

运维人员一定要会监控服务的状态,网站的流量,远程服务的运行状态

保证整个集群的工作正常。

Zabbix是什么:

Zabbix是是个基于web界面提供的可视化的监控服务软件,以分布式的方式系统监控以及网络监控,硬件监控等等开源的软件

Zabbix的组织建构:

  1. c/s模式:客户端和服务端,zabbix服务端,zabbix agent客户端
  2. 通过b/s模式:b浏览器 s服务端,通过浏览器可以直接访问服务器数据

Zabbix server的作用:通过一系列的组件SNMP,zabbix agent ping通过端口远程的监控客户端的数据,把数据收集到服务端进行展示,以及提供用户分析的页面(web)

Zabbix agent:就是被监控的目标机器把需要收集到数据以及自定义的监控项数据,发送给zabbix server。

Zabbix的组件程序:

  1. Zabbix server的作用:通过一系列的组件SNMP,zabbix agent ping通过端口远程的监控客户端的数据,把数据收集到服务端进行展示,以及提供用户分析的页面(web)
  2. Zabbix agent:就是被监控的目标机器,把需要收集到数据以及自定义的监控项数据,发送给zabbix server。
  3. Zabbix_proxy:代理服务器,是安装在监控的目标系统上的软件组件,可以代替zabbix_server收集数据,然后由代理软件传送给服端zabbix-server.减轻主服务器的压力
  4. zabbix_get:可选组件,提供命令行的工具(zabbix的命令行)
  5. Zabbix_sender:可选组件,提供命令行工具,可以将自定义数据发送到zabbix服务器,用于不直接由zabbix代理监控的数据或者从脚本来的数据,比较方便的

Zabbix的工作方式:

部署zabbix:

20.0.0.51 server 服务端

20.0.0.52 agent 客户端

---------- 部署 zabbix 服务端 ----------

zabbix-server 内存至少 2G,推荐 4G

//获取 zabbix 的下载源

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

//更换 zabbix.repo 为阿里源

cd /etc/yum.repos.d

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo

清缓存和建立元数据

yum clean all && yum makecache

Zabbix-server-mysql

指定安装zabbix之后,使用mysql作为数据库后端

Zabbix-agent

把主服务加入到目标当中

yum -y install centos-release-scl

scl基于红帽centos系统软件安装使用的一种机制,可以是一个系统运行一个进程的不同版本,而且不会发生冲突

解决Zabbix与其他web组件的兼容性。

//修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下

vim zabbix.repo

安装mysql的web组件和Apache组件

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

Zabbix-web-mysql-scl

可以安装zabbix的依赖环境PHP,以及mysql依赖环境,可以安装多个版本

Zabbix-Apache-conf-scl

安装所有Apache组件(web组件),可以安装多个版本

Apache提供了所有的可兼容性的进程,确保zabbix前端工作页面正常

//安装 zabbix 所需的数据库

yum install -y mariadb-server mariadb

systemctl enable --now mariadb

给数据库初始化

mysql_secure_installation         #初始化数据库,并设置密码,如 123456

//添加数据库用户,以及 zabbix 所需的数据库信息

mysql -u root -p123456mysql -u root -p123456

CREATE DATABASE zabbix character set utf8 collate utf8_bin;

创建一个名为 "zabbix" 的 MySQL 数据库,字符集为 UTF-8,排序规则为 utf8_bin

GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';

flush privileges;

//导入数据库信息

rpm -ql zabbix-server-mysql #查询 sql 文件的位置

zcat /usr/share/doc/zabbix-server-mysql-5.0.40/create.sql.gz | mysql -uroot -p123456 zabbix

#导入 Zabbix 监控系统所需的 MySQL 数据库架构

//修改 zabbix server 配置文件,修改数据库的密码

vim /etc/zabbix/zabbix_server.conf

//修改 zabbix 的 php 配置文件

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

一次性启动所有组件

//启动 zabbix 相关服务

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

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

浏览器访问:http://20.0.0.56/zabbix

Zabbix:

Server端口:10050 服务端端口

Agent:10051 监控端端口

切换成中文

解决 zabbix-server Web页面中文乱码问题

yum install -y wqy-microhei-fonts

\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

---------- 部署 zabbix 客户端 ----------

zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。

zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。

//服务端和客户端都配置时间同步(两边都做)

yum install -y ntpdate

ntpdate -u ntp.aliyun.com

//设置 zabbix 的下载源,安装 zabbix-agent2

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

cd /etc/yum.repos.d

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

yum clean all && yum makecache

yum install -y zabbix-agent2

//修改 agent2 配置文件

vim /etc/zabbix/zabbix_agent2.conf

//启动 zabbix-agent2

systemctl start zabbix-agent2

systemctl restart zabbix-agent2

systemctl enable zabbix-agent2

netstat -natp | grep zabbix

在服务端验证 zabbix-agent2 的连通性

yum install -y zabbix-get  #安装 zabbix 主动获取数据的命令

zabbix_get -s '20.0.0.57' -p 10050 -k 'agent.ping'

zabbix_get -s '20.0.0.57' -p 10050 -k 'system.hostname'

如何在监控当中添加监控的主机

配置》主机》创建主机

就可以实现监控了

如何自定义监控内容:

例:

监控服务器的登录节点,不能超过三个

在工作当中主要靠脚本

监控5个终端

vim /etc/zabbix/zabbix_agent2.conf

#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中

268 Include=/etc/zabbix/zabbix_agent2.d/*.conf

#自定义监控项的格式如下

291 # Format: UserParameter=<key>,<shell command>

位置监控项的位置

cd /etc/zabbix/zabbix_agent2.d/

vim UserParameter_login.conf

UserParameter=login.user,who|wc -l

systemctl restart zabbix-agent2

Wang6在服务端验证新建的监控项

zabbix_get -s '20.0.0.57' -p 10050 -k 'login.user'

//在 Web 页面创建自定义监控项模板

创建模版

找到模板

创建应用集

创建监控项

测试一下

创建触发器

创建图形

主机和模版进行关联

查看

图形查看

关闭几台虚拟机(只剩两台)

查看

如何添加监控报警的控制邮件

密码获取

测试

监控告警,邮件结合

最后一步

模拟报警让其验证

如和通过脚本监控服务的状态

监控nginx

步骤一:修改nginx的配置文件

如何脚本定义Nginx

编写Nginx监控脚本

#!/bin/bash

#Description:Automated monitoring nginx performance and process nginx_status scripts

HOST="localhost"

PORT=80

stub_status="stub_status"

NGINX_COMMAND=$1

nginx_check() {

    if [ -f /sbin/pidof ]; then

       /sbin/pidof nginx | wc -w

    else

       ps aux | grep -v "grep" | grep -c "nginx:"

    fi

}

nginx_active(){

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

}

nginx_reading(){

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

}

nginx_writing(){

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

}

nginx_waiting(){

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

}

nginx_accepts(){

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

}

nginx_handled(){

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

}

nginx_requests(){

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

}

case $NGINX_COMMAND in

    check)

        nginx_check

        ;;

    active)

        nginx_active

        ;;

    reading)

        nginx_reading

        ;;

    writing)

        nginx_writing

        ;;

    waiting)

        nginx_waiting

        ;;

    accepts)

        nginx_accepts

        ;;

    handled)

        nginx_handled

        ;;

    requests)

        nginx_requests

        ;;

    *)

        echo $"USAGE:$0 {check|active|reading|writing|waiting|accepts|handled|requests}"

esac

Rabbit脚本

服务端测试

创建模板

 点击左边菜单栏【配置】中的【模板】,点击【创建模板】

【模板名称】设置成 Template Nginx Status

【可见的名称】设置成 Template Nginx Status

【群组】选择 Template

【描述】可自定义

点击 【添加】,此时就可在【链接的模板】中搜索到Template Nginx Status 了

创建应用集(用于管理监控项的)

 点击上方菜单栏【应用集】,点击【创建应用集】

【名称】设置成 Nginx Status

点击 【添加】

创建监控项

 点击上方菜单栏【监控项】,点击【创建监控项】

【名称】设置成 Nginx is running

【键值】设置成 nginx.status[check]            #键值必须要与自定义的监控项配置文件中设置的保持一致

【更新间隔】设置成 10s

【历史数据保留时长】Storage period    30d        #保留时间可自定义设置

点击 【添加】

创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

 点击上方菜单栏【触发器】,点击【创建触发器】

【名称】设置成 Nginx is down

【严重性】设置成 一般严重

【表达式】点击添加,【监控项】点击选择 Nginx is running,【功能】选择 last(),【结果】选择=0,点击 【插入】

点击 【添加】

创建图形

 点击上方菜单栏【图形】,点击【创建图形】

【名称】设置成 Nginx is running

【宽】、【高】可直接采用默认值

【监控项】点击添加勾选相关监控项 Nginx is running,【功能】选择 最大,其它可保持默认值

点击 【添加】

最后

将主机与模板关联起来(一个主机可以关联多个模板)

 点击左边菜单栏【配置】中的【主机】,点击你要关联的主机

点击上方菜单栏【模板】,【Link new tamplates】搜索 Nginx,选择 Template Nginx Status,点击【更新】

此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值