杂乱、简约,仅用作自我提醒
====================================================================================
官网:
Telegraf: https://docs.influxdata.com/telegraf/v1.13/plugins/plugin-list/
Input支持文档: https://github.com/influxdata/telegraf/tree/master/plugins/inputs/tomcat
Gork支持文档:https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns
https://www.cnblogs.com/stozen/p/5638369.html
influxdb: https://docs.influxdata.com/influxdb/v1.0
中文文档:https://jasper-zhang1.gitbooks.io/influxdb/content/
https://www.jianshu.com/p/a3a2f8f5dd65(influxdb原理)
grafana: http://docs.grafana.org/
Chronograf: https://docs.influxdata.com/chronograf/v1.6/introduction/getting-started/
Influxdb 与es的比较:http://www.mamicode.com/info-detail-1877283.html
Kapacitor: https://segmentfault.com/a/1190000007513519(定制化的alert模板)
Tickscript :https://blog.csdn.net/terminatorsong/article/details/87257038(tickScript简介)
https://docs.influxdata.com/kapacitor/v1.5/tick/syntax/(官方文档)
https://www.w3cschool.cn/doc_influxdata/influxdata-kapacitor-v1-2-tick-expr-index.html?lang=en(w3cschool)
AlertRule: https://docs.influxdata.com/chronograf/v1.7/guides/create-alert-rules/(面板介绍)
=============================各个软件安装版本(版本很重要)==================================
Influxdb: wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.1.x86_64.rpm
Telegraf: wget https://dl.influxdata.com/telegraf/releases/telegraf-1.8.3-1.x86_64.rpm
Grafana: wget https://dl.grafana.com/oss/release/grafana-6.0.2-1.x86_64.rpm
Chronograf: wget https://dl.influxdata.com/chronograf/releases/chronograf-1.6.1.x86_64.rpm
Kapacitor: wget https://dl.influxdata.com/kapacitor/releases/kapacitor-1.2.0.x86_64.rpm
安装 yum localinstall xxxx.rpm
配置文件去 /etc/xxx/*.config||*.ini找
默认运行日志去/var/log/*.log
===========================================================================================
Centos6 与centos7服务管理差别
1.service命令
service命令其实是去/etc/init.d目录下,去执行相关程序
# service命令启动redis脚本
service redis start
# 直接启动redis脚本
/etc/init.d/redis start
# 开机自启动
update-rc.d redis defaults
2.systemctl命令
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
systemd对应的进程管理命令是systemctl
systemctl命令兼容了service
即systemctl也会去/etc/init.d目录下,查看,执行相关程序
systemctl start redis
systemctl stop redis
# 开机自启动
systemctl enable redis
=========================================================================================
目前删除文件 先去whereis 服务(whereis用于查询某个文件的位置。它是通过查询数据库来查找的); 然后rm –rf 安装路径(bin lib etc )
再去找安装包 rpm -qa | grep -i mysql 删除安装包 rpm -ev mysql-community-server-8.0.11-1.el7.x86_64 强删 rpm -ev mysql-community-common-8.0.11-1.el7.x86_64 –nodeps
也可以 find / -name profile 建议别去这样做 如果各服务之间有些关联服务,删除某些文件,会导致报错(通过遍历整个硬盘来查找文件,速度慢,且消耗硬盘资源,但是查找很彻底)
检测端口号 netstat -lntp | grep 6379
===========================================================================================
目前问题:邮件报警 hengtiansoft邮件服务器ssl拦截 、tomcat[input]capriobo.com拦截
influxdb的数据时间戳存入时只能存UTC时间(自定义插入可以在时间戳上加8小时,查询时可以指定时区,在grafana以及chronograf中已经为你转化成了东八区时间)。
Telegraf中logparser.gork的pattern注意要可以解析file中的log文件,否则表象为无法在influxdb中建立对应的表(自定义)
Telegraf插件解析文件写入influxdb中文乱码(原因是源文件就要utf8,gbk解析会乱码)
在172.17.128.18中自建文件夹/var/log/mylog/*.log 可以解析
172.16.129.16的/home/……/wedata.log 无法解析 而自建的/var/log/mylog/*.log可以解析 (文件夹目录权限影响 rwx 可以 rw- 不可以,无操作权限)
如果是spring cloud的服务群 分环境(dev、qa、uat、prod)的日志,如何很好的标识,服务可以根据influxdb中的日志measument的path来区分,环境(host)?
Tomcat8 修改 tomcat-users.xml注意4个角色不要去改 与WEBINF里的页面对应
同时webapps\manager\META-INF\context.xml中的配置 注释掉<value />
curl --header "Authorization":"Basic dG9tY2F0OnRvbWNhdA==" -v http://localhost:8080/manager/status/all
Nginx 需要在配置文件中添加
location /nginx-status {
allow 127.0.0.1;
deny all;
stub_status on; //统计功能模块
access_log off;
}
进入 sbin目录下 重启 ./nginx -s reload 可能会报错
nginx: [emerg] unknown directive "stub_status" in /usr/local/nginx/conf/nginx.conf:92
=====================================需要进一步了解的几个issure================================
- telegraf对redis一些指标监控的方式 (是否为命令方式监控)
源码中一下片段:
func (r *RedisClient) Info() *redis.StringCmd {
return r.client.Info("ALL")
}
是直接调用 redis的info命令来返回一些监控信息
- 日志grok解析msg是否全面
目前写的的grok表达式无法解析全面
- Kapacitor的rule定制最大灵活度
Kapacitor是一款时序数据分析、处理的软件。可以周期性将InfluxDB中的数据汇总、处理后再输出到InfluxDB当中,或者告警(支持Email、HTTP、TCP、 HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack等多种方式)
查看task 以及recording
kapacitor list tasks kapacitor list recordings
ID Type Status Executing Databases and Retention Policies
chronograf-v1-6f5f7b2d-d7a5-4125-a793-e95c31bc2cfc stream enabled true ["telegraf"."autogen"]
可以用可视化 工具 chronograf 手动建 也可以 自己写 .tick模板
具体可以搜索“Kapacitor之TICK脚本,监控输出”
先创建 模板(tickScript)再根据模板参数 写一个json文件 将参数上传到模板中 生成对应的任务
参考网址:https://www.itdaan.com/blog/2018/05/09/dc843ce87cf74e74c1aa5ee1a05b7ebe.html
疑问:tickScript的报警中 有表达式 对 字符类型数据处理吗 比如 模糊以及全匹配 ?
四、Grafana图表定制 是否可以一图兼容多数据源
可以同个dashboard 兼容多种数据源 不可以一个panel 兼容多个数据源
五、Influxdb存储策略单表定制
查询数据库现有数据保留策略 show retention policies on telegraf
name | duration | shardGroupDuration | replicaN | default |
default | 0 | 168h0m0s | 1 | true |
可以看到telegraf只有一个策略, 个字段的含义如下:
name 名称, 此示例名称为default
duration 持续时间, 0代表无限制
shardGroupDuration shardGroup的存储时间, shardGroup是InfluxDB的一个基本存储结构, 应该大于这个时间的数据在查询效率上应该有所降低.
shard 在 InfluxDB 中是一个比较重要的概念,它和 retention policy 相关联。每一个存储策略下会存在许多 shard,每一个 shard 存储一个指定时间段内的数据,并且不重复,例如 7点-8点 的数据落入 shard0 中,8点-9点的数据则落入 shard1 中。每一个 shard 都对应一个底层的 tsm 存储引擎,有独立的 cache、wal、tsm file。
https://cloud.tencent.com/developer/article/1546922(删除策略相应的变化)
replicaN 全称是REPLICATION, 副本个数
default 是否是默认策略 influxdb默认的策略便是一直保存数据
新建策略
CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
通过上面的语句可以添加策略, 本例在telegraf库添加了一个2小时的策略, 名字叫做2_hours,duration为2小时, 副本为1, 设置为默认策略.
因为名为default的策略不再是默认策略, 因此, 在查询使用default策略的表时要显示的加上策略名"defalut"
select * from "default".cpu limit 2
修改策略使用如下语句修改
ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
删除策略
drop retention POLICY "2_HOURS" ON "telegraf"
注意:当一个表使用的策略不是默认策略时, 在进行操作时一定要显示的指定策略名称, 否则会出现错误.
新建策略并且设置为默认策略的时候 查询数据的时候 会根据新建的策略之后跑进去的为准
之前老数据保留策略的数据会保留,但是不会有新的数据写进去(新的数据写进新的保留策略中)
:注意 新建默认策略大概半小时左右生效,因为influxdb会每半个小时检查一遍数据保留策略(所以不会是严格的2h 【第一次】)
Windows机器上的telegraf监控
https://portal.influxdata.com/downloads/
https://download.csdn.net/download/qiguangwei1985/10477141 (1.6.4版本)
https://github.com/influxdata/telegraf/tree/master/plugins/inputs/win_perf_counters
配置文件修改完成后,我们保存后,在Telegraf的目录栏输入cmd,执行telegraf -config telegraf.conf 就可以运行Telegraf数据收集工具了,我们通过Telegraf配置的数据库中可以查看,我们监控的单独进程的内存信息
(目前windows与linux使用同一张表 数据有写进去 但是在chrongraf中显示不出来)
==========================================================================================
Telegraf中的logparser解析是否只能解析单行日志?(tail)
logstash 可以解析多行日志 例如 匹配到时间开头的字段归于上一行
https://my.oschina.net/xiangtao/blog/1504631
http://blog.chinaunix.net/uid-532511-id-4845841
https://github.com/influxdata/telegraf/blob/release-1.13/plugins/inputs/logparser/README.md
telegraf里面是否可以指定机器名?
修改agent中的hostname 覆盖默认的host
日志格式不统一 ()
可以有多个pattern 但是日志格式最好统一 使用目前 最新的wedata格式 防止出现多path情况
Influxdb 查询 字段中 含有 ‘\’报错 ,无法解析
日志编码 非utf-8
如果机器连不上网 也会导致 hostList中的status 为红色
Chronograf报错 failed to fetch json feed from https://www.influxdata.com/feed/json