Linux监控软件之 Zabbix

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

一、简介


  Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。

官方网站:http://www.zabbix.com

官方文档:http://www.zabbix.com/documentation/2.0/manual/quickstart


1、功能

  具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。


2、说明

  Server:指安装zabbix服务的服务器(以下简称服务器端),是最重要的部份,主要安装在linux系统上(支持多种操作系统),采用mysql存储监控数据并使用apache+php的方式呈现。即Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下。

  Agent:指安装在被监控设备上的zabbix代理(以下简称代理),被监控设备上的数据由代理收集后统一上传到服务器端由服务器端收集、整理并呈现。目前已有的agent基本支持市面常见的OS,包含Linux、Solaris、Sun、windows等。

  SNMP:也是agent的一种,指支持SNMP协议的设备(也可以是服务器),通过设定SNMP的参数将相关监控数据传送至服务器端(大部份的交换机、防火墙等网络设备都支持SNMP协议)。

  IPMI:Agent的另一种方式,主要应用于设备的物理性能监控,例如设备的温度、风扇的转速等。


3、Zabbix架构

  Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如下图所示。

wKioL1YndEHTm1SpAAMBK4Fr1QU211.jpg



二、环境说明



Hostname
IP Software
server 192.168.0.115 apache、mysql、mhp、zabbix20、zabbix20-agent、zabbix20-server、zabbix20-server-mysql、zabbix20-web、zabbix20-web-mysql、net-snmp-devel
client 192.168.0.114 zabbix20-agent

关闭防火墙:iptables -F,SELINUX=disabled



三、安装配置


1、服务端安装zabbix

1)安装epel的扩展源

[root@server ~]# yum install -y epel-release


2)安装lamp环境

[root@server ~]# yum install -y  httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring


3)安装zabbix服务

[root@server ~]# yum install zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql zabbix20-web zabbix20-web-mysql net-snmp-devel


2、服务端配置数据库

1)修改mysql配置文件

[root@server ~]# vim /etc/my.cnf        //修改或增加如下内容

[mysql]
default-character-set = utf8

[mysqld]
character_set_server = utf8


2)启动httpd和mysqld服务

[root@server ~]# /etc/init.d/httpd start

[root@server ~]# /etc/init.d/mysqld start


3)建数据库以及导入数据

[root@server ~]# mysql -uroot  -e  "create database zabbix"        //创建库名为:zabbix

[root@server ~]# mysql -uroot -e "grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix';"

                                                                           //新建一个用户为:zabbix,密码为:zabbix

[root@server ~]# mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/schema.sql

[root@server ~]# mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/images.sql

[root@server ~]# mysql -uroot -p --default-character-set=utf8  zabbix < /usr/share/zabbix-mysql/data.sql


3、服务端配置zabbix

1)编辑zabbix服务配置文件

[root@server ~]# vim /etc/zabbix/zabbix_server.conf            //找到这三项

DBName=zabbix                           //数据库名

DBUser=zabbix                              //用户名

DBPassword=zabbix                      //用户密码


2)启动zabbix服务

[root@server ~]# /etc/init.d/zabbix-server start

[root@server ~]# /etc/init.d/zabbix-agent start


我们可以查看下zabbix-server和zabbix-agent是否启动起来:

[root@server ~]# ps aux | grep zabbix

也可以查看下zabbix-server和zabbix-agent监听的端口:

[root@server ~]# netstat -lnp | grep zabbix


4、网页上安装zabbix

1)浏览器输入: http://192.168.0.115/zabbix

wKioL1Ynho3zwgcYAAk8Nz89cPc158.jpg


说明:


这里最上面提示waring,说未设置timezone,下面我们设置timezone

[root@server ~]# vim /etc/php.ini           //找到添加一行  

date.timezone='Asia/Chongqing'

wKioL1YniCzg0zJ_AAE-BrqG9Hg334.jpg

重启httpd服务

[root@server ~]# /etc/init.d/httpd restart      

刷新页面后,waring提示消失。



2)接着点击next,会出现如下参数Fail。

wKioL1YniPmQkcV7AAMlQpWrl-w142.jpg


我们编辑配置php.ini文件

[root@server ~]# vim /etc/php.ini                  //修改以下参数

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

重启httpd服务

[root@server ~]# /etc/init.d/httpd restart 

点击Retry,全部显示OK;

接着点击Next,输入账号密码后点击Test connection,显示OK;


wKioL1Yni4DxaUBFAAKmPF4lHNU821.jpg


3)点击Next,其他默认,只输入Name 为0.115(可以自定义);点next,再点next,最后点finish。
默认管理员账号为:admin,密码为:zabbix 。最后进入到网页服务端。


wKioL1YnkDGCMl9cAAQRhb9h25s842.jpg


注意


这时可能会遇到“zabbix server is not running the information displayed may not be current”这样的错误:

wKiom1YnkD_Tu5CGAABEsMLh6qY875.jpg

解决思路:

1)需要编辑一下 /etc/zabbix/zabbix_server.conf ,配置DBUser, DBPassword

2)一定要关闭selinux

    临时关闭:setenforce 0,立即生效

    永久关闭:vim /etc/selinux/config,修改SELINUX=disabled,重启Linux才可生效




5、接入要监控的客户端主机

1)客户端安装zabbix20-agent

[root@client ~]# yum install zabbix20-agent


2)编辑配置文件

[root@client ~]# vim /etc/zabbix_agentd.conf

Server=192.168.0.115                                         //服务端IP

ServerActive=0.0.0.0:10050                                 //监听的端口

Hostname=tpp                                                    //自定义,但是要唯一

启动客户端 

[root@client ~]# /etc/init.d/zabbix-agent start


3)在服务端执行命令

[root@server ~]# zabbix_get -s 192.168.0.114 -p10050 -k "system.hostname"

client                               //显示出了客户端的hostname,说明可以正常通信


4)在web界面下,点”configuration” --> “hosts” --> 右上角点”Create Host”  

host name为:tpp  (自定义)

visible name为:tpp   (自定义)

groups:Linux servers

ip address 写入客户端ip:192.168.0.114

其他的默认即可。

配置监控项目模板:点“Templates”, 点 "add", 在弹出的小窗口中选择Template OS Linux, 然后点select, 最后点save

然后我们可以在 "Monitoring" --> "Latest data" 下查看到刚添加的Host "tpp",也可以查看各状态

注意


若报错:Received empty response from Zabbix Agent at [192.168.0.115]. Assuming that agent dropped connection

wKiom1YnoSPBz6N6AAGQWWx6LOc195.jpg

可以查看客户端的/etc/zabbix_agentd.conf配置文件是否正确。



5)自定义templates
Zabbix自带了很多模板,模板中有很多监控项目,比如CPU、网卡、内存、进程等等。使用系统自带模板有点太多了,所以我们可以自定义模板。

点configuration 选择 templates,点右上角的create template --> Template name和Visible name  自定义,Groups 选择templates, 点save。

然后我们去挑选一些项目拷贝到该模板下:比如我们找到Template OS Linux 

点一下items,选择我们想要的项目,然后在下面选择copy selected to … 然后点go ,Group 选择templates, 找到刚才我们自定义的templates,点copy,点configuration 选择 templates可以看到新建的templates中已经有刚刚我们copy的items了。

我们可以使用和上面相同的方法自定义拷贝Triggers(触发器 ),它用来设置告警的阀值,当然我们也可以自定义编辑它。


监控客户端网卡流量     http://www.apelearn.com/bbs/thread-8091-1-1.html



四、zabbix 配置邮件告警 


设置触发器的目的是为了让监控的服务实现告警, 那告警如何告呢, 下面我们来配置一下邮件告警。发邮件是服务器通过自己的 sendmail 服务发出的,有时候如果配置不合适或者服务没有启动,我们是发不出邮件的。

1、测试邮件服务

[root@server ~]# yum install -y sendmail

[root@server ~]# /etc/init.d/sendmail start

[root@server ~]# echo "test mail" |mail -s  "test" 1933306137@qq.com    

[root@server ~]# mailq

说明


"test mail"为邮件内容

"test"为主题

"1933306137@qq.com"为收件人

"mailq"是查看是否发送成功。

如果是虚拟机,很有可能是收不到邮件的,但如果是真机还是可以收到的,只不过很有可能在垃圾邮件箱里。除了sendmail 服务外,我们还可以用 postfix 服务发邮件。



2、配置邮件告警 

1) 配置报警脚本

[root@server ~]# mkdir -p /home/zabbix/bin                         //邮件告警脚本存放目录

[root@server ~]# vim /home/zabbix/bin/baojing.sh               //告警脚本,写入以下内容

#! /bin/bash 

echo "$3" |/bin/mail -s "$2" $1                         //$3为邮件内容,$2为主题,$1为收件人 

保存后,修改文件的权限 

[root@server ~]# chmod +x /home/zabbix/bin/baojing.sh

 

2)修改zabbix_server配置文件

[root@server ~]# vim /etc/zabbix_server.conf             //修改如下内容 

AlertScriptsPath=/home/zabbix/bin/                         //用户自定义的 media types 脚本 

ExternalScripts=/home/zabbix/bin/                           //用户自定义的检查的脚本(item) 


3)在浏览器配置

创建 mediea types:

"Administration" -->"Media types",点击右上角"Create Media Type"其中 Description 填"baojing" 或其它自定义名称,Type 选择"Script",Script name填"baojing.sh"然后点"Save"。 

创建 user: 

"Administration"--> "Users" 在右上角,选择"Users",点击"Create User", alias: test1,自定义 name 和 lastname password:123456;groups 选择 guests, 回到上面点一下 media -->type 选择 baojing,send to 写要发送邮件的邮箱,点 add, 最后点 save。 

创建 action: 

"configuration" --> actions,右上角"Create Actions", Name 自定义,我这里写"baojing",其他默认,然后点右侧的"Operations"下的"New"按钮,"Operation Type"选择"Send message",“Send to User groups”选择一个或多个要发送消息的用户组, Send to Users 选择我们之前新增的 test1, “Send only to”选择 baojing , 点一下 add,最后点 save。

到这里我们的告警服务就配置完成了。



关于中文问题:

1、更改为中文界面:

最右上角 Print-->Language :Chinese(zh_CN)

2、有乱码(方框):

yum 安装的zabbix 字体位置可以通过查看配置文件:/usr/share/zabbix/include/defines.inc.php 

define('ZBX_FONTPATH', '/usr/share/fonts/dejavu');

我们需要下载一个中文字体放到这里来,虽然这个目录下有个 DejaVuSans.ttf  但是不管用

[root@server ~]# wget 'http://downloads.sourceforge.net/project/wqy/wqy-microhei/0.2.0-beta/wqy-microhei-0.2.0-beta.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwqy%2Ffiles%2Fwqy-microhei%2F0.2.0-beta%2F&ts=1365584502&use_mirror=jaist' -O wqy-microhei-0.2.0-beta.tar.gz

[root@server ~]# tar -zxvf wqy-microhei-0.2.0-beta.tar.gz

[root@server ~]# scp wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf





参考文章  

自定义脚本:http://www.linuxidc.com/Linux/2013-11/92476.htm

zabbix agent 类型所有key:http://www.iyunv.com/thread-22959-1-1.html

zabbix中文配置指南:http://waringid.blog.51cto.com/65148/955939/





      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1705396,如需转载请自行联系原作者




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Prometheus 运维 监控
linux磁盘I/O监控
【4月更文挑战第1天】在Linux中监控磁盘I/O性能至关重要,工具如iostat(-d显示磁盘统计)、iotop(进程级I/O查看)、vmstat、/proc/diskstats(详细统计信息)、Node Exporter(Prometheus集成)和Zabbix(动态监控与LLD)提供关键指标,如IOPS、吞吐量、利用率和服务时间,助力系统优化和故障排查。
46 4
linux磁盘I/O监控
|
2月前
|
存储 监控 Linux
linux搭建EwoMail开源邮件服务器软件
linux搭建EwoMail开源邮件服务器软件
34 0
|
3月前
|
缓存 监控 Linux
|
2月前
|
监控 网络协议 Shell
【Shell 命令集合 网络通讯 】Linux 监控和记录网络中ARP(Address Resolution Protocol)活动 arpwatch命令 使用指南
【Shell 命令集合 网络通讯 】Linux 监控和记录网络中ARP(Address Resolution Protocol)活动 arpwatch命令 使用指南
51 0
|
19天前
|
Java Linux 开发工具
linux如何编译安装源码包软件
源码包软件是包含源代码的软件包,常见于Linux和BSD系统,如fcitx和Lumaqq。开源软件需满足源代码可见且有宽松许可,如GPL。安装源码包通常涉及解压、编译和安装步骤,使用`tar`命令解包,通过`./configure`, `make`, `make install`进行编译安装。软件源码允许定制和二次开发,但须遵循许可协议。安装前确保安装了必要的开发工具和库。对于perl和python程序,直接使用perl或python命令安装。推荐使用系统软件包管理工具如RPM、yum或apt进行管理,以简化流程。
24 0
|
20天前
|
Linux 数据安全/隐私保护
Linux(12)Debain系统安装远程控制软件
Linux(12)Debain系统安装远程控制软件
25 0
|
1天前
|
算法 Linux Windows
linux中的压缩软件介绍
这些是Linux中一些常见的压缩软件工具,您可以根据需要选择合适的工具来压缩和解压缩文件。每种工具都有其特定的特点和压缩性能,因此根据具体情况选择合适的工具是重要的。
4 0
|
3天前
|
存储 缓存 Ubuntu
Linux:软件包管理器 - yum
Linux:软件包管理器 - yum
18 2
|
26天前
|
监控 Linux
linux监控指定进程
请注意,以上步骤提供了一种基本的方式来监控指定进程。根据你的需求,你可以选择使用不同的工具和参数来获取更详细的进程信息。
17 0
|
26天前
|
监控 Linux 网络安全
linux中启动rpc.rstat监控
请注意,rpc.rstatd服务通常用于收集远程系统的性能统计信息,例如CPU利用率、内存使用等。在使用rpc.rstatd服务之前,你应该确保了解其功能、用法和安全性,并根据需要进行适当的配置和调整。
15 0