zabbix监控nginx

zabbix是什么

web界面提供的一种可视化的监控服务软件

以分布式的方式系统监控以及网络监控,硬件监控等等开源的软件

zabbix的架构

1、c/s模式 客户端和服务端,zabbix server服务端 zabbix agent 客户端

2、通过B/S B是浏览器 S服务端,通过浏览器可以直接访问服务器数据

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监控nginx_第1张图片

被监控的对象

1、Agent 服务器,代理的方式,收集数据

2、SNMP 协议,和被监控对象进行通信

3、JMX 管理java的扩展程序和扩展应用

4、IPMI 监控系统的硬件信息

5、VMware 监控虚拟机的运行情况

6、APP nginx、httpd、mysql

zabbix-server 所有的监控收集数据都在主服务,主服务器监控和告警
zabbix-database 保存数据
zabbix-web 可视化操作界面
zabbix实验部署

两台虚拟机

20.0.0.11 服务端

20.0.0.12 客户端

关闭防火墙和安全机制

获取 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

yum install -y zabbix-server-mysql zabbix-agent
zabbix-server-mysql
执行安装zabbix之后,使用mysql作为数据库后端
zabbix-agent
把主服务器加入监控当中

yum install -y centos-release-scl 
centos-release-scl
SCL 基于rehhat centos系统软件安装使用的一种机制,可以是一个系统运行一个进程的不同版本,而且不会发生冲突
解决zabbix与其他web组件的兼容性

开启安装源
vim zabbix.repo
11行
enabled=1

安装web组件和Apache组件
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
可以安装zabbix的依赖环境PHP,以及mysql依赖环境,可以安装多个版本
安装所有的Apache组件(web组件),可以安装多个版本
Apache提供了所有的可兼容性的进程,确保zabbix的前端组件能够

安装数据库
yum -y install zabbix-mariadb.service
重启服务
systemctl restart mariadb.service
开机自启
systemctl enable mariadb.service

重置数据库
mysql_secure_installlation
都是y

登录mysql
mysql -uroot -p123456

创建zabbix库
create database zabbix character set utf8 collate utf8_bin;
查看库
show databases;
给权限
grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
刷新权限
flush privieges;

把数据导入zabbix-server
查看mysql的sql文件
rpm -ql zabbix-server-mysql 

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

vim /etc/zabbix/zabbix_server.conf
124行
DBPassword=zabbix

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
25行
php_value[date.timezone] = Asia/Shanghai	

启动 zabbix 相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-fpm

网页访问20.0.0.11/zabbix

server服务端端口 10050
Agent监控端端口 10051

默认的账号密码
Admin
zabbix

点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。



解决 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

修改  配置文件
vim /etc/zabbix/zabbix_agentd.conf
80行
Server=20.0.0.11
125行
ServerActive=20.0.0.11
136行
Hostname=host2
启动 zabbix-agentd
systemctl start zabbix-agentd
systemctl enable zabbix-agentd

客户端和服务端必须要做时间同步

客户端
安装 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
80行
Server=20.0.0.11
125行
ServerActive=20.0.0.11
136行
Hostname=host4
启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2


netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      43654/zabbix_agent2 
在服务端验证 zabbix-agent2 的连通性
yum install -y zabbix-get
zabbix_get -s '20.0.0.13' -p 10050 -k 'agent.ping'
zabbix_get -s '20.0.0.13' -p 10050 -k 'system.hostname'

zabbix监控nginx_第2张图片

zabbix监控nginx_第3张图片

添加客户端主机(点击创建)

zabbix监控nginx_第4张图片

zabbix监控nginx_第5张图片

zabbix监控nginx_第6张图片

添加主机完毕

zabbix监控nginx_第7张图片

自定义脚本监控

客户端
who | wc -l

cd /etc/zabbix/zabbix_agent2.d/

vim UserParameter_login.conf
UserParameter=login.user,who|wc -l

systemctl restart zabbix-agent2

服务端验证新建的监控项
zabbix_get -s '20.0.0.13' -p 10050 -k 'login.user'

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

1、创建模板

zabbix监控nginx_第8张图片

2、创建应用集

zabbix监控nginx_第9张图片

3、创建监控项

zabbix监控nginx_第10张图片

4、创建触发器

zabbix监控nginx_第11张图片

5、创建图形

zabbix监控nginx_第12张图片

主机添加模版

zabbix监控nginx_第13张图片

设置邮件报警

zabbix监控nginx_第14张图片

密码这一项是打开qq邮箱--->设置---账号---打开这个POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务---生成授权码----复制授权码

zabbix监控nginx_第15张图片

菜单栏用户设置----报警媒介---添加

zabbix监控nginx_第16张图片

菜单栏配置---动作

zabbix监控nginx_第17张图片

监控nginx的状态
客户端
修改nginx的配置文件
cd /etc/nginx/conf.d
vim default.conf

server {
   ....
        
    location /nginx_status {
       stub_status on;
       access_log off;
  }
......

nginx -t 
systemctl start nginx

vim test1_nginx.conf
UserParameter=nginx.status[*],/opt/host4-nginx.sh $1

cd /opt
vim /host4-nginx.sh

#!/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

服务端测试
zabbix_get -s '20.0.0.13' -p 10050 -k nginx.status[check]

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

1、创建模版

zabbix监控nginx_第18张图片

2、创建应用集

zabbix监控nginx_第19张图片

3、创建监控项

zabbix监控nginx_第20张图片

4、创建触发器

zabbix监控nginx_第21张图片

5、创建图形

zabbix监控nginx_第22张图片

主机和模版关联起来

zabbix监控nginx_第23张图片

关闭nginx服务

这边就会显示信息

你可能感兴趣的:(zabbix)