您的位置:首页 > 数据库 > SQL

zabbix-agent安装及添加配置nginx,mysql及系统的监控

2018-02-12 17:14 1196 查看
本文接上文 --zabbix3.0版本部署使用http://blog.51cto.com/superleedo/2070775

增加一台新的客户端机器 192.168.1.13

系统版本centos7最小化安装,配置好网络能访问外网,关闭防火墙,配置基础环境及java环境
网络自行配置
关闭防火墙setenforce 0systemctl stop firewalldsystemctl disable firewalldsed -i 's/enforcing/disabled/g' /etc/selinux/config设置yum源yum install wget -ycd /etc/yum.repos.d/wget http://mirrors.aliyun.com/repo/Centos-7.repowget http://mirrors.aliyun.com/repo/epel-7.repoyum -y install epel-releaseyum install net-tools -yyum install tree -yyum install lrzsz -y
yum install vim-enhanced -y
本机的zabbix-agent,nginx,mysql都采用yum方式安装
安装zabbix-agentyum install -y unixODBC
rpm -Uvh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.3-1.el6.x86_64.rpm
修改配置
vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.12
ServerActive=192.168.1.12
Hostname=192.168.1.13
Include=/etc/zabbix/zabbix_agentd.d/

创建目录
cd /var/run/
mkdir zabbix
touch zabbix/zabbix_agentd.pid
chown zabbix.zabbix zabbix/ -R
chmod g+w zabbix/

cd /var/log/
mkdir zabbix
chown zabbix.zabbix zabbix/ -R

启动zabbix-agent
/etc/init.d/zabbix-agent start
用netstat -lnupt 查看 10050是否启动

安装nginx,mariadb
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx
systemctl start nginx

yum install mariadb* -y
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

mysql安装无法启动可能需要清理原有的内容

yum remove mysql* -y
yum remove mariadb* -y
find / -name "mariadb" -exec rm -rf {} \;
rm -f my.cnf.rpmsave
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

systemctl start mariadb

[root@zabbix-agent run]# netstat -lnupt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2284/mysqld
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2340/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      983/sshd
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      2540/zabbix_agentd
tcp6       0      0 :::22                   :::*                    LISTEN      983/sshd
tcp6       0      0 :::10050                :::*                    LISTEN      2540/zabbix_agentd


监控服务端界面接入1.13机器的系统状态监控
添加新主机配置---主机---创建主机---添加

选择添加 OS linux 模板,用来监控1.13机器的系统磁盘内存等



在模板中添加完成后,在主机上也要点击添加,添加后生成的监控图如下


问题解决:监控图的图例显示不正常,汉字注释无法正常显示
从windows下控制面板->字体->选择一种中文字库例如“楷体” 上传到zabbix服务器上



将这个文件拷贝到zabbix服务端的数据目录的fonts目录下[root@slave02 run]# ll /data/web/www.zabbix.com/fonts/
总用量 12252
-rw-r--r-- 1 zabbix zabbix 756072 5月 18 2016 DejaVuSans.ttf
-rw-r--r-- 1 zabbix zabbix 11785184 6月 11 2009 SIMKAI.ttf
接着修改配置文件vim /data/web/www.zabbix.com/include/locales.inc.php
下面两项的DejaVuSans修改为SIMKAI
define('ZBX_GRAPH_FONT_NAME', 'SIMKAI');
define('ZBX_FONT_NAME', 'SIMKAI');

修改完成后,zabbix监控图形中的中文字就不会出现乱码了!


下面添加nginx监控在客户端修改nginx配置vim /etc/nginx/conf.d/default.conf添加stub_status onserver {
listen 80;
server_name localhost;
location / {
stub_status on;
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
然后重启nginxsystemctl restart nginx使用网页浏览 http://192.168.1.13:80/nginx_status,显示如下图则模块已打开

在客户端编写脚本:nginx_status.sh,并将其放至/etc/zabbix/scripts 目录下,并添加执行权限
cd /etc/zabbix/mkdir scriptscd scripts/

vim nginx_status.sh
#!/bin/bash
HOST=192.168.1.13
PORT=80function ping {
/sbin/pidof nginx | wc -l
}
function active {
curl -s "http://$HOST:$PORT/nginx_status" | grep 'Active'| awk '{print $NF}'
}
function reading {
curl -s "http://$HOST:$PORT/nginx_status" | grep 'Reading' |awk '{print $2}'
}
function writing {
curl -s "http://$HOST:$PORT/nginx_status" | grep 'Writing' | awk '{print $4}'
}
function waiting {
curl -s "http://$HOST:$PORT/nginx_status" | grep 'Waiting' | awk '{print $6}'
}
function accepts {
curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $1}'
}
function handled {
curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $2}'
}
function requests {
curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $3}'
}
$1保存问件,添加执行权限chmod 755 nginx_status.sh

然后,将自定义的 UserParameter 加入配置文件,然后重启 zabbix-agentvim /etc/zabbix/zabbix_agentd.conf
UserParameter=nginx.status[*],/etc/zabbix/scripts/nginx_status.sh $1
项目回到服务端,下载Template App Nginx 模板 http://www.ttlsa.com/wp-content/uploads/2015/10/zabbix_monitor_nginx_template_ttlsa_com.zip 解压后将其中的zbx_export_templates文件导入即可


导入后即可使用nginx模板 添加到1.13

图形查看监控状态


添加,mysql监控


添加后的mysql图形监控状态


添加自定义服务监控
Simple checks 简单检查 通常用来检查远程未安装客户端的服务,被监控客户端无需安装 zabbix agent 客户端,zabbixserver 直接使用 simplechecks(简单检查) 来收集数据,用来检测远程服务器某端口是否在监听。

配置----主机----监控项----创建监控项---创建触发器





停止ftp服务后查看监控提示


监控报警有提示,自定义监控成功。

mysql监控结合上面已经使用的mysql模板,会生产相应的配置文件userparameter_mysql.conf/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
为数据库的root创建密码
$ mysqladmin -uroot password "zabbix"
进入数据库 mysql -uroot -pzabbix
登录数据库,创建zabbix数据库及用户名和密码
mysql> create database zabbix default charset utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on *.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.03 sec)

mysql> grant all privileges on *.* to zabbix@'%' identified by 'zabbix';
Query OK, 0 rows affected (0.03 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

下面用我们自定义下mysql监控脚本 check_mysql.sh
cd /etc/zabbix/scripts/vim check_mysql.sh 添加下面内容
#!/bin/bash
# 用户名
MYSQL_USER='zabbix'
# 密码
MYSQL_PWD='zabbix'
# 主机地址/IP
MYSQL_HOST='192.168.1.13'
# 端口
MYSQL_PORT='3306'
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
# 参数是否正确
if [ $# -ne "1" ];then
echo "arg error!"
fi
# 获取数据
case $1 in
Uptime)
result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`
echo $result
;;
Com_update)
result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
echo $result
;;
Slow_queries)
result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`
echo $result
;;
Com_select)
result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
echo $result
;;
Com_rollback)
result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
echo $result
;;
Questions)
result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`
echo $result
;;
Com_insert)
result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`
echo $result
;;

*)
echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac

然后给文件加上执行权限chmod 755 check_mysql.sh
下面修改配置userparameter_mysql.confvim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf将配置修改成下面这样,注释掉原有的mysql.status和mysql.ping,添加自己定义的UserParameter值UserParameter=mysql.status[*],/etc/zabbix/scripts/check_mysql.sh $1
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N'
UserParameter=mysql.ping,/usr/bin/netstat -ntpl |grep 3306|grep mysql|wc |awk '{print $1}'
UserParameter=mysql.version,mysql -V

执行 chmod +s /bin/netstat 防止 zabbix-server 远程调用失效
然后重启zabbix客户端/etc/init.d/zabbix-agent stop/etc/init.d/zabbix-agent start
在界面查看自定义的mysql监控项是否生效




显示已启用表示生效可以到图形监控中查看mysql图形显示


下面增加mysqlstatus的新图形





监控状态运行正常

本文先到这里,下文继续深化zabbix报警功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zabbix zabbix-agent nginx