目录php
监控服务zabbix部署前端
zabbix
是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。mysql
zabbix
由2部分构成,zabbix server
与可选组件zabbix agent
。c++
zabbix server
能够经过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它能够运行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。web
zabbix agent
须要安装在被监视的目标服务器上,它主要完成对硬件信息或与操做系统有关的内存,CPU等信息的收集。sql
zabbix server
能够单独监视远程服务器的服务状态;同时也能够与zabbix agent配合,能够轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),能够与SNMP软件(例如:net-snmp)等配合使用。数据库
zabbix的主要特色:apache
Zabbix主要功能:vim
zabbix配置文件有三种:浏览器
服务器端配置文件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 | 设置客户端日志文件存放路径 |
环境说明:
环境 | IP | 要安装的应用 |
---|---|---|
服务器 | 192.168.112.166 | lamp架构 zabbix server zabbix agent |
客户端 | 192.168.112.167 | zabbix agent |
由于zabbix是用php语言开发的,因此必须先部署lamp架构,使其可以支持运行php网页
//安装依赖包 [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
[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的软链接库文件的配置
//修改/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
恢复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
//在客户端安装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 :::*
1.将界面改为中文界面,进入后点击右上角admin,进入后language选择chinese
2.添加主机
3.成功添加主机,此时添加的主机尚未模板须要添加模板进去
4.往添加的主机中增长模板
5.模板更新成功
6.点击右上角编辑仪表盘,编辑界面
7.此时新添加的主机绿色的ZBX已经亮起来了,说明服务端已经开始监控
8.查看内存的使用状况,但会发现中文有乱码状况,下面给出解决方案
问题缘由: 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.刷新页面就能看到效果