监控服务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. Superset配置mysql数据源

    1.添加mysql数据源 测试连接的时候遇到 No module named 'MySQLdb'" 安装mysqlclient pip install mysqlclient 如果遇到 ER ...

  2. 开发日记:DotNetCore 批处理 发布

    @echo off@title 中医科院 - 发布@echo ******************************************************@echo ========= ...

  3. CentOS7 安装Redis和PHP-redis扩展

    aemonize yes Redis是一个key-value存储系统,属于我们常说的NoSQL.它遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的AP ...

  4. 项目在服务器部署后打开出现Invalid Host header

    一.问题描述在服务器部署启动了项目,页面显示Invalid Host header. 二.问题分析新版的webpack-dev-server出于安全考虑,默认检查hostname,如果hostname ...

  5. (CSDN 迁移) JAVA循环删除List的某个元素

    若列表中只可能存在一个则可以用简单的循环删除,不多说. 若列表中可能存在多个,尤其是可能有多个连续的需要删除,用简单循环有可能发生异常. 需要使用迭代器(Iterator),两种具体实现: 逻辑上是一 ...

  6. python中判断对象类型的函数——isinstance

    isinstance是Python中的一个内建函数.是用来判断一个对象的变量类型. isinstance(object, class-or-type-or-tuple) 如果参数object是clas ...

  7. perl oneline

    可参考博客:http://blog.csdn.net/carzyer/article/details/5117429 Perl常用命令行参数概览 -e 指定字符串以作为脚本(多个字符串迭加)执行 -M ...

  8. UML交互图

    UML 交互图主要包括对象和消息两类元素,创建交互图的过程实际上就是向对象分配任务的过程,是可视化系统的交互行为. UML 交互图包括两种:序列图和协作图. 序列图:显示对象之间的关系,强调对象之间消 ...

  9. GoLang的概述

    GoLang的概述 1.什么是程序 完成某个功能的指令的集合 2.Go语言的诞生小故事 2.1. 开发团队-三个大牛 2.2.Google创造Golang的原因 2.3.Golang 的发展历程 20 ...

  10. SpringBootSecurity学习(07)网页版登录整合JDBC

    数据库中定义用户 前面我们定义用户是在配置文件和代码中定义死的默认用户,一般在开发中是不会这样做的,我们的用户都是来自我们的用户表,存储在数据库中.操作数据库的技术有很多,spring securit ...