Zabbix监控(上)

监控的目的

报告系统运行的情况

  • 每一部分必须同时监控
  • 内容包括吞吐量,反应时间,使用率等

提前发现问题

  • 进行服务性能调整前,知道调整什么
  • 找出系统的瓶颈

监控的资源

公开数据:通过端口可以访问到的数据,比如Web,FTP,SSH,数据库等应用服务;TCP/UDP端口

私有数据:CPU,内存,磁盘,网卡流量等;用户,进程等运行信息

监控软件

系统监控命令:  不是实时监控

ps  显示当前进程 (process) 的状态。ifconfig  查看网卡信息
uptime  查看cpu负载nestat或ss  查看端口,网络链接信息
free  查看内存信息ping  检查网络是否连通
swapon -s  看磁盘交换分区traceroute 路由跟踪(经过那些ip地址)
df -h  查看磁盘使用率iostat  当前主机磁盘的信息

自动化监控系统

Cacti

基于SNMP协议(简单网络管理协议 Simple Network Management Protocol)的监控软件,强大的绘图能力,插价很少

Nagios

基于Agent监控,强大的状态检查与报警机制

插价极多,可以自己写脚本缴入到Nagios ,没有绘图能力

Zabbix

基于多种监控机制,支持分布式监控

是一个高度集成的监控解决方案,开源分布式监控

通过C/S(客户/服务)模式采集监控数据

通过B/S(浏览器/服务器)模式实现Web管理

 

部署zabbix

实验环境:zabbix-server 服务端  192.168.2.5

                   zabbix-client  客户端  192.168.2.100

                  zabbix-client  客户端  192.168.2.200

部署环境LNMP

[root@zabbix-server ~]# yum -y install gcc pcre-devel openssl-devel
[root@zabbix-server ~]# tar -zxf nginx-1.12.2.tar.gz 
[root@zabbix-server ~]# cd nginx-1.12.2/
[root@zabbix-server nginx-1.12.2]# useradd nginx
[root@zabbix-server nginx-1.12.2]# ./configure  --with-http_ssl_module  --user=nginx --group=nginx 
[root@zabbix-server nginx-1.12.2]# make & make install

[root@zabbix-server nginx-1.12.2]# cd /root
[root@zabbix-server ~]# yum -y  install mariadb mariadb-server  mariadb-devel

[root@zabbix-server ~]# yum -y install php php-mysql
[root@zabbix-server ~]# yum -y  install  php-fpm-5.4.16-42.el7.x86_64.rpm(这个软件包不在系统yum源)

[root@zabbix-server ~]# vim /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         }

[root@zabbix-server ~]# vim /usr/local/nginx/conf/nginx.conf
   ...
  http{
   ...
        fastcgi_buffers 8 16k;              //缓存php生成的页面内容 ,8个16k
        fastcgi_buffer_size 32k;           //缓存php生产的头部信息
        fastcgi_connect_timeout 300;       //连接PHP的超时时间
        fastcgi_send_timeout 300;          //发送请求的超时时间
        fastcgi_read_timeout 300; 
[root@zabbix-server ~]# ln -s /usr/local/nginx/sbin/nginx   /sbin 
[root@zabbix-server ~]# nginx
[root@zabbix-server ~]# netstat -pntul | grep :80
tcp        0      0 0.0.0.0:80     0.0.0.0:*      LISTEN      6574/nginx: master  

[root@zabbix-server ~]# vim /usr/local/nginx/html/test.php   //测试是否可以正常链接
<?php
phpinfo();
?>
[root@zabbix-server ~]# systemctl start php-fpm.service 
[root@zabbix-server ~]# firefox 192.168.2.5/test.php         //可以正常显示   
[root@zabbix-server ~]# systemctl start mariadb

安装zabbix

[root@zabbix-server ~]# yum -y install net-snmp-devel libcurl-devel 
[root@zabbix-server ~]# yum -y install libevent-devel-2.0.21-4.el7.x86_64.rpm(yum源没有这个包)
[root@zabbix-server ~]# tar -xf zabbix-3.4.4.tar.gz 
[root@zabbix-server ~]# cd zabbix-3.4.4/
[root@zabbix-server zabbix-3.4.4]# ./configure  --enable-server --enable-proxy --enable-agent --with-mysql  --with-net-snmp --with-libcurl
//-server 安装部署服务器端软件  --proxy 安装代理相关软件 --agent 被监控端软件  -mysql 配置mysql_config路径(不用指定,默认就是可以,因为是rpm包安装的mariadb) -net-snmp 允许通过snmp协议监控其他设备  -libcurl 安装相关curl库文件,这样zabbix可以通过curl链接http服务,测试被监控主机的服务状态
[root@zabbix-server zabbix-3.4.4]# make install

初始化配置zabbix

创建授权用户(这里为zabbix),数据库(这里为zabbix)

[root@zabbix-server ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8;  //支持中文字符
MariaDB [(none)]> grant all on zabbix.* to zabbix@"localhost" identified by "zabbix";           

[root@zabbix-server ~]# cd zabbix-3.4.4/database/mysql/
[root@zabbix-server mysql]# ls
data.sql  images.sql  schema.sql        //按照顺序导入(schema概要 images图像 data数据)
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql 
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < images.sql 
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < data.sql 
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix             |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
| application_template       |
| applications               |
...
| widget                     |
| widget_field               |
+----------------------------+
140 rows in set (0.00 sec)

 拷贝文件

[root@zabbix-server zabbix-3.4.4]# cd frontends
[root@zabbix-server frontends]# cp -r php/   /usr/local/nginx/html/zabbix
[root@zabbix-server ~]# chmod  777 /usr/local/nginx/html/zabbix/conf

修改配置文件/etc/php.ini ,下载相关包以支持zabbix页面

[root@zabbix-server ~]# vim /etc/php.ini

384 max_execution_time = 300   //把30改成300
 ...
394 max_input_time = 300       //把60改成300
...
672 post_max_size = 16M        //把8M改成支持的16M
...
878 date.timezone = Asia/Shanghai  //时间改成亚洲/上海

[root@zabbix-server frontends]# systemctl restart php-fpm.service
[root@zabbix-server frontends]# firefox 192.168.2.5/zabbix/index.php  //检测是否修改正确


[root@zabbix-server ~]# rpm -ivh --nodeps php-bcmath-5.4.16-42.el7.x86_64.rpm
[root@zabbix-server ~]# rpm -ivh --nodeps php-mbstring-5.4.16-42.el7.x86_64.rpm 
//这两个包yum源没有
[root@zabbix-server ~]# yum -y install php-gd.x86_64   php-ldap.x86_64  php-xml
[root@zabbix-server ~]# systemctl restart php-fpm.service 
[root@zabbix-server ~]# firefox 192.168.2.5/zabbix/index.php //输入mysql设置的用户名,密码,库名

提示:如果zabbix网页没有设置完成,根据相关提示下载包或者修改配置文件,直到出现如下信息,才算完成

[root@zabbix-server ~]# cat /usr/local/nginx/html/zabbix/conf/zabbix.conf.php   //查看配置信息
<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$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 = 'zabbixserver';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

登录zabbix网页,默认初始用户名为admin  默认密码zabbix,可以改成中文模式(也可以不改)

点击配置,可以查看默认模板,可以查看目前在监视的主机

点击监测中,查看监控信息

运行zabbix服务

修改主配置文件 /usr/local/etc/zabbix_server.conf

[root@zabbix-server ~]# 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                //去掉注释,添加密码,我们前面设置的密码

修改脚本文件,启动zabbix

[root@zabbix-server ~]# cp zabbix-3.4.4/misc/init.d/fedora/core/zabbix_server  /etc/init.d/
[root@zabbix-server ~]# ls /usr/local/sbin/
zabbix_agentd  zabbix_proxy  zabbix_server
[root@zabbix-server ~]# useradd zabbix
[root@zabbix-server ~]# /etc/init.d/zabbix_server  start
Reloading systemd:                                         [  确定  ]
Starting zabbix_server (via systemctl):                    [  确定  ]
[root@zabbix-server ~]# netstat -pntul | grep :10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*          LISTEN      21465/zabbix_server 

注:如果前面编译了指定的路径 --prefix=/usr/local/zabbix    需要更改启动文件

[root@zabbix-server ~]# vim /etc/init.d/zabbix_server 
...
22         BASEDIR=/usr/local         //需要修改目录为/usr/local/zabbix
...

登录zabbix,这时显示已经登录(之前下面会有黄条提示,未链接)

点击仪表盘,可以看到提示(页面右下角)

监控远端网站服务器192.168.2.100

配置网站服务器主机2.100

安装zabbix-agent服务

[root@web1 ~]# yum -y install gcc  pcre-devel
[root@web1 ~]# tar -zxvf zabbix-3.4.4.tar.gz 
[root@web1 ~]# cd zabbix-3.4.4/
[root@web1 zabbix-3.4.4]# ./configure  --enable-agent --prefix=/usr/local/zabbix
...
***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************
[root@web1 zabbix-3.4.4]# make install

修改主配置文件

[root@web1 zabbix-3.4.4]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
...
30 LogFile=/tmp/zabbix_agentd.log         //默认
...
93 Server=127.0.0.1,192.168.2.5           //添加监控服务器ip
...
134 ServerActive=192.168.2.5:10051        //监控服务器和端口号

[root@web1 zabbix-3.4.4]# useradd zabbix
[root@web1 zabbix-3.4.4]# cp  misc/init.d/fedora/core/zabbix_agentd  /etc/init.d/
[root@web1 zabbix-3.4.4]# vim /etc/init.d/zabbix_agentd 
 22         BASEDIR=/usr/local/zabbix
...
[root@web1 zabbix-3.4.4]# /etc/init.d/zabbix_agentd  start 
Reloading systemd:                                         [  确定  ]
Starting zabbix_agentd (via systemctl):                    [  确定  ]
[root@web1 zabbix-3.4.4]# netstat -pntul | grep :10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      16593/zabbix_agentd 

配置监控服务器2.5

[root@zabbix-server ~]# firefox 192.168.2.5/zabbix/index.php

 配置---主机---创建主机

主机;主机名称,可见的名称,添加群组,监控的主机IP(这里为2.100)

 主机--模板(选择要监控的模板)--选好之后添加,然后更新

然后监测中---最新数据---主机群组,主机--应用

这里发现http服务状态为down,因为没有运行http服务

[root@web1 zabbix-3.4.4]# systemctl restart httpd
[root@web1 zabbix-3.4.4]# netstat -pntul | grep :80
tcp6       0      0 :::80                 :::*                LISTEN      17177/httpd   

自定义zabbix监控项目

比如监控192.168.2.100的系统用户数量

配置被监控主机2.100

[root@web1 zabbix-3.4.4]# /etc/init.d/zabbix_agentd stop
[root@web1 zabbix-3.4.4]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
265 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf   //打开注释
...
280 UnsafeUserParameters=1                               //打开注释,设置自定义监控为1
...
284 #       Format: UserParameter=<key>,<shell command>   //自定义监控文件模板

添加监控命令,启动程序,在本机监测

[root@web1 zabbix-3.4.4]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/test.conf
UserParameter=get_100_usersnumber,wc -l /etc/passwd | awk '{print $1}'
//可以自定义key值名字,此命令为统计用户数量                                                                   
[root@web1 zabbix-3.4.4]# /etc/init.d/zabbix_agentd start 
Starting zabbix_agentd (via systemctl):                    [  确定  ]
[root@web1 zabbix-3.4.4]# netstat -pntul | grep :10050
tcp        0      0 0.0.0.0:10050        0.0.0.0:*       LISTEN      17701/zabbix_agentd 
[root@web1 zabbix-3.4.4]# /usr/local/zabbix/bin/zabbix_get  -s 127.0.0.1 -p 10050 -k get_100_usersnumber
42

配置监控服务器192.168.2.5

命令行下测试此命令

[root@zabbix-server ~]# /usr/local/bin/zabbix_get  -s 192.168.2.100 -p 10050 -k get_100_usersnumber             //这里不在zabbix,因为安装的时候没有指定目录,所以默认在/bin
42

在页面添加监控配置

配置--模板--创建模板

定义新监控模板--创建应用集--创建监控项目,并指定使用的监控命令

 

 在把这个模板添加到上面配置的web100中

最后点击监测中--最新数据 发现mon_100_users      42  即代表自定义成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值