Zabbix服务搭建使用
官方网站:http://www.zabbix.com/
1.Zabbix服务安装部署及监控配置
官方网站:http://www.zabbix.com/
The Enterprise-class Monitoring Solution for Everyone
企业级监控解决方案
zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。
2.Zabbix 主要特点
安装与配置简单,学习成本低 支持多语言(包括中文) 免费开源 自动发现服务器与网络设备分布式监视以及 WEB 集中管理功能 可以无 agent 监视 用户安全认证和柔软的授权方式 通过 WEB 界面设置或查看监视结果 email 等通知功能
3.Zabbix主要功能
监控CPU负载、内存使用、磁盘使用、网络状态、端口监视、日志监视、插件开发自定义
4.Zabbix运行机制
Zabbix Server 和 Zabbix agent
Zabbix Server 可以通过 SNMP,Zabbix agent,Ping,端口监视等方法提供对远程服务器/网络状态的 监视,数据收集功能,可以在运行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OX X,Windows 多 平台。
Zabbix Agent 安装在需要被监控的目标服务器上,主要完成对硬件信息与操作系统有关的内存,CPU 等信息收集。
Zabbix Server 可以单独监视远程服务器的服务状态,同时也可以与 Zabbix Agent 结合。可以轮询 Zabbix Agent 主动接收监视数据(trapping 传递 方式),同时还可以被动接收 Zabbix Agent 发送的数据。
5.Zabbix运行过程图
我们需要先构建 LNMP 的环境,因为 Zabbix 通过 PHP 页面展示
6.创建导入Zabbix数据库
[root@ZhouShuai ~]# mysql -uroot -p123456
mysql>
mysql> create database zabbix;
Query OK, 1 row affected (0.00 sec)
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
[root@ZhouShuai ~]# ll、
-rw-r--r-- 1 root root 17130788 Jul 1 16:22 zabbix-3.4.3.tar.gz
[root@xuegod63 ~]# tar xvf zabbix-3.4.3.tar.gz -C /usr/local/src/
[root@xuegod63 ~]# cd /usr/local/src/zabbix-3.4.3/
[root@ZhouShuai zabbix-3.4.3]# ls database/
ibm_db2 Makefile.am Makefile.in mysql oracle postgresql sqlite3
[root@ZhouShuai zabbix-3.4.3]#
#导入数据库,注意顺序,否则会报错
[root@ZhouShuai zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
[root@ZhouShuai zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
[root@ZhouShuai zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
[root@ZhouShuai zabbix-3.4.3]#
#如果在做分布式的环境中,Proxy 服务器只需要一个数据库 schema,代理者 agent 不需要数据库!Server 必须 三个数据库同时拥有
7.编译安装 Zabbix
[root@ZhouShuai zabbix-3.4.3]# groupadd zabbix
[root@ZhouShuai zabbix-3.4.3]# useradd -s /sbin/nologin -g zabbix zabbix
[root@ZhouShuai zabbix-3.4.3]# yum install -y net-snmp-devel
[root@ZhouShuai zabbix-3.4.3]# yum install libevent libevent-devel -y
[root@ZhouShuai zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/var/lib/mysql/bin/mysql_config --with-net-snmp --with-libcurl
[root@ZhouShuai zabbix-3.4.3]# echo $?
0
参数说明
--prefix= #指定路径
--enable-server #Server 支持
--enable-agent #支持 Zabbix 客户端
--with-mysql #指定 MySql 库可以选择自定路径 mysql_config,mysql_config 是命令,用于编译 mysql 客户端程序
--with-net-snmp #支持 snmp 协议,需要安装 net-snmp-devel 包
--with-libcurl #支持 CURL 功能,libcurl 主要功能就是用不同的协议连接不同的服务器
--libcurl #当前支持的协议有 http,https,ftp,gopher,telent,dict,file,和 ldap 协议
其他参数:
--enable-proxy #指的是支持 zabbix 代理服务器,zabbix proxy
是一个监控代理服务器,它收集到监控数据,选存放在缓冲区,
保存的时间可以通过配置文件设定,然后再传送的 zabbix server。
监控代理服务需要一个独立的数据库。
用 zabbix proxy 的好处:进程监控,当监控的位置通信不便时,
当通讯上千台设备的时候,使用 zabbix_proxy 可以简化维护分布式监控,
降低 zabbix server 的负载。
8.按上面的提示,没有 make 步骤,直接 make install
[root@ZhouShuai zabbix-3.4.3]# make install
9.配置 Zabbix Server
[root@ZhouShuai zabbix-3.4.3]# vim /usr/local/zabbix/etc/zabbix_server.conf
85 DBHost=localhost #默认注释掉了,直接取消注释即可
95 DBName=zabbix #数据库用户,我们授权的用户也是zabbix
111 DBUser=zabbix #默认是 root,我们授权的用户是 zabbix
119 DBPassword=zabbix #密码我们授权的也是 zabbix
10.监控 Zabbix Server 本身
监控本身,意思是本身作为服务器之外,自己也做自己的客户端,也要使用agentd这个代理者 配置文件中,有 agentd 和 agent 两个配置文件,前者是守护进程,后者依赖 xinetd
[root@ZhouShuai zabbix-3.4.3]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
93 Server=127.0.0.1 #默认监控服务器自己,这三行不用改
134 ServerActive=127.0.0.1
145 Hostname=Zabbix server
改:280 # UnsafeUserParameters=0
为:280 UnsafeUserParameters=1 #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
其中 Server 和 ServerActive 都指定 zabbixserver 的 IP 地址,不同的是,前者是被动后者是主动。
也就是说前者允许 127.0.0.1 这个 IP 来我这取数据。
而 ServerActive 的 127.0.0.1 的意思是客户端主动提交数据给他
11.启动服务
如果 zabbix 用户不存在, 将以 root 运行,新建之后,如果 zabbix 存在,那么直接可以用 zabbix 运行
[root@ZhouShuai zabbix-3.4.3]# /usr/local/zabbix/sbin/zabbix_server
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
[root@ZhouShuai zabbix-3.4.3]# vim /etc/ld.so.conf
1 include ld.so.conf.d/*.conf
2 /usr/local/lib64
3 /usr/local/lib
4 /usr/lib
5 /usr/lib64
6 /var/lib/mysql/lib/
[root@ZhouShuai zabbix-3.4.3]# ldconfig
[root@ZhouShuai zabbix-3.4.3]# echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local
[root@ZhouShuai zabbix-3.4.3]# /usr/local/zabbix/sbin/zabbix_server
[root@ZhouShuai zabbix-3.4.3]# netstat -antup | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 12477/zabbix_server
[root@ZhouShuai zabbix-3.4.3]#
12.或者通过启动脚本启动 zabbix
Zabbix默认有部分启动脚本,如果你自己也可以通过脚本的方式来实现,可以使用他的模板来实现 脚本在源码目录的 misc/init.d/下面(使用 fedora 下面的 core 即可,也可以使用 fedroa core5 的脚本均可)
[root@ZhouShuai zabbix-3.4.3]# cd /usr/local/src/zabbix-3.4.3/misc/init.d/
[root@ZhouShuai init.d]# ls fedora/core/
zabbix_agentd zabbix_server
[root@ZhouShuai init.d]# cp fedora/core/* /etc/rc.d/init.d/
[root@ZhouShuai init.d]# vim /etc/init.d/zabbix_server
改:22 BASEDIR=/usr/local
为:22 BASEDIR=/usr/local/zabbix
[root@ZhouShuai init.d]# vim /etc/init.d/zabbix_agentd
改:22 BASEDIR=/usr/local
为:22 BASEDIR=/usr/local/zabbix
[root@ZhouShuai init.d]# cd
[root@ZhouShuai ~]# /etc/init.d/zabbix_agentd start
Reloading systemd: [ OK ]
Starting zabbix_agentd (via systemctl): [ OK ]
[root@ZhouShuai ~]# chkconfig zabbix_server on
[root@ZhouShuai ~]# chkconfig zabbix_agentd on
[root@ZhouShuai ~]#
13.编辑 php 页面控制文件及安装Zabbix
[root@ZhouShuai ~]# cd /var/www
[root@ZhouShuai www]# mkdir zabbix
[root@ZhouShuai www]# ll
drwxr-xr-x 10 root root 290 Jun 26 19:08 ThinkPHP
drwxr-xr-x 2 root root 6 Jul 1 17:01 zabbix
[root@ZhouShuai www]# cp -r /usr/local/src/zabbix-3.4.3/frontends/php/* /var/www/zabbix/
[root@ZhouShuai www]# cd zabbix/
[root@ZhouShuai zabbix]# ll
[root@ZhouShuai ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name zabbix.zhou.com;
location / {
root /var/www/zabbix;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /var/www/zabbix;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/zabbix$fastcgi_script_name;
include fastcgi_params;
}
location = /50x.html {
root html;
}
#location ~ /\.ht {
# deny all;
#}
}
重启nginx服务和php-fpm服务
[root@ZhouShuai ~]# /usr/local/nginx/sbin/nginx -s reload
[root@ZhouShuai ~]# /etc/init.d/zabbix_server restart
[root@ZhouShuai ~]#/etc/init.d/php-fpm restart
14.安装 Zabbix-Web
编辑 php.ini 文件,修改环境
[root@ZhouShuai ~]# vim /usr/local/php/php.ini
改:max_execution_time = 30
为:max_execution_time = 300
改:max_input_time = 60
为:max_input_time = 300
改:post_max_size = 8M
为:post_max_size = 16M
改 ;date.timezone =
为:date.timezone = Asia/Shanghai
改:mysqli.default_socket = #指定php连接mysql的sock路径
为:mysqli.default_socket = /var/lib/mysql/mysql.sock
always_populate_raw_post_data = -1 #在文件末尾处添加
[root@ZhouShuai ~]# /etc/init.d/php-fpm restart #重启fpm
刷新页面
PHP LDAP 模块安装
[root@ZhouShuai ~]# cd /usr/local/src/php-7.3.6/
[root@ZhouShuai php-7.3.6]# cd ext/ldap/
[root@ZhouShuai ldap]# ls
config.m4 config.w32 CREDITS ldap.c php_ldap.h tests
[root@ZhouShuai ldap]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
[root@ZhouShuai ldap]#
[root@ZhouShuai ldap]# yum install openldap-devel openldap -y
[root@ZhouShuai ldap]# rsync -avz /usr/lib64/libldap* /usr/lib/
sending incremental file list
libldap-2.4.so.2 -> libldap-2.4.so.2.10.7
libldap-2.4.so.2.10.7
libldap.so -> libldap-2.4.so.2.10.7
libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.10.7
libldap_r-2.4.so.2.10.7
libldap_r.so -> libldap_r-2.4.so.2.10.7
sent 320,883 bytes received 66 bytes 641,898.00 bytes/sec
total size is 734,112 speedup is 2.29
[root@ZhouShuai ldap]#
[root@ZhouShuai ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
[root@ZhouShuai ldap]# make && make install
[root@ZhouShuai ldap]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20180731/
ldap.so memcached.so opcache.a opcache.so redis.so swoole.so yaconf.so
[root@ZhouShuai ldap]#
[root@ZhouShuai ldap]# vim /usr/local/php/php.ini
extension=ldap.so
[root@ZhouShuai ldap]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
[root@ZhouShuai ldap]#
登陆 Zabbix 并配置 登陆之后我们修改语言 默认用户名和密码分别为 admin,zabbix
点击右上角用户,然后选择语言
点击配置-主机 启用本主机(默认没有启动,点击后面红色的停用,则启用)
启动Zabbix_Agent
[root@ZhouShuai ~]# /usr/local/zabbix/sbin/zabbix_agentd
再次刷新页面,可以看到,agent状态已经正常
可以看到已经开始出图:
但是发现下面显示有问题:这个是中文字符集的问题,在英文状态下显示是正常的
[root@ZhouShuai fonts]# ll
total 21332
-rw-r--r-- 1 nginx nginx 756072 Jul 1 17:02 DejaVuSans.ttf
-rw-r--r-- 1 root root 21084256 Jul 1 18:40 微软雅黑.ttf
[root@ZhouShuai fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@ZhouShuai fonts]# mv *.ttf DejaVuSans.ttf
[root@ZhouShuai fonts]# ll
-rw-r--r-- 1 root root 21084256 Jul 1 18:40 DejaVuSans.ttf
-rw-r--r-- 1 nginx nginx 756072 Jul 1 17:02 DejaVuSans.ttf.bak
[root@ZhouShuai fonts]#