监控服务zabbix部署

1. zabbix介绍

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix由2部分构成,zabbix server与可选组件zabbix agent

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。

另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。

2. zabbix特点

zabbix的主要特点:

  • 安装与配置简单,学习成本低
  • 支持多语言(包括中文)
  • 免费开源
  • 自动发现服务器与网络设备
  • 分布式监视以及WEB集中管理功能
  • 可以无agent监视
  • 用户安全认证和柔软的授权方式
  • 通过WEB界面设置或查看监视结果
  • email等通知功能

Zabbix主要功能:

  • 系统基础监控

    • 内存
    • cpu
    • 硬盘
  • 网络设备
    • 路由器
    • 防火墙
    • 交换机
  • 硬件监控IPMI
    • 电源
    • CPU温度
    • 硬盘温度
  • 业务监控
    • 进程
    • 端口
    • 日志

3. zabbix配置文件

zabbix配置文件有三种:

  • 服务器端配置文件(/usr/local/etc/zabbix_server.conf)
  • 客户端配置文件(/usr/local/etc/zabbix_agentd.conf)
  • zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)

服务器端配置文件zabbix_server.conf常用配置参数

参数 作用
LogFile 设置服务端日志文件存放路径
ListenIP 设置服务端监听IP
ListenPort 设置服务端监听的端口号
PidFile 设置服务端进程号文件存放路径
DBHost 指定zabbix的数据库服务器IP
DBName 指定zabbix使用的数据库库名
DBUser 指定zabbix数据库登录用户
DBPassword 指定zabbix数据库登录密码
DBPort 指定zabbix数据库端口号
User 设置zabbix以什么用户的身份运行
AlertScriptsPath 设置告警脚本存放路径
ExternalScripts 外部脚本存放路径

客户端配置文件zabbix_agentd.conf常用配置参数

参数 作用
Server 指定zabbix服务器的IP或域名
ServerActive 指定zabbix服务器的IP或域名
Hostname 指定本机的主机名,此项必须与web界面配置项一致
UnsafeUserParameters 是否启用自定义监控项,可选值为{1
UserParameter 指定自定义监控脚本参数
LogFile 设置客户端日志文件存放路径

4. 部署zabbix

环境说明:

环境 IP 要安装的应用
服务器 192.168.112.166 lamp架构
zabbix server
zabbix agent
客户端 192.168.112.167 zabbix agent

因为zabbix是用php语言开发的,所以必须先部署lamp架构,使其能够支持运行php网页

4.1 zabbix服务端安装

//安装依赖包
[root@localhost ~]# yum -y install net-snmp-devel libevent-devel //下载zabbix
[root@localhost ~]# cd /usr/src/
[root@localhost src]# ls
debug kernels zabbix-4.0.3.tar.gz //解压
[root@localhost src]# tar -xf zabbix-4.0.3.tar.gz
[root@localhost src]# ls
debug kernels zabbix-4.0.3 zabbix-4.0.3.tar.gz //创建zabbix用户和组
[root@localhost src]# groupadd -r zabbix
[root@localhost src]# useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@localhost src]# id zabbix
uid=995(zabbix) gid=993(zabbix) 组=993(zabbix) //配置zabbix数据库
[root@localhost src]# mysql -uroot -pcwh123!
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.22 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database zabbix character set utf8 collate utf8_bin; //这里是使zabbix数据库支持中文
Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123!'; //这里是创建zabbix用户并赋予其对zabbix数据库的所有权限
Query OK, 0 rows affected, 2 warnings (0.00 sec) mysql> flush privileges; //刷新权限表
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye //将zabbix解压包中的数据库模板复制到zabbix数据中去
[root@localhost src]# cd /usr/src/zabbix-4.0.3/database/mysql/
[root@localhost mysql]# ls
data.sql images.sql Makefile.am Makefile.in schema.sql
[root@localhost mysql]# mysql -uzabbix -pzabbix123! zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uzabbix -pzabbix123! zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uzabbix -pzabbix123! zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure. //编译安装zabbix
root@localhost mysql]# cd /usr/src/zabbix-4.0.3
[root@localhost zabbix-4.0.3]# ./configure --enable-server \ //开启zabbix监控服务端
> --enable-agent \ //开启zabbix被监控端(客户)
> --with-mysql \ //使用也MySQL数据库
> --with-net-snmp \ //开启支持SNMP协议
> --with-libcurl \
> --with-libxml2
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
.
.
. ***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
//zabbix编译安装直接make install,不需要先make
[root@localhost zabbix-4.0.3]# make install

4.2 zabbix服务端配置

[root@localhost ~]# ls /usr/local/etc/
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d //修改服务端配置文件
//设置数据库信息
[root@localhost ~]# vim /usr/local/etc/zabbix_server.conf
....
DBPassword=zabbix123! //设置zabbix数据库连接密码 //启动zabbix_server和zabbix_agentd
[root@localhost zabbix-4.0.3]# zabbix_server
zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory //此时发现会先报错:无法发现libmysqlclient.so.20的库文件。 //解决方法
[root@localhost zabbix-4.0.3]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
"/usr/local/include/mysql" -> "/usr/local/mysql/include/"
[root@localhost zabbix-4.0.3]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@localhost zabbix-4.0.3]# ldconfig -v
ldconfig: 无法对 /libx32 进行 stat 操作: 没有那个文件或目录
ldconfig: 多次给出路径“/usr/lib”
ldconfig: 多次给出路径“/usr/lib64”
ldconfig: 无法对 /usr/libx32 进行 stat 操作: 没有那个文件或目录
/usr/lib64/mysql:
libmysqlclient.so.18 -> libmysqlclient_r.so
/usr/local/mysql/lib:
libmysqlclient.so.20 -> libmysqlclient.so.20.3.9
/lib:
/lib64:
libevent_pthreads-2.0.so.5 -> libevent_pthreads.so
libevent_openssl-2.0.so.5 -> libevent_openssl.so
libevent_extra-2.0.so.5 -> libevent_extra.so
libnetsnmptrapd.so.31 -> libnetsnmptrapd.so.31.0.2
libevent_core-2.0.so.5 -> libevent_core.so
libnetsnmpmibs.so.31 -> libnetsnmpmibs.so.31.0.2
libnetsnmphelpers.so.31 -> libnetsnmphelpers.so.31.0.2
libmcrypt.so.4 -> libmcrypt.so.4.4.8
.
.
.
/lib/sse2: (hwcap: 0x0000000004000000)
/lib64/sse2: (hwcap: 0x0000000004000000)
/lib64/tls: (hwcap: 0x8000000000000000) //再次启动zabbix服务
[root@localhost zabbix-4.0.3]# zabbix_server
[root@localhost zabbix-4.0.3]# zabbix_agentd
[root@localhost zabbix-4.0.3]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 127.0.0.1:9000 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 80 :::3306 :::*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
//10050和10051已经启动说明zabbix启动成功 //所以在编写lamp安装脚本时记得加入mysql的软连接库文件的配置

4.3 zabbix服务端web界面安装与配置

4.3.1 zabbix web界面安装前配置

//修改/etc/php.ini的配置并重启php-fpm
[root@localhost zabbix-4.0.3]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@localhost zabbix-4.0.3]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-4.0.3]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-4.0.3]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@localhost zabbix-4.0.3]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
//或者进入/etc/php.ini中查找修改这几个数据,如果不修改这款几个数据,网页web端将无法安装 //创建php网页存放目录zabbix
[root@localhost ~]# cd /usr/src/zabbix-4.0.3
[root@localhost zabbix-4.0.3]# ls
aclocal.m4 ChangeLog config.log configure.ac frontends m4 man README
AUTHORS compile config.status COPYING include Makefile misc sass
bin conf config.sub database INSTALL Makefile.am missing src
build config.guess configure depcomp install-sh Makefile.in NEWS upgrades
[root@localhost zabbix-4.0.3]# mkdir /usr/local/apache/htdocs/zabbix
[root@localhost zabbix-4.0.3]# cp -a frontends/php/* /usr/local/apache/htdocs/zabbix/
//frontends目录里存放的是网页前端文件
[root@localhost zabbix-4.0.3]# chown -R apache.apache /usr/local/apache/htdocs //配置apache虚拟主机
[root@localhost zabbix-4.0.3]# vim /etc/httpd24/httpd.conf
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/zabbix"
ServerName zabbix.cwh.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
<Directory "/usr/local/apache/htdocs/zabbix">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost> //设置/usr/local/apache/htdocs/zabbix/conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
[root@localhost zabbix-4.0.3]# ll /usr/local/apache/htdocs/zabbix/conf -d
drwxr-xr-x 2 apache apache 81 12月 20 19:24 /usr/local/apache/htdocs/zabbix/conf
//可以看出这个目录的属主和属组是apache,所以此时zabbix是无法生成配置文件conf的 [root@localhost zabbix-4.0.3]# chmod 777 /usr/local/apache/htdocs/zabbix/conf
[root@localhost zabbix-4.0.3]# ll /usr/local/apache/htdocs/zabbix/conf -d
drwxrwxrwx 2 apache apache 81 12月 20 19:24 /usr/local/apache/htdocs/zabbix/conf //重启apache服务
[root@localhost ~]# /usr/local/apache/bin/apachectl restart
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 127.0.0.1:9000 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 80 :::3306 :::*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::* [root@localhost ~]# ls /usr/local/apache/htdocs/zabbix/conf/
.htaccess maintenance.inc.php zabbix.conf.php.example
//可以看出zabbix.conf已经生成了所以在web页面安装完成后要将权限改回755

4.3.2 安装zabbix web界面

  • 修改/etc/hosts文件,添加域名与IP的映射
  • 在浏览器上访问域名,本文设置的域名为zabbix.cwh.com
  • 恢复zabbix/conf目录的权限为755
  • zabbix默认登录用户名和密码:Admin zabbix

恢复zabbix/conf目录的权限为755:

root@localhost ~]# chmod 755 /usr/local/apache/htdocs/zabbix/conf
[root@localhost ~]# ll -d /usr/local/apache/htdocs/zabbix/conf
drwxr-xr-x 2 apache apache 104 Aug 17 13:05 /usr/local/apache/htdocs/zabbix/conf

4.4 zabbix客户端配置

//在客户端安装zabbix需要的环境
[root@localhost ~]# yum install -y gcc gcc-c++ wget vim //解压和编译安装zabbix的安装包
[root@localhost ~]# cd /usr/src
[root@localhost src]# tar -xf zabbix-4.0.3.tar.gz
[root@localhost src]# cd zabbix-4.0.3
[root@localhost zabbix-4.0.3]#
[root@localhost zabbix-4.0.3]# ./configure --enable-agent
[root@localhost zabbix-4.0.3]# make install //配置agented.conf文件
[root@localhost zabbix-4.0.3]# cd /usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d
[root@localhost etc]# vim zabbix_agentd.conf
Server=192.168.112.166 //将这一条修改为服务端IP
ServerActive=192.168.112.166 //将这一条修改为服务端IP
Hostname=167 //不是真正的hostname,只是一个标识自己是谁的标识符 //创建zabbix用户
[root@localhost etc]# groupadd -r zabbix
[root@localhost etc]# useradd -r -M -s /sbin/nologin -g zabbix zabbix //启动zabbix-agentd服务
[root@localhost etc]# zabbix_agentd
[root@localhost etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*

4.5在web端添加对客户端的监控

1.将界面改成中文界面,进入后点击右上角admin,进入后language选择chinese

2.添加主机

3.成功添加主机,此时添加的主机还没有模板需要添加模板进去

4.往添加的主机中增加模板

5.模板更新成功

6.点击右上角编辑仪表盘,编辑界面

7.此时新添加的主机绿色的ZBX已经亮起来了,说明服务端已经开始监控

8.查看内存的使用情况,但会发现中文有乱码情况,下面给出解决方案

4.6 zabbix一解决web界面中文乱码问题

问题原因: Zabbix 网页目录中缺少字体

1.打开 Windows 的 C:\Windows\Fonts 字体存放目录,选一款你喜欢的字体

2.我选择的是 楷体常规,文件名为 simkai.ttf,把这个文件传到服务器的 Zabbix 网页目录中

//如果你不知道存放字体的目录位置请用find命令查找以fonts结尾的目录
[root@localhost ~]# find / -name fonts
/boot/grub2/fonts
/usr/local/apache/htdocs/zabbix/fonts
/usr/src/zabbix-4.0.3/frontends/php/fonts //将simkai.ttf上传到/usr/local/apache/htdocs/zabbix/fonts下
[root@localhost ~]# cd /usr/local/apache/htdocs/zabbix/fonts/
[root@localhost fonts]# ls
DejaVuSans.ttf
[root@localhost fonts]# ls
DejaVuSans.ttf simkai.ttf

3.编辑/usr/local/apache/htdocs/zabbix/include/defines.inc.php文件,找到 define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); 行,将 DejaVuSans 修改为 simkai 即可。

[root@localhost fonts]# vim /usr/local/apache/htdocs/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name

4.刷新页面就能看到效果

监控服务zabbix部署的更多相关文章

  1. 04.Linux系统-Zabbix监控服务安装部署

    一.环境准备 操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Zabbix 二.操作步骤: Zabbix_Server安装部署 2.0.安装依赖组件 [root@lo ...

  2. kubernetes实战-交付dubbo服务到k8s集群(五)交付dubbo-monitor监控服务到k8s

    首先下载 dubbo-monitor源码包7-200 dubbo-monitor是监控zookeeper状态的一个服务,另外还有dubbo-admin,效果一样,感兴趣的可以自己研究一下. # cd ...

  3. 【zabbix部署】基于linux安装zabbix监控服务和被监控服务

    环境配置 zabbix_server:10.0.0.1 zabbix_agentd:10.0.0.1,10.0.0.2(暂定) 操作系统:centos7.6 安装环境配置 1. LNMP环境 zabb ...

  4. zabbix监控服务部署脚本

    搭建平台脚本: #!/bin/bash #zabbix监控服务部署 #脚本使用前提:yum搭建,nginx-1.12.2源码包,zabbix-3.4.4源码包,要求源码包尽量在单一目录下,最好在默认管 ...

  5. zabbix监控服务部署

    目录 zabbix监控服务部署 1. zabbix介绍 1.1 zabbix的组件 1.2 zabbix的进程 1.3 zabbix常用术语 2. zabbix工作原理 3. zabbix监控架构 4 ...

  6. Zabbix监控和分布式部署实施方案

    最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每 个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到 ...

  7. zabbix分布式监控服务 安装与配置

    zabbix安装与配置   一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...

  8. Zabbix监控平台搭建部署与概述

    zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位 ...

  9. 企业级监控软件zabbix搭建部署之zabbix server的安装

    企业级监控软件zabbix搭建部署之zabbix server的安装 zabbix线上已经应用半年多了,关于zabbix在生产环境中的使用心得,以及一些经验写下来,希望让大家少走弯路,共同学习! 环境 ...

随机推荐

  1. python 根据生日计算年龄 sqlalchemy根据身份证号计算生日 性别

    import datetime '): birth_d = datetime.datetime.strptime(birth_s, "%Y%m%d") today_d = date ...

  2. Windows SVN迁移到Linux 服务器

    一.备份VisualSVN项目 1. 现在要使用Linux作为svn服务器,之前是在windows Server 2008上的,用的是VisualSVN, 如下图所示. 2. 现在svn中有一个项目f ...

  3. iOS史上最简单修改导航栏分隔线颜色方法!!!

    override func viewDidLoad() { super.viewDidLoad() if let imageView = self.findNavLineView(view: navi ...

  4. 写代码如何合理使用和优化我们的机器资源(CPU、内存、网络、磁盘)

    写代码脑子一定要绷紧一根弦,认知到我们所在的机器资源是有限的.机器资源有哪些?CPU.内存.网络.磁盘等,如果不做好保护控制工作,一旦某一资源满负荷,很容易导致出现线上问题. 1 CPU 资源怎么限制 ...

  5. Python Tkinter的学习

    Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macinto ...

  6. SQL Server 参数嗅探问题

    摘要 MSSQL Server参数嗅探既是一个涉及知识面非常广泛,又是一个比较难于解决的课题,即使对于数据库老手也是一个比较头痛的问题.这篇文章从参数嗅探是什么,如何产生,表象是什么,会带来哪些问题, ...

  7. C++实现base64编解码

    Base64是常见的加密算法,代码实现了基于C++的对于base64的编码和解码. 其中注释掉的部分为编码部分,取消注释将解码部分注释掉即可实现编码,反之可以实现解码. #include <st ...

  8. Django框架之第四篇(视图层)--HttpRequest对象、HttpResponse对象、JsonResponse、CBV和FBV、文件上传

    视图层 一.视图函数 一个视图函数,简称视图,是一个简单的python函数,它接收web请求并且会返回web响应.响应可以是一张网页的html,一个重定向,或者是一张图片...任何东西都可以.无论是什 ...

  9. 《学渣Linux笔记》——关于.bashrc与profile(涉及交互式与非交互式、登录与非登录shell)

    <学渣Linux笔记>--关于.bashrc与profile(涉及交互式与非交互式.登录与非登录shell) 1.基本概念(个人理解) 交互式shell:等待用户输入,并执行相应操作的sh ...

  10. 第3课,python使用for循环

    前言: 学习了python的while循环后感觉循环是挺强大的.下面学习一个更智能,更强大的循环-- for循环. 课程内容: 1.由while循环,到for循环,格式和注意项 2.for循环来报数 ...