zabbix-agent安装及添加配置nginx,mysql及系统的监控

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

本文接上文 --zabbix3.0版本部署使用http://blog.51cto.com/superleedo/2070775

增加一台新的客户端机器 192.168.1.13


系统版本centos7最小化安装,配置好网络能访问外网,关闭防火墙,配置基础环境及java环境

网络自行配置

关闭防火墙

setenforce 0

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/enforcing/disabled/g' /etc/selinux/config


设置yum源

yum install wget -y

cd /etc/yum.repos.d/

wget http://mirrors.aliyun.com/repo/Centos-7.repo

wget http://mirrors.aliyun.com/repo/epel-7.repo

yum -y install epel-release

yum install net-tools -y

yum install tree -y

yum install lrzsz -y

yum install vim-enhanced -y


本机的zabbix-agent,nginx,mysql都采用yum方式安装


安装zabbix-agent

yum install -y unixODBC

rpm -Uvh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.3-1.el6.x86_64.rpm

修改配置

vim /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.12
ServerActive=192.168.1.12
Hostname=192.168.1.13
Include=/etc/zabbix/zabbix_agentd.d/


创建目录

cd /var/run/

mkdir zabbix

touch zabbix/zabbix_agentd.pid

chown zabbix.zabbix zabbix/ -R

chmod g+w zabbix/

cd /var/log/

mkdir zabbix

chown zabbix.zabbix zabbix/ -R


启动zabbix-agent

/etc/init.d/zabbix-agent start

用netstat -lnupt 查看 10050是否启动


安装nginx,mariadb

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

yum install -y nginx

systemctl start nginx


yum install mariadb* -y

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

mysql安装无法启动可能需要清理原有的内容

yum remove mysql* -y

yum remove mariadb* -y

find / -name "mariadb" -exec rm -rf {} \;

rm -f my.cnf.rpmsave

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

systemctl start mariadb



1
2
3
4
5
6
7
8
9
[root@zabbix-agent run] # netstat -lnupt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID /Program  name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2284 /mysqld         
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2340 /nginx : master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      983 /sshd            
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      2540 /zabbix_agentd  
tcp6       0      0 :::22                   :::*                    LISTEN      983 /sshd            
tcp6       0      0 :::10050                :::*                    LISTEN      2540 /zabbix_agentd



监控服务端界面接入1.13机器的系统状态监控


添加新主机

配置---主机---创建主机---添加

图片.png

选择添加 OS linux 模板,用来监控1.13机器的系统磁盘内存等


图片.png

在模板中添加完成后,在主机上也要点击添加,添加后生成的监控图如下

图片.png



问题解决:监控图的图例显示不正常,汉字注释无法正常显示


从windows下控制面板->字体->选择一种中文字库例如“楷体” 上传到zabbix服务器上


图片.png


将这个文件拷贝到zabbix服务端的数据目录的fonts目录下

[root@slave02 run]# ll /data/web/www.zabbix.com/fonts/
总用量 12252
-rw-r--r-- 1 zabbix zabbix   756072 5月  18 2016 DejaVuSans.ttf
-rw-r--r-- 1 zabbix zabbix 11785184 6月  11 2009 SIMKAI.ttf
接着修改配置文件

vim  /data/web/www.zabbix.com/include/locales.inc.php

下面两项的DejaVuSans修改为SIMKAI

define('ZBX_GRAPH_FONT_NAME',           'SIMKAI');

define('ZBX_FONT_NAME', 'SIMKAI');


修改完成后,zabbix监控图形中的中文字就不会出现乱码了!

图片.png





下面添加nginx监控

在客户端修改nginx配置

vim /etc/nginx/conf.d/default.conf

添加stub_status on

server {
    listen       80;
    server_name  localhost;
    location / {
    stub_status on;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
然后重启nginx

systemctl restart nginx

使用网页浏览 http://192.168.1.13:80/nginx_status,显示如下图则模块已打开

图片.png

在客户端编写脚本:nginx_status.sh,并将其放至/etc/zabbix/scripts 目录下,并添加执行权限
cd /etc/zabbix/

mkdir scripts

cd scripts/

vim nginx_status.sh

#!/bin/bash
HOST=192.168.1.13
PORT=80

function ping {  
    /sbin/pidof nginx | wc -l  

function active {
curl -s "http://HOST:PORT/nginx_status" | grep 'Active'| awk '{print NF}'  }  function reading {  curl -s "http://$HOST:$PORT/nginx_status" | grep 'Reading' |awk '{print $2}'  }  function writing {  curl -s "http://$HOST:$PORT/nginx_status" | grep 'Writing' | awk '{print $4}'  }  function waiting {  curl -s "http://$HOST:$PORT/nginx_status" | grep 'Waiting' | awk '{print $6}'  }  function accepts {  curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $1}'  }  function handled {  curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $2}'  }  function requests {  curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $3}'  }1

保存问件,添加执行权限

chmod 755 nginx_status.sh


然后,将自定义的 UserParameter 加入配置文件,然后重启 zabbix-agent

vim /etc/zabbix/zabbix_agentd.conf 

UserParameter=nginx.status[*],/etc/zabbix/scripts/nginx_status.sh $1


项目回到服务端,下载Template App Nginx  模板

http://www.ttlsa.com/wp-content/uploads/2015/10/zabbix_monitor_nginx_template_ttlsa_com.zip

解压后将其中的zbx_export_templates文件导入即可

图片.png

导入后即可使用nginx模板 添加到1.13

图片.png

图形查看监控状态

图片.png



添加,mysql监控

图片.png

添加后的mysql图形监控状态

图片.png


添加自定义服务监控
Simple checks 简单检查  通常用来检查远程未安装客户端的服务,被监控客户端无需安装 zabbix agent 客户端,zabbixserver 直接使用 simplechecks(简单检查) 来收集数据,用来检测远程服务器某端口是否在监听。


配置----主机----监控项----创建监控项---创建触发器

图片.png


图片.png


停止ftp服务后查看监控提示

图片.png

监控报警有提示,自定义监控成功。



mysql监控

结合上面已经使用的mysql模板,会生产相应的配置文件userparameter_mysql.conf

/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf


为数据库的root创建密码
$ mysqladmin -uroot password  "zabbix"

进入数据库  mysql -uroot -pzabbix

登录数据库,创建zabbix数据库及用户名和密码
mysql> create database zabbix default charset utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on *.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.03 sec)


mysql> grant all privileges on *.* to zabbix@'%' identified by 'zabbix';
Query OK, 0 rows affected (0.03 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


下面用我们自定义下mysql监控脚本 check_mysql.sh

cd /etc/zabbix/scripts/

vim check_mysql.sh  添加下面内容

#!/bin/bash
# 用户名
MYSQL_USER='zabbix'
# 密码
MYSQL_PWD='zabbix'
# 主机地址/IP
MYSQL_HOST='192.168.1.13'
# 端口
MYSQL_PORT='3306'
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -uMYSQLUSERp{MYSQL_PWD} -hMYSQLHOSTP{MYSQL_PORT}"
# 参数是否正确
if [ # -ne "1" ];then       echo "arg error!"   fi   # 获取数据  case1 in 
    Uptime) 
        result=`MYSQLCONNstatus|cutf2d":"|cutf1d"T"echoresult 
        ;; 
    Com_update) 
        result=`MYSQLCONNextendedstatus|grepw"Comupdate"|cutd"|"f3echoresult 
        ;; 
    Slow_queries) 
        result=`MYSQLCONNstatus|cutf5d":"|cutf1d"O"echoresult 
        ;; 
    Com_select) 
        result=`MYSQLCONNextendedstatus|grepw"Comselect"|cutd"|"f3echoresult 
                ;; 
    Com_rollback) 
        result=`MYSQLCONNextendedstatus|grepw"Comrollback"|cutd"|"f3echoresult 
                ;; 
    Questions) 
        result=`MYSQLCONNstatus|cutf4d":"|cutf1d"S"echoresult 
                ;; 
    Com_insert) 
        result=`MYSQLCONNextendedstatus|grepw"Cominsert"|cutd"|"f3echoresult 
                ;; 
    Com_delete) 
        result=`MYSQLCONNextendedstatus|grepw"Comdelete"|cutd"|"f3echoresult 
                ;; 
    Com_commit) 
        result=`MYSQLCONNextendedstatus|grepw"Comcommit"|cutd"|"f3echoresult 
                ;; 
    Bytes_sent) 
        result=`MYSQLCONNextendedstatus|grepw"Bytessent"|cutd"|"f3echoresult 
                ;; 
    Bytes_received) 
        result=`MYSQLCONNextendedstatus|grepw"Bytesreceived"|cutd"|"f3echoresult 
                ;; 
    Com_begin) 
        result=`MYSQLCONNextendedstatus|grepw"Combegin"|cutd"|"f3echoresult 
                ;; 
                        
        *) 
        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" 
        ;; 
esac

然后给文件加上执行权限

chmod 755 check_mysql.sh


下面修改配置userparameter_mysql.conf

vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

将配置修改成下面这样,注释掉原有的mysql.status和mysql.ping,添加自己定义的UserParameter

UserParameter=mysql.status[*],/etc/zabbix/scripts/check_mysql.sh $1
UserParameter=mysql.size[*],bash -c 'echo "select sum((case"3" in both|"") echo "data_length+index_length";; data|index) echo "3length";;free)echo"datafree";;esac))frominformationschema.tables([[ "1"="all"||!"1" ]] || echo " where table_schema=\"1\"")([[ "2"="all"||!"2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N'
UserParameter=mysql.ping,/usr/bin/netstat -ntpl |grep 3306|grep mysql|wc |awk '{print $1}'
UserParameter=mysql.version,mysql -V

执行 chmod +s /bin/netstat 防止 zabbix-server 远程调用失效

然后重启zabbix客户端

/etc/init.d/zabbix-agent stop

/etc/init.d/zabbix-agent start


在界面查看自定义的mysql监控项是否生效

图片.png

图片.png

显示已启用表示生效

可以到图形监控中查看mysql图形显示

图片.png


下面增加mysqlstatus的新图形



图片.png

图片.png


监控状态运行正常



本文先到这里,下文继续深化zabbix报警功能。














本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/2071393 ,如需转载请自行联系原作者




相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
143
分享
相关文章
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
231 90
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
121 30
【案例分享】中国通号卡斯柯公司:ZABBIX如何破解轨道交通监控难题
本文根据2023上海峰会上朱林贤的演讲整理,聚焦中国通号卡斯柯公司如何借助Zabbix实现轨道交通信号系统的智能化管理。作为中外合资企业,卡斯柯通过统一平台整合设备监控,大幅降低成本并提升灵活性,成功应用于国内外项目。文章探讨了传统监控系统的痛点、研发维护经验及国产化与开源技术挑战,为行业转型提供了宝贵启示。未来,开放协作将是推动轨道交通智能化发展的关键。
23 0
docker安装nginx,前端项目运行
通过上述步骤,你可以轻松地在Docker中部署Nginx并运行前端项目。这种方法不仅简化了部署流程,还确保了环境的一致性,提高了开发和运维的效率。确保按步骤操作,并根据项目的具体需求进行相应的配置调整。
304 25
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
72 23
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
74 22
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
84 25
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
42 0
使用 Zabbix 监控堆外应用
使用 Zabbix 监控堆外应用
78 9

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等