Zabbix监控服务基础

一、监控概述

1.1、监控的目的

报告系统运行状况

  1. 每一部分必须同时监控
  2. 内容包括吞吐量、反应时间、利用率等

提前发现问题

  1. 进行服务器新能调整前,知道调整什么
  2. 找出系统的瓶颈在什么地方

1.2、监控的资源类别

公开数据

  1. Web、FTP、SSH、数据库等应用服务
  2. TCP或UDP端口

私有数据

  1. CPU、内存、磁盘、网卡流量等使用信息
  2. 用户、进程等运行信息

1.3、Linux系统常用监控命令

ps
uptime
free
swapon -s
df -h
ifconfig
netstat
ss
traceroute
iostat

1.4、自动化监控系统软件

  • Cacti
    基于SNMP协议的监控软件,强大的绘图能力。
  • Nagios
    基于Agent监控,强大的状态检查与报警机制
    插件很多,自己写监控脚本潜入到Nagios非常方便
  • Zabbix
    基于多种监控机制,支持分布式监控

二、Zabbix基础

2.1、Zabbix简介

  • Zabbix是一个高度集成的监控方案
  • 可以实现企业级的开源分布式监控
  • Zabbix通过C/S模式采集监控数据
  • Zabbix通过B/S模式实现Web管理

2.2、监控服务器

  • 监控服务器可以通过SNMP或Agent采集数据
  • 数据可以写入MySQL、Oracle等数据库中
  • 服务器使用LNMP实现web前段的管理

2.3、被监控服务器

  • 被监控主机需要安装Agent
  • 常见的网络设备一般支持SNMP

三、Zabbix服务搭建

使用192.168.2.5做监控主机
使用192.168.2.100、2.101、2.102做被监控服务器

3.1、部署运行环境LNMP

3.1.1、安装nginx服务

[root@zabbix05 ~]# setenforce 0
[root@zabbix05 ~]# getenforce 
[root@zabbix05 ~]# firewall-cmd --set-default-zone=trusted 
[root@zabbix05 ~]# yum -y  install gcc  pcre-devel zlib-devel
[root@zabbix05 ~]# tar -zxf nginx-1.12.2.tar.gz 
[root@zabbix05 ~]# ls
[root@zabbix05 ~]# cd nginx-1.12.2/
[root@zabbix05 nginx-1.12.2]# ./configure 
[root@zabbix05 nginx-1.12.2]# make && make install
[root@zabbix05 nginx-1.12.2]# ls /usr/local/nginx/

3.1.2、修改nginx配置,使其支持PHP

[root@zabbix05 nginx-1.12.2]# vim +65 /usr/local/nginx/conf/nginx.conf
[root@zabbix05 nginx-1.12.2]# sed -n '65,70p' /usr/local/nginx/conf/nginx.conf
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;

3.1.3、启动服务

[root@zabbix05 nginx-1.12.2]# /usr/local/nginx/sbin/nginx  -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zabbix05 nginx-1.12.2]# /usr/local/nginx/sbin/nginx
[root@zabbix05 ~]# echo "/usr/local/nginx/sbin/nginx"  >> /etc/rc.local 
[root@zabbix05 ~]# chmod +x /etc/rc.local
[root@zabbix05 nginx-1.12.2]# netstat  -utnlp  | grep  80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4039/nginx: master  
[root@zabbix05 nginx-1.12.2]# 

3.1.4、安装php-fpm

[root@zabbix05 ~]# yum  -y install php-fpm
[root@zabbix05 ~]# systemctl  start php-fpm
[root@zabbix05 ~]# systemctl enable php-fpm.service
[root@zabbix05 ~]# netstat  -utnlp  | grep  9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      4079/php-fpm: maste 

3.1.5、安装MariaDB

[root@zabbix05 ~]# yum -y  install mariadb-server  mariadb  mariadb-devel
[root@zabbix05 ~]# systemctl enable mariadb.service
[root@zabbix05 ~]# netstat  -utnlp  | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      4366/mysqld     
[root@zabbix05 ~]# ls /var/lib/mysql/
aria_log.00000001  ibdata1      ib_logfile1  mysql.sock          test
aria_log_control   ib_logfile0  mysql        performance_schema

3.1.6、弄个PHP网页

[root@zabbix05 ~]# vim  /usr/local/nginx/html/test.ph
<?php
 echo  "hello world";
?>

[root@zabbix05 ~]# curl http://127.0.0.1/test.php
hello world

3.2、部署Zabbix

3.2.1、安装Zabbix软件

[root@zabbix05 ~]# yum -y install  net-snmp-devel curl-devel    libevent-devel
[root@zabbix05 ~]# ls
[root@zabbix05 ~]# tar -zxf zabbix-3.4.4.tar.gz 
[root@zabbix05 ~]# cd zabbix-3.4.4/
[root@zabbix05 zabbix-3.4.4]# ./configure  \
--enable-server --enable-proxy --enable-agent \
--with-mysql=/usr/bin/mysql_config \
--with-net-snmp \
--with-libcurl
[root@zabbix05 zabbix-3.4.4]# make install 
[root@zabbix05 zabbix-3.4.4]# ls /usr/local/etc/
zabbix_agentd.conf    zabbix_proxy.conf    zabbix_server.conf
zabbix_agentd.conf.d  zabbix_proxy.conf.d  zabbix_server.conf.d
[root@zabbix05 zabbix-3.4.4]# ls /usr/local/bin/
zabbix_get  zabbix_sender
[root@zabbix05 zabbix-3.4.4]# ls /usr/local/sbin/
zabbix_agentd  zabbix_proxy  zabbix_server

3.2.2、初始化准备

  1. 创建存储数据库和连接用户
MariaDB [(none)]> create database  zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on  zabbix.* to zabbix@"localhost" identified by "zabbix";
Query OK, 0 rows affected (0.00 sec)

[root@zabbix05 ~]# cd zabbix-3.4.4/database/mysql/
[root@zabbix05 mysql]# ls
data.sql  images.sql  schema.sql
[root@zabbix05 mysql]# mysql -uzabbix -pzabbix zabbix  < schema.sql 
[root@zabbix05 mysql]# mysql -uzabbix -pzabbix zabbix  < images.sql 
[root@zabbix05 mysql]# mysql -uzabbix -pzabbix zabbix  < data.sql

[root@zabbix05 mysql]# mysql -uzabbix -pzabbix  zabbix  -e 'show tables' |wc -l
141
  1. 上线网页文件
[root@zabbix05 ~]# cd /root/zabbix-3.4.4/frontends/php/
[root@zabbix05 php]# ls
[root@zabbix05 php]# cp -a *  /usr/local/nginx/html
[root@zabbix05 php]# ls /usr/local/nginx/html/index.*
/usr/local/nginx/html/index.html  /usr/local/nginx/html/index.php
[root@zabbix05 php]# chmod -R 777 /usr/local/nginx/html/ *
[root@zabbix05 php]# ls /usr/local/nginx/html

在这里插入图片描述

  1. 安装依赖的软件包
[root@zabbix05 ~]# yum -y  install php   php-mysql  php-ldap  php-xml  php-gd php-mbstring php-bcmath
  1. 修改PHP配置文件,满足Zabbix的运行需求
[root@zabbix05 ~]# vim /etc/php.ini 
672 post_max_size = 16M
394 max_input_time = 300
384 max_execution_time = 300
878 date.timezone = Asia/Shanghai
[root@zabbix05 ~]# systemctl restart php-fpm
[root@zabbix05 ~]# netstat -utnlp | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      23620/php-fpm: mast 
  1. 修改nginx服务配置文件,满足Zabbix的运行需求
[root@zabbix05 ~]# vim /usr/local/nginx/conf/nginx.conf
http {
        fastcgi_buffers 8 16k;    
        fastcgi_buffer_size 32k;    
        fastcgi_connect_timeout 300; 
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
[root@zabbix05 ~]# /usr/local/nginx/sbin/nginx  -s stop
[root@zabbix05 ~]# /usr/local/nginx/sbin/nginx  -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zabbix05 ~]# /usr/local/nginx/sbin/nginx  
[root@zabbix05 ~]# netstat -utnlp | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      23695/nginx: master 

3.2.3、初始化配置

  1. 访问http://192.168.2.5/setup.php
    在这里插入图片描述

  2. 点击下一步,全部显示OK
    在这里插入图片描述

  3. 修改数据库信息
    在这里插入图片描述在这里插入图片描述

  4. 确认配置信息
    在这里插入图片描述

  5. 成功安装Zabbix前端。
    在这里插入图片描述提示配置文件所在位置
    /usr/local/nginx/html/conf/zabbix.conf.php

[root@zabbix05 ~]# cat /usr/local/nginx/html/conf/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '3306';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'zabbix';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER      = '192.168.2.5';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'JKuser';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

3.2.4、登录管理界面

  • http://192.168.2.5/index.php
    默认登录用户admin
    默认登录密码zabbix
    在这里插入图片描述
    在这里插入图片描述

3.2.4.1、设置中文环境

点击右上角人像
推荐使用英文,中文环境小部分为乱码
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3.2.4.2、设置密码

修改密码为admin@123
在这里插入图片描述
在这里插入图片描述

3.2.5、启动监控服务

  1. 修改服务主配置文件
[root@zabbix05 ~]# vim /usr/local/etc/zabbix_server.conf	
85 DBHost=localhost					//数据库主机 
95 DBName=zabbix					//数据库名称
111 DBUser=zabbix					//数据库账户
119 DBPassword=zabbix				//数据库密码
38 LogFile=/tmp/zabbix_server.log	//日志
  1. 启动监控服务
    先创建用户,否则无法启动
[root@zabbix05 ~]# useradd zabbix
[root@zabbix05 ~]# zabbix_server 
[root@zabbix05 ~]# netstat -utnlp | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      24089/zabbix_server 

四、搭建被监控主机

使用192.168.2.100、2.101、2.102做被监控服务器
以下配置以2.100为例

4.1、运行zabbix_agentd服务

4.1.1、安装软件

[root@host100 ~]# yum  -y  install  gcc  pcre-devel
[root@host100 ~]# tar -zxf zabbix-3.4.4.tar.gz 
[root@host100 ~]# cd zabbix-3.4.4/
[root@host100 zabbix-3.4.4]# ./configure --enable-agent
[root@host100 zabbix-3.4.4]# make install

[root@host100 ~]# ls /usr/local/etc/
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@host100 ~]# ls /usr/local/sbin/
zabbix_agentd
[root@host100 ~]# ls /usr/local/bin/
zabbix_get  zabbix_sender

4.1.2、修改配置文件

[root@host100 ~]# vim /usr/local/etc/zabbix_agentd.conf
30 LogFile=/tmp/zabbix_agentd.log		//日志文件
93 Server=127.0.0.1,192.168.2.5			//允许访问服务地址列表
134 ServerActive=192.168.2.5:10051		//监控服务器IP地址端口号

4.1.3、创建用户并启动服务

[root@host100 ~]# useradd zabbix
[root@host100 ~]# zabbix_agentd 		//启动服务
[root@host100 ~]# netstat -utnlp | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      9038/zabbix_agentd  

4.2、添加监控主机

4.2.1、创建主机

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.2.2、应用监控模板

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

4.2.3、查看监控数据

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.3、删除主机

先选择禁用 然后再删除
在这里插入图片描述

五、自定义监控项——监控主机系统的总用户数

编写监控脚本给监控服务器使用
通常是Zabbix中没有想要的模板

5.1、自定义key

5.1.1、启用自定义监控项功能

[root@host100 ~]# vim /usr/local/etc/zabbix_agentd.conf
265 Include=/usr/local/etc/zabbix_agentd.conf.d/ *.conf		//加载配置文件目录
280 UnsafeUserParameters=1		//是否允许自定义key

5.1.2、创建监控命令

[root@host100 ~]# vim /usr/local/etc/zabbix_agentd.conf.d/x.conf
UserParameter=get_sum_users,wc -l /etc/passwd | awk '{print $1}'

5.1.3、重启Zabbix_agentd服务

[root@host100 ~]# killall -9 zabbix_agentd
[root@host100 ~]# killall -9 zabbix_agentd
zabbix_agentd: no process found
[root@host100 ~]# zabbix_agentd 
[root@host100 ~]# netstat -utnlp | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      9494/zabbix_agentd  

5.1.4、测试创建的监控命令

[root@host100 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k get_sum_users
21
[root@host100 ~]# useradd user1
[root@host100 ~]# useradd user2
[root@host100 ~]# useradd user3
[root@host100 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k get_sum_users
24

5.2、创建监控模板

5.2.1、创建新模板

新模板ATMP1
在这里插入图片描述在这里插入图片描述在这里插入图片描述

5.2.2、创建应用集

应用集名字users
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

5.2.3、创建监控项

名get_sys_users 对应命令 get_sum_users
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

5.2.4、配置主机可调用新模板

监控主机192.168.2.100 时,调用新创建的模板ATMP1
在这里插入图片描述在这里插入图片描述在这里插入图片描述

5.2.5、查看数据

在这里插入图片描述[root@host100 ~]# useradd user4
[root@host100 ~]# useradd user5
[root@host100 ~]# useradd user6
在这里插入图片描述

六、Zabbix报警机制

篇幅太长,点击以下链接查看
Zabbix报警机制

七、Zabbix自动发现

篇幅太长,点击以下链接查看
Zabbix自动发现

八、Zabbix主动监视

篇幅太长,点击以下链接查看
Zabbix主动监视

九、Zabbix监控案例

篇幅太长,点击以下链接查看
Zabbix监控案例

猜你喜欢

转载自blog.csdn.net/weixin_40136446/article/details/105333215