监控服务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. qt model/view/delegate

    Qt Model/View理解(一)---构造model https://blog.csdn.net/weixin_42303052/article/details/89233887 Qt Model ...

  2. Web API之Web Components

    本文参考<你的前端框架要被web组件替代了>. 于2011年面世的Web Components是一套功能组件,让开发者可以使用 HTML.CSS 和 JavaScript 创建可复用的组件 ...

  3. WebDriver常用的api

    WebDriver常用的api 获取window对象 Window window = driver.manage().window(); 1)  窗口最大化 Maximize() 2)  窗口大小 g ...

  4. [Windows] - 在 Windows Server 2019 找不到无线网卡 之解决

    硬件:Intel® Dual Band Wireless-AC 3165系统:Windows Server 2019 问题:新系统安装完成后,无法找到无线网卡 尝试:适用于 Windows Serve ...

  5. 洛谷P2048 [NOI2010]超级钢琴 题解

    2019/11/14 更新日志: 近期发现这篇题解有点烂,更新一下,删繁就简,详细重点.代码多加了注释.就酱紫啦! 正解步骤 我们需要先算美妙度的前缀和,并初始化RMQ. 循环 \(i\) 从 \(1 ...

  6. python使用自带模块httplib进行http请求

    #-*- encoding:utf-8 -*- import httplib, time class httpRequest(): def __init__(self, headers, reques ...

  7. Java字节码扩展

    异常表 代码一: public class Test03 { public void test() { try { InputStream is = new FileInputStream(" ...

  8. 移动端开发之响应式开发和bootstrap基础

    响应式开发 (就是利用媒体查询针对不同宽度的设备进行布局和样式的设置,从而设配不同设备的目的) 响应式布局容器响应式需要一个父级作为布局容器,来配合子级元素来实现变化效果 原理:不同屏幕下,通过媒体查 ...

  9. java转换编码报错java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern

    Exception in thread "main" java.lang.IllegalArgumentException: URLDecoder: Illegal hex cha ...

  10. js的splice和delete

    例如有一个数组是 :var textArr = ['a','b','c','d']; 这时我想删除这个数组中的b元素: 方法一:delete 删除数组 delete textArr[1]  结果为: ...