一、监控概述
1.监控目的
    每一部分必须监控
    内容包括吞吐量,反应时间,使用率等
    提前发现问题
        进行服务器性能调整前,知道调整什么
        找出系统的瓶颈在什么地方
2.监控的资源类别
    公开数据
        web,FTP,SSH,数据库等应用服务
        TCP或UDP端口
    私有数据
        CPU,内存,磁盘,网卡流量等使用信息
        用户,进程等运行信息
3.系统监控命令
    ps,ifconfig,uptime,netstat或ss,free,ping,swapon -s,traceroute,df -h,iostat
4.监控软件
    Cacti
        基于SNMP协议的监控软件,强大的绘图能力
    Nagios
        基于Agent监控,强大的状态检查与报警机制
        插件极多,自己写监控脚本嵌入到Nagios非常方便
    Zabbix
        基于多种监控机制,支持分布式监控
二、Zabbix基础
1.简介:
    Zabbix是一个高度集成的监控解决方案
    可以实现企业级的开源分布监控
    Zabbix通过C/S模式采集监控数据
    Zabbix通过B/S模式实现web管理
2.监控服务器
    监控服务器可以通过SNMP或Agent采集数据
    数据可以写入MySQL,Oracle等数据库中
    服务器使用LNMP实现web前端的管理
3.被监控主机
    被监控主机需要安装Agent
    常见的网路设备一般都支持SNMP
三、Zabbix监控服务
安装前准备
    监控服务器
        设置主机名(zabbix server)
        设置ip地址(192.168.2.5)
        关闭防火墙,SELinux
    监控客户端(2.100和2.200)
        主机web1(192.168.2.100)
        主机web2(192.168.2.200)
        关闭防火墙,SELinux
        
1.安装LNMP
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# yum -y install gcc pcre-devel zlib-devel openssl-devel
[[email protected] ~]# tar -xf nginx-1.12.2.tar.gz 
[[email protected] ~]# cd nginx-1.12.2/
[[email protected] nginx-1.12.2]# ./configure --with-http_ssl_module
[[email protected] nginx-1.12.2]# make && make install
[[email protected] ~]# cd /root/
[[email protected] ~]# yum -y install php php-fpm php-mysql mariadb mariadb-devel mariadb-server
[[email protected] ~]# vim +65 /usr/local/nginx/conf/nginx.conf
 65         location ~ \.php$ {
 66             root           html;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 70             include        fastcgi.conf;
 71         }
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# systemctl start php-fpm
[[email protected] ~]# /usr/local/nginx/sbin/nginx 
[[email protected] ~]# netstat -ntlup|grep :3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      7623/mysqld         
[[email protected] ~]# netstat -ntlup|grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7671/nginx: master  
[[email protected] ~]# netstat -ntlup|grep :9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      7663/php-fpm: maste 
[[email protected] ~]# vim /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>
[[email protected] ~]# curl http://192.168.4.240/test.php
33

2.安装源码的zabbix软件
[[email protected] ~]# yum -y install net-snmp-devel curl-devel libevent-devel
[[email protected] ~]# tar -xf zabbix-3.4.4.tar.gz 
[[email protected] ~]# cd zabbix-3.4.4/
[[email protected] zabbix-3.4.4]# ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
[[email protected] zabbix-3.4.4]# make install
[[email protected] zabbix-3.4.4]# ls /usr/local/etc/            ==>>Zabbix配置文件
zabbix_agentd.conf    zabbix_proxy.conf    zabbix_server.conf
zabbix_agentd.conf.d  zabbix_proxy.conf.d  zabbix_server.conf.d
[[email protected] zabbix-3.4.4]# ls /usr/local/bin/           ==>>Zabbix命令
zabbix_get  zabbix_sender
[[email protected] zabbix-3.4.4]# ls /usr/local/sbin/          ==>>Zabbix启动服务的命令
zabbix_agentd  zabbix_proxy  zabbix_server

3.初始化配置
    创建数据库与数据库账户
[[email protected] ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8;
MariaDB [(none)]> grant all on zabbix.* to [email protected]'localhost' identified by 'zabbix';
MariaDB [(none)]> exit
[[email protected] ~]# cd zabbix-3.4.4/database/mysql/
[[email protected] mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql 
[[email protected] mysql]# mysql -uzabbix -pzabbix zabbix < images.sql 
[[email protected] mysql]# mysql -uzabbix -pzabbix zabbix < data.sql 
[[email protected] mysql]# cd /root/zabbix-3.4.4/frontends/php/
[[email protected] php]# cp -a * /usr/local/nginx/html/
[[email protected] php]# chmod -R 777 /usr/local/nginx/html/
[[email protected] php]# vim /usr/local/nginx/conf/nginx.conf
 17 http {
 18     include       mime.types;
 19     default_type  application/octet-stream;
 20     fastcgi_buffers 8 16k;           ==>>缓存php生成的页面内容,8个16k
 21     fastcgi_buffer_size 32k;         ==>>缓存php生产的头部信息
 22     fastcgi_connect_timeout 300;     ==>>连接php的超时时间
 23     fastcgi_send_timeout 300;        ==>>发送请求的超时时间
 24     fastcgi_read_timeout 300;        ==>>读取请求的超时时间
[[email protected] php]# /usr/local/nginx/sbin/nginx -t
[[email protected] php]# /usr/local/nginx/sbin/nginx -s reload
[[email protected] php]# cd /root/
[[email protected] ~]# yum -y install php-gd php-xml php-ldap php-bcmath php-mbstring
 [[email protected] ~]# vim /etc/php.ini 
 384 max_execution_time = 300           ==>>最大执行时间,秒
 394 max_input_time = 300               ==>>服务器接受数据的时间限制
 672 post_max_size = 32M                ==>>POST数据最大容量
 878 date.timezone = Asia/Shanghai      ==>>设置时区
[[email protected] ~]# systemctl restart php-fpm

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

4.访问监控页面

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

5.启动监控服务
[[email protected] ~]# vim /usr/local/etc/zabbix_server.conf
 38 LogFile=/tmp/zabbix_server.log    ==>>设置日志
 85 DBHost=localhost                  ==>>数据库主机
 95 DBName=zabbix                     ==>>设置数据库账户
 111 DBUser=zabbix                    ==>>设置数据库账户
 119 DBPassword=zabbix                ==>>设置数据库密码
[[email protected] ~]# useradd zabbix       ==>>不添加用户无法启动服务
[[email protected] ~]# zabbix_server        ==>>启动服务
[[email protected] ~]# netstat -ntlup|grep :10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      17480/zabbix_server 

6.监控客户端
[[email protected] ~]# yum -y install gcc pcre-devel
[[email protected] ~]# tar -xf zabbix-3.4.4.tar.gz 
[[email protected] ~]# cd zabbix-3.4.4/
[[email protected] zabbix-3.4.4]# ./configure --enable-agent
[[email protected] zabbix-3.4.4]# make install
[[email protected] zabbix-3.4.4]# ls /usr/local/etc/
zabbix_agentd.conf  zabbix_agentd.conf.d
[[email protected] zabbix-3.4.4]# ls /usr/local/bin/
zabbix_get  zabbix_sender
[[email protected] zabbix-3.4.4]# ls /usr/local/sbin/
zabbix_agentd
[[email protected] ~]# 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地址
[[email protected] ~]# useradd zabbix
[[email protected] ~]# zabbix_agentd 
[[email protected] ~]# netstat -ntlup|grep :10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      9534/zabbix_agentd  

7.zabbix添加监控主机

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

 

8.自定义监控项目
    在被监控的客户端本机编写脚本给监控服务器使用
    监控私有数据
    配置客户端:
        启用自定义监控项
        定义监控命令
        测试命令
    配置监控服务器:在管理页面
        创建监控模板   名
        创建应用集     名
        监控项         名
        调用新建的模板监控客户端
        查看数据
[[email protected] ~]# vim /usr/local/etc/zabbix_agentd.conf
264 Include=/usr/local/etc/zabbix_agentd.conf.d/     ==>>加载配置文件目录
280 UnsafeUserParameters=1                           ==>>是由允许自定义key
[[email protected] ~]# cd /usr/local/etc/zabbix_agentd.conf.d/
[[email protected] zabbix_agentd.conf.d]# vim count.line.passwd
UserParameter=get_sum_user,wc -l /etc/passwd |awk '{print $1}'
--------------------------------------------------------------------
UserParameter=自定义key名称,命令          ==>>自定义key语法格式
--------------------------------------------------------------------
[[email protected] zabbix_agentd.conf.d]# killall -9 zabbix_agentd
[[email protected] zabbix_agentd.conf.d]# zabbix_agentd 
[[email protected] zabbix_agentd.conf.d]# netstat -ntlup|grep :10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      10416/zabbix_agentd 
[[email protected] zabbix_agentd.conf.d]# zabbix_get -s 127.0.0.1 -k get_sum_user   ==>>测试key命令
22
[[email protected] zabbix_agentd.conf.d]# vim count.line.passwd
UserParameter=get_sum_user,wc -l /etc/passwd |awk '{print $1}'
UserParameter=get_login_user,grep -c "/bin/bash" /etc/passwd
UserParameter=get_nologin_user,grep -c -v "/bin/bash" /etc/passwd
[[email protected] zabbix_agentd.conf.d]# killall -9 zabbix_agentd
[[email protected] zabbix_agentd.conf.d]# zabbix_agentd 
[[email protected] zabbix_agentd.conf.d]# netstat -ntlup|grep :10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      10559/zabbix_agentd 
[[email protected] zabbix_agentd.conf.d]# zabbix_get -s 127.0.0.1 -k get_login_user
20
[[email protected] zabbix_agentd.conf.d]# zabbix_get -s 127.0.0.1 -k get_nologin_user
2

    创建监控模板Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

    创建应用集

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

 

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

 

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

     将模板关联主机

Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务Zabbix(一)之监控概述,Zabbix基础,Zabbix监控服务

相关文章: