Linux监控系统之Zabbix

Linux监控系统之Zabbix

Zabbix介绍

Zabbix是由  Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。整合了Catic和Nagios的特性。

  使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做监视。

  在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。

Zabbix原理

一个监控系统运行的大概的流程是这样的:
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。

Zabbix组件

zabbix由以下几个组件部分构成:
1、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;

2、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;

3、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;

4、Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;

5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;

Zabbix原理图

试验环境

角色 IP地址
zabbix-server 192.168.58.149
zabbix-client 192.168.58.157

Zabbix安装

首先搭建LAMP环境,我这里选择的是使用YUM仓库安装。

[[email protected] ~]# yum install -y > httpd > mariadb-server mariadb > php > php-mysql > php-gd > libjpeg* > php-ldap > php-odbc > php-pear > php-xml > php-xmlrpc > php-mhash

安装好lamp架构后,修改httpd.conf配置文件。

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf 

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

修改php的配置文件php.ini修改时区,否则会报错。

[[email protected] ~]# vim /etc/php.ini 

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC  #修改为中国时区、

关闭防火墙和SELinux功能。

[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# setenforce 0

开启httpd和mariadb服务,进行配置。

[[email protected] ~]# systemctl start httpd.service
[[email protected] ~]# systemctl start mariadb.service
[[email protected] ~]# netstat -ntap | egrep ‘(80|3306)‘
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      68787/mysqld
tcp6       0      0 :::80                   :::*                    LISTEN      67276/httpd
#可以看到80和3306端口已经开启

下面可以对mariadb进行一些安全设置。

[[email protected] ~]# mysql_secure_installation
#可以根据自己情况选择对应的设置

编写php测试页面,进行测试。

[[email protected] ~]# vim /var/www/html/index.php

<?php
phpinfo();
?>

访问http://192.168.58.149/index.php,容易过访问到下面界面说明LAMP搭建成功。

进入数据库创建给zabbix储存数据的数据库,已经赋予相关权限。

[[email protected] ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
#创建一个叫zabbix的数据库,默认字符集为utf-8
MariaDB [(none)]> GRANT all privileges ON *.* TO ‘zabbix‘@‘%‘ IDENTIFIED BY ‘admin123‘;
Query OK, 0 rows affected (0.00 sec)
#赋予权限
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#刷新权限

下面编写数据库测试登录页面。

[[email protected] ~]# vim /var/www/html/index.php

<?php
$link=mysql_connect(‘192.168.58.149‘,‘zabbix‘,‘admin123‘);
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>

再来访问http://192.168.58.149/index.php,可以看到fail,这里原因是在数据库中有空用户的存在。

[[email protected] ~]# mysql -u root -p
Enter password: 

MariaDB [(none)]> select user,host from mysql.user;
+--------+-------------------------+
| user   | host                    |
+--------+-------------------------+
| zabbix | %                       |
| root   | 127.0.0.1               |
| root   | ::1                     |
|        | localhost               |
| root   | localhost               |
|        | promote.cache-dns.local |
| root   | promote.cache-dns.local |
+--------+-------------------------+
7 rows in set (0.00 sec)
#可以看到有两个空用户,我们将这两个空用户删除。
MariaDB [(none)]> drop user ‘‘@localhost;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> drop user ‘‘@‘promote.cache-dns.local‘;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> select user,host from mysql.user;
+--------+-------------------------+
| user   | host                    |
+--------+-------------------------+
| zabbix | %                       |
| root   | 127.0.0.1               |
| root   | ::1                     |
| root   | localhost               |
| root   | promote.cache-dns.local |
+--------+-------------------------+
5 rows in set (0.00 sec)

然后我们再来访问http://192.168.58.149/index.php,可以看到访问成功。

下面安装Zabbix Server,首先安装相关依赖包。

[[email protected] ~]# yum install php-bcmath php-mbstring -y

下载zabbix的yum源。

[[email protected] ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
[[email protected] ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  zabbix.repo
#可以看到自动生成了zabbix.repo文件。

安装zabbix-server相关软件包。

[[email protected] ~]# yum install zabbix-server-mysql zabbix-web-mysql -y

在数据库中生成zabbix的数据库文件。

[[email protected] ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p  zabbix
Enter password:
#注意这里是使用zabbix用户和密码登录的。

我们查看zabbix-server的配置文件并使用正则表达式进行过滤。

[[email protected] ~]# grep -n ‘^[a-Z]‘ /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
101:DBName=zabbix
117:DBUser=zabbix
356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
474:Timeout=4
517:AlertScriptsPath=/usr/lib/zabbix/alertscripts
528:ExternalScripts=/usr/lib/zabbix/externalscripts
564:LogSlowQueries=3000

这里我们只要插入一行DBPassword=admin123.

[[email protected] ~]# sed -i ‘127aDBPassword=admin123‘ /etc/zabbix/zabbix_server.conf
[[email protected] ~]# grep -n ‘^[a-Z]‘ /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
101:DBName=zabbix
117:DBUser=zabbix
128:DBPassword=admin123
357:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
475:Timeout=4
518:AlertScriptsPath=/usr/lib/zabbix/alertscripts
529:ExternalScripts=/usr/lib/zabbix/externalscripts
565:LogSlowQueries=3000

将httpd服务中zabbix用户的zabbix.conf中的时区改为Asia/Shanghai。

[[email protected] ~]# vim /etc/httpd/conf.d/zabbix.conf
   <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value always_populate_raw_post_data -1
        php_value date.timezone Asia/Shanghai
    </IfModule>

下面主要是解决安装好zabbix后,网页显示会用乱码的问题,首先将配置文件中的字体都改为kaiti。

vim /usr/share/zabbix/include/defines.inc.php

define(‘ZBX_FONT_NAME‘, ‘graphfont‘);
#这是默认字体

[[email protected] ~]# sed -i ‘s/graphfont/kaiti/g‘ /usr/share/zabbix/include/defines.inc.php
[[email protected] ~]# sed -n ‘/graphfont/p‘ /usr/share/zabbix/include/defines.inc.php
#可以看到所有的都替换为了kaiti
[[email protected] ~]# cp STKAITI.TTF /usr/share/zabbix/fonts/
#将字体文件复制到zabbix的字体目录中

启动zabbix-server服务。

[[email protected] ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[[email protected] ~]# systemctl start zabbix-server
[[email protected] ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      93906/zabbi_server
tcp6       0      0 :::10051                :::*                    LISTEN      93906/zabbi
#可以看到zabbix服务已经开启,相对应的端口已经打开

重启httpd服务。

[[email protected] ~]# systemctl restart httpd.service

访问http://192.168.58.149/zabbix/






配置完服务端后,下面配置客户端,也就是需要被监控的客户机端。首先,配置zabbix的yum源。

[[email protected] ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
[[email protected] ~]# yum install -y zabbix-agent

下面修改zabbix_agentd.conf配置文件

[[email protected] ~]# grep -n ‘^‘[a-Z] /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=127.0.0.1
139:ServerActive=127.0.0.1
150:Hostname=Zabbix server
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

主要修改下面几行

Server=192.168.58.149
ServerActive=192.168.58.149
Hostname=Zabbix1    #这个随意更改

关闭防火墙和SELinux功能

[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# setenforce 0

启用zabbix-agent功能。

[[email protected] ~]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[[email protected] ~]# systemctl restart zabbix-agent.service
[[email protected] ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      4936/zabbix_agentd
tcp6       0      0 :::10050                :::*                    LISTEN      4936/zabbix_agentd
#可以看到监听端口10050已经开启

下面需要在zabbix检测网页上添加被监控主机。




最后我们测试,关闭被监控主机的ssh服务,查看是否会有报警。

[[email protected] ~]# systemctl stop sshd.service

原文地址:http://blog.51cto.com/10693404/2164481

时间: 2024-11-10 00:45:52

Linux监控系统之Zabbix的相关文章

Linux 监控系统---zabbix

监控系统及zabbix基础(一) =========================================================================== 概述: =========================================================================== 监控系统  1.监控系统介绍 ★监控指标: 硬件:如:cpu使用率,内存空间等 软件:软件程序如:nginx,进程数量等 业务:并发在线数量,事物数量等

Linux监控系统之Nagios

Linux监控系统之Nagios Nagios工作原理 Nagios的功能是监控服务和主机,但是其自身并不包括这部分功能,所有的监控.检测功能都是听过各种插件去完成的.在启动Nagios后,它会周期性地去自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回的状态信息都进入队列,Nagios每次都会将从队首读取信息,进行处理后,再将状态结果通过web显示出来. Nagios模式 被动模式:就如同上图所显示的那样,客户端起nrpe进程,服务端通过check_nrpe插件向客户端

开源监控系统中 Zabbix 和 Nagios 哪个更好?

监控平台的话,各有优劣,但基本都可以满足需求.等达到一定监控指标后,发现,最困难的是监控项目的管理. CMDB中小规模(服务器<=1k):Zabbix大规模(1k>=服务器<=10k):Nagios进行二次开发超大规模(服务器>=10k):开发适应自己平台的监控软件吧另推荐个牛逼的东西:http://prometheus.io 作者:好撑链接:https://www.zhihu.com/question/19973178/answer/131911060来源:知乎著作权归作者所有.

监控系统之zabbix监控平台

Zabbix 是一个基于WEB界面的提供分布式系统的监控服务,集监控与报警于一体,功能十分强大.Zabbix由服务端(server)和客户端(agent)两部分组成,zabbix server 可以通过SNMP ,PING,SSH,IPMI,Zabbix agent,端口监视等方法提供对远程服务器的硬件信息的监控,并且将数据存储在数据库里面,通过对数据的处理,将信息通过web界面显示出来.优点是能够监控大批量的服务器,甚至达到万的量级. 下面介zabbix server 及zabbix agen

Linux监控平台(zabbix监控介绍,安装zabbix,解决忘记admin密码)

linux监控平台介绍 常见开源监控软件:cacti,nagios,zabbix,smokeping,open-falcon等等 cacti,smokeping偏向于基础监控,成图非常漂亮 cacti,nagios,zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti需要MySQL作为数据储存, agios不用存储历史数据,他注重服务或监控项的状态 zabbix会获取服务或者监控项目的数据,会把数据记录到数据库中,从而可以成图 open-falcon是小米公司开发的,开源

Linux监控平台介绍 zabbix监控介绍 安装zabbix 忘记Admin密码如何做

一.Linux监控平台介绍这几款软件都是需要PHP环境支持,使用Apache PHP或者NGINX的PHP都可以,nagios不需要使用mysql,cacti和zabbix是需要使用mysql的二.zabbix监控介绍zabbix监控流程图三.安装zabbix需要准备两台机器,一台作为zabbix-server服务端,一台作为zabbix-agent客户端[[email protected] ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x8

细述:Linux 监控系统 Linux-dash

Linux-dash 是一个低开销 Linux 服务器监控系统,基于 Web 的监控界面.Linux-dash 的界面提供了一个详细的概述您的服务器的所有重要方面,包括内存和磁盘使用情况,网络,安装软件,用户,运行的流程.所有信息被组织成widget 部件,你可以跳转到一个特定的部分使用的主要工具栏中的按钮.Linux Dash不是最先进的监控工具,但它可能是一个适合用户寻找一个光滑,轻便,易于部署应用程序. 特性 漂亮的操作面板 在线,按需监控 RAM, Load, Uptime, Disk

Linux监控软件之 Zabbix

一.简介 Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利.Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置. 官方网站:http://www.zabbix.com 官方文档:http://www.zabbix.com/documentation/2.0/manual/quickstart 1.功能 具备常见的商业监控软件所具备的功能(主机的性能监控.网络设备性能监控.数据库性能监控.FT

Linux监控服务之zabbix客户端安装

安装环境: centos6.5 2.6.32-358.el6.x86_64 ip:192.168.75.130 zabbix_server 这台机器我们已经安装好了 zabbix_agentd,所以无需再次安装了.那么其他需要监控的 linux 机器是如何安装的呢?在安装客户端的时候,软件包和服务器是同一个,只是 configure 的配置参数不同而已.当然,源码安装,什么 GCC,make 这些命令都得安装,所以客户端不建议源码安装,由于针对大量机器(成千上万,在互联网公司很常见),推荐 rp