公司服务器裸奔时间过长,有一次突然不能访问了,也不知道隔了多上时间才被发现,近段时间腾出点时间,对服务器监控方面的知识进行了一下了解,今天就破天荒的整理一下笔记,总结一下,便于以后查阅资料。
zabbix,查来查去,看到这个的呼声挺高,研究了一下,整起来。本人不大喜欢使用install直接安装,原因是好多默认的东东不知道捣鼓到哪里去了,安装过程网络问题也是让人头疼,今天照旧,下载最新源码,编译,安装。
zabbix挺有意思,5版本以上已经弄了好多模板,直接上来就能用,有点爽歪歪的感觉。
1、下载源码,参考安装教程
下载地址:https://www.zabbix.com/download_sources
安装教程:https://www.zabbix.com/documentation/current/manual/installation/install
apt源的问题,建议自行修改,由于使用华为云服务器,各种安装可能存在问题
更新apt源,这里用的源为阿里云的公共源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
追加如下信息
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
2、server安装配置
一路make一路坑,这边简单说一下,本人基于已安装了nginx、mysql的环境进行讲解,make之前需要提前将依赖进行安装,如下
sudo apt-get install php-json
sudo apt-get install php-curl
sudo apt-get install php7.2-mysql
sudo apt-get install php7.2-cgi
sudo apt-get install php7.2-bcmath
sudo apt-get install php7.2-mbstring
sudo apt-get install php7.2-gd
sudo apt-get install php7.2-ldap
解压缩、创建用户、授权等文档已描述的很详细,这边就不做过多解释,server服务器安装这些就可以了
./configure --enable-server --enable-proxy --enable-webservice --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
初始化数据库,本人没找到怎么批量初始化,直接到源码中找到对应的mysql中需要初始化的sql,进行手动导入
source /schema.sql
source /data.sql
source /images.sql
source /double.sql
配置服务器安装完毕后的文件,本人的文件存在于一些目录文件,这个主要配置之前在mysql进行创建的用户
vim /usr/local/etc/zabbix_server.conf
以上步骤如果顺利,恭喜你,进入下一个阶段,这个阶段需要启动server服务,启动命令如下
/usr/local/sbin/zabbix_server
建议大家启动时,多看一下日志文件,以便查询问题
tail -f -n 200 /tmp/zabbix_server.log
安装的时候应该有个汉化的操作,汉化问题:https://www.zabbix.com/documentation/5.0/manual/appendix/install/locales
Installing locales To list all installed languages, run:
locale -a
If some languages that are needed are not listed, open the /etc/locale.gen file and uncomment the required locales. Since Zabbix uses UTF-8 encoding, you need to select locales with UTF-8 charset.Now, run:
locale-gen
3、web-ui安装配置
cp -r /mnt/sdc/zabbix-5.4.7/ui/ /var/www/
cd /var/www
cp -r ui/* zabbix/
vim /user/local/nginx/conf/nginx.conf
追加代码
include http.zabbix.aijiuku.com.conf
vim /user/local/nginx/conf/http.zabbix.xxx.com.conf
追加代码
server {
listen 80;
server_name zabbix.xxx.com;
root /var/www/zabbix/;
access_log /var/log/nginx/zabbix_access.log;
error_log /var/log/nginx/zabbix_error.log;
index index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_buffer_size 128k;
fastcgi_buffers 64 256k;
fastcgi_param SCRIPT_FILENAME /var/www/zabbix$fastcgi_script_name;
include fastcgi_params;
}
}
vim /etc/nginx/nginx.conf
# 修改nginx的user为有访问/var/www/权限的用户
# 比如: root
启动Nginx和php
nginx -s reload
/etc/init.d/php7.2-fpm start
通过教程介绍,访问自己的IP进行页面的配置,这个就有点小问题了,500错误,一般是php环境问题,链接数据库的问题,需要手动修改配置文件,注释掉9000的监听,改为sock方式,操作如下
vim /etc/php/7.2/fpm/pool.d/www.conf
listen = /run/php/php7.2-fpm.sock
; listen = 127.0.0.1:9000
终于见到WEB页面了,爽歪歪的同时,刚走两步,又JB出问题了,各种检测不能通过,这时需要进行PHP配置上的全局修改
vim /etc/php/7.2/fpm/php.ini
max_input_time = 300
post_max_size = 16M
反正就是基于提示进行各个配置的修改如8m-》16M等这些配置,照着人家说的修改,没有安装的服务,自行安装。捣鼓完毕这个,再次重新起航
4、监控zabbix_agent2安装配置
安装这个监控可是各种坑啊,go环境就是一个大坑,捣鼓半天没搞定,各种make报错
安装依赖包:
apt-get -y install libpcre3 libpcre3-dev gcc make
编译参数
./configure --prefix=/usr/local --enable-agent2
编译安装
make && make install
这一步就开始报错了,各种git下载的东东会出现中断现象,timeout等,还有go环境的问题,先解决go环境的问题
下载地址:https://dl.google.com/go/go1.17.2.linux-amd64.tar.gz
go环境安装:
tar xf go1.17.3.linux-amd64.tar.gz -C /usr/local
sudo ln -s /usr/local/go/bin/* /usr/bin/
vim /etc/profile
#set go environment
export GOPROXY=https://goproxy.io
export GOROOT=/usr/local/go/
export GOPATH=/gopath
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOROOT/bin
export GO111MODULE=on
source /etc/profile
注意这一句非常有必要:export GOPROXY=https://goproxy.io,如果环境没有配置,你就完蛋了,zabbix_agent2 进行make的时候,各种git资源出现超时,反正就是编译问题。
修改配置
vim /usr/local/etc/zabbix_agent2.conf
server:192.168.0.228
Hostname:Zabbix server
启动
/usr/local/sbin/zabbix_agent2
日志
tail -f -n 200 /tmp/zabbix_agentd2.log
server端进行验证模板参数
zabbix_get -s 192.168.0.51 -p 6379 -k redis.ping
总结性知识点
1、zabbix-server端
配置文件
vim /usr/local/etc/zabbix_server.conf
启动命令
/usr/local/sbin/zabbix_server
日志文件
tail -f -n 200 /tmp/zabbix_server.log
2、zabbix-agent2端
配置文件
vim /usr/local/etc/zabbix_agent2.conf
启动命令
/usr/local/sbin/zabbix_agent2
日志文件
tail -f -n 200 /tmp/zabbix_agent2.log
3、mysq监控 https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent2/README.md?at=refs%2Fheads%2Frelease%2F5.4
# 如果mysql-server为被监控主机,为安全起见,新建local用户就行
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'zbx_monitor!@#123';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
FLUSH PRIVILEGES;
相关宏配置
{$MYSQL.DSN} = tcp://localhost:3306
{$MYSQL.USER} = zbx_monitor
{$MYSQL.PASSWORD} =xxxx
4、服务端进行测试
在server端使用zabbix_get工具查看与agent端连接情况
zabbix_get -s 192.168.0.51 -k system.cpu.num
zabbix_get -s 127.0.0.1 -p 10051 -k mysql.ping['tcp://192.168.0.51:3306,zbx_monitor','xxxx']
1
# 返回1为正常
5、服务自启动
nuhup /usr/etc/sbin/zabbix_agent2