监控服务zabbix部署

1. zabbix介绍

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

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

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

zabbix server可以通过SNMPzabbix agentping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在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负荷
  • 内存使用
  • 磁盘使用
  • 网络状况
  • 端口监视
  • 日志监视

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 | 0}
UserParameter 指定自定义监控脚本参数
LogFile 设置客户端日志文件存放路径

4. 部署zabbix

环境说明:

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

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

4.1 zabbix服务端安装

复制代码
#  安装依赖包
[root@localhost ~]# yum -y install net-snmp-devel libevent-devel

# 已提前下好zabbix安装包(zabbix.com下载地址),拖进来
[root@localhost ~]# ls
anaconda-ks.cfg   apr-util-1.6.1.tar.gz  php-7.4.29.tar.xz
apr-1.7.0         httpd-2.4.54           zabbix-5.0.25.tar.gz
apr-1.7.0.tar.gz  httpd-2.4.54.tar.gz
apr-util-1.6.1    php-7.4.29
#  解压
[root@localhost ~]# tar xf zabbix-5.0.25.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg   apr-util-1.6.1.tar.gz  php-7.4.29.tar.xz
apr-1.7.0         httpd-2.4.54           zabbix-5.0.25
apr-1.7.0.tar.gz  httpd-2.4.54.tar.gz    zabbix-5.0.25.tar.gz
apr-util-1.6.1    php-7.4.29

#创建用户
[root@localhost ~]# useradd -r -M -s /sbin/nologin zabbix
[root@localhost ~]# id zabbix
uid=989(zabbix) gid=987(zabbix) 组=987(zabbix)
# 创建目录
[root@localhost ~]# mkdir -p /usr/lib/zabbix
# 更改属组属主
[root@localhost ~]# chown -R zabbix.zabbix /usr/lib/zabbix
# 更改权限
[root@localhost ~]# chmod 770 /usr/lib/zabbix/
复制代码

配置zabbix数据库

复制代码
[root@localhost ~]# mysql -uroot -p123456   # 进到数据库
   #创建zabbix数据库修改排序规则
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
    # 创建用户,和密码
mysql> create user 'zabbix'@'localhost' identified by 'zabbix123';
Query OK, 0 rows affected (0.00 sec)
  #  授权
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> show databases;   # 查看
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| zabbix             |
+--------------------+
5 rows in set (0.00 sec)
复制代码
复制代码
[root@localhost ~]# cd zabbix-5.0.25/database/mysql/
[root@localhost mysql]# ls
data.sql    images.sql   Makefile.in
double.sql  Makefile.am  schema.sql
[root@localhost mysql]# mysql -uroot -p123456 zabbix < schema.sql   # 把结构传过去
mysql: [Warning] Using a password on the command line interface can be insecure. 
[root@localhost mysql]# mysql -uroot -p123456 zabbix < images.sql   # 把图像传过去
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uroot -p123456 zabbix < data.sql #把数据传过去
mysql: [Warning] Using a password on the command line interface can be insecure.
复制代码
编译安装zabbix
复制代码
[root@localhost ~]# cd zabbix-5.0.25
[root@localhost zabbix-5.0.25]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
  Enable agent 2:        no

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          no

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************
[root@localhost zabbix-5.0.25]# make install
复制代码

4.2 zabbix服务端配置

复制代码
[root@localhost zabbix-5.0.25]# cd /usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf    zabbix_server.conf
zabbix_agentd.conf.d  zabbix_server.conf.d
[root@localhost etc]# vim zabbix_server.conf

### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=zabbix123    #密码添加进去
复制代码
复制代码
[root@localhost etc]# ss -antl
State  Recv-Q Send-Q  Local Address:Port   Peer Address:Port Process
LISTEN 0      128           0.0.0.0:22          0.0.0.0:*
LISTEN 0      128         127.0.0.1:9000        0.0.0.0:*
LISTEN 0      128                 *:80                *:*
LISTEN 0      128              [::]:22             [::]:*
LISTEN 0      80                  *:3306              *:*

[root@localhost etc]# pkill zabbix  # 杀进程
[root@localhost etc]# zabbix_server  # 启动 有可能有时候会起不来,缺libmysqlclient.so.20 -d这个文件,解决方法ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64
[root@localhost etc]# ss -antl  # 服务端起来了
State  Recv-Q Send-Q Local Address:Port    Peer Address:Port Process
LISTEN 0      128          0.0.0.0:22           0.0.0.0:*
LISTEN 0      128          0.0.0.0:10051        0.0.0.0:*
LISTEN 0      128        127.0.0.1:9000         0.0.0.0:*
LISTEN 0      128                *:80                 *:*
LISTEN 0      128             [::]:22              [::]:*
LISTEN 0      80                 *:3306               *:*

[root@localhost etc]# zabbix_agentd
[root@localhost etc]# ss -antl    #  客户端也起来了
State  Recv-Q Send-Q Local Address:Port    Peer Address:Port Process
LISTEN 0      128          0.0.0.0:22           0.0.0.0:*
LISTEN 0      128          0.0.0.0:10050        0.0.0.0:*
LISTEN 0      128          0.0.0.0:10051        0.0.0.0:*
LISTEN 0      128        127.0.0.1:9000         0.0.0.0:*
LISTEN 0      128                *:80                 *:*
LISTEN 0      128             [::]:22              [::]:*
LISTEN 0      80                 *:3306               *:*
复制代码

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

4.3.1 zabbix web界面安装前配置

复制代码
[root@localhost etc]# cd
[root@localhost ~]# cd zabbix-5.0.25
[root@localhost zabbix-5.0.25]# ls
aclocal.m4  conf           configure.ac  install-sh   misc     ui
AUTHORS     config.guess   COPYING       m4           missing
bin         config.log     database      Makefile     NEWS
build       config.status  depcomp       Makefile.am  README
ChangeLog   config.sub     include       Makefile.in  sass
compile     configure      INSTALL       man          src
[root@localhost zabbix-5.0.25]# cd ui
[root@localhost ui]# ls
actionconf.php               index.php
api_jsonrpc.php              index_sso.php
app                          items.php
applications.php             js
assets                       jsLoader.php
audio                        jsrpc.php
auditacts.php                local
browserwarning.php           locale
chart2.php                   maintenance.php
chart3.php                   map.import.php
chart4.php                   map.php
chart5.php                   modules
chart6.php                   overview.php
chart7.php                   queue.php
chart.php                    report2.php
conf                         report4.php
conf.import.php              robots.txt
correlation.php              screenconf.php
discoveryconf.php            screenedit.php
disc_prototypes.php          screen.import.php
favicon.ico                  screens.php
graphs.php                   services.php
history.php                  setup.php
host_discovery.php           slideconf.php
hostgroups.php               slides.php
hostinventoriesoverview.php  srv_status.php
hostinventories.php          sysmap.php
host_prototypes.php          sysmaps.php
host_screen.php              templates.php
hosts.php                    toptriggers.php
httpconf.php                 tr_events.php
httpdetails.php              trigger_prototypes.php
image.php                    triggers.php
imgstore.php                 vendor
include                      zabbix.php
index_http.php
[root@localhost zabbix-5.0.25]# cp -a ui /usr/local/apache/htdocs/zabbix   # 把ui整个目录复制一个
[root@localhost zabbix-5.0.25]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# ls
index.html  sym  zabbix
[root@localhost htdocs]# chown -R apache.apache zabbix/  #更改属组属主
[root@localhost htdocs]# ll
总用量 8
-rw-r--r--.  1 apache apache   45 6月  12 2007 index.html
drwxr-xr-x   2 apache apache   23 7月   5 20:01 sym
drwxr-xr-x  12 apache apache 4096 6月  27 15:42 zabbix
[root@localhost ~]# vi /usr/local/apache/conf/httpd.conf  #配置apache虚拟主机
#修改如下
</IfModule>
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/zabbix"
    ServerName zabbix.example.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>
[root@localhost ~]# cd /usr/local/apache/htdocs/zabbix #进到这个目录
[root@localhost zabbix]# ll -d conf
drwxr-xr-x 3 apache apache 94 6月  27 15:41 conf
[root@localhost zabbix]# chmod 777 conf   #添加权限777
[root@localhost zabbix]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@localhost zabbix]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@localhost zabbix]# systemctl restart php  #重启3个服务
[root@localhost zabbix]# systemctl restart httpd
[root@localhost zabbix]# systemctl restart mysqld
复制代码

4.4 登录zabbix

zabbix默认登录用户名和密码:

用户名密码
Admin zabbix

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @   孙一鸣  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示