htbzwd 发表于 2019-1-28 11:57:58

ELK日志平台

  环境的困境(原因)
  1、开发人员不能登录线上服务器查看相信日志;
  2、各个系统都有日志,日志数据分散难以查找;
  3、日志数据量大,查询速度慢,或者数据不够及时。(状态码 400 的 top10)
  收集->存储->统计->报警、、、
  Elastic Search + Logstash +Kibana = ELK Stack
  1、分布式全文搜索引擎、存储
  2、日志收集(日志收集于某一处)
  3、日志展示
  安装过程:
  一、Elastic Search
  (1)、Import the Elasticsearch PGP Key
  rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  (2)、Installing from the RPM repository
echo "
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md" >>/etc/yum.repos.d/elasticsearch.repo
yum install -y elasticsearch  

  修改配置文件
  创建 数据目录
  mkdir -p /data/es-data
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: Mint
node.name: Mint-node1
path.data: /data/es-data
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200  ES集群
  cluster.name: Mint相同就行,同一个局域网 先会广播
  修改node.name
  cluster.name: Mint
  node.name: Mint-node2
  path.data: /data/es-data
  path.logs: /var/log/elasticsearch
  bootstrap.memory_lock: true
  network.host: 0.0.0.0
  http.port: 9200
  插件
  head    bigdesk   kopf    暂时都不支持es5.4
  #bootstrap.memory_lock: true去掉注释会报错
  解决方式:修改limit 文件 yum 安装的es,默认使用的是普通用户,需要配置limit.conf
vim /etc/security/limits.conf
# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited  修改数据路径的权限
chown -R elasticsearch:elasticsearch /data/es-data
systemctl enable elasticsearch
systemctl start elasticsearch  Installing Logstash
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
cat > /etc/yum.repos.d/logstash.repo["localhost:9200"] }
stdout { codec => rubydebug }
}
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/01-logstach.conf  各种插件
  https://www.elastic.co/guide/en/logstash/current/index.html
  Install Kibana with RPM
  rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  vim /etc/yum.repos.d/kibana.repo
  
name=Kibana repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
   yum install kibana-y
  修改配置文件
  vim /etc/kibana/kibana.yml
  server.port: 5601
  server.host: "0.0.0.0"
  elasticsearch.url: "http://192.168.1.87:9200"
  kibana.index: ".kibana"
  nginxModule ngx_http_log_module http://nginx.org/en/docs/http/ngx_http_log_module.html   
input {
    file {
      path => "/var/log/nginx/access_json.log"
      codec => "json"
    }
}
output {
    stdout {
      codec => "rubydebug"
    }
}  rsyslog 修改系统日志
  修改
vim /etc/rsyslog.conf
*.* @@192.168.1.87:514  nc 192.168.1.87 12345 < /etc/passwd
  echo “Mint” > /dev/tcp/192.168.1.87/12345 也可以给12345 tcp端口发信息    伪设备
  nc 追加文件
  logstash 解耦 当需要单独修改logstash时,收集的日志可以暂存于内存中,不至于需要停止收集日志
  logstash ---------->redis ---------->logstash -------->elasticsearch----------->kibana
  收集                     消息队列                  分析                      存储                           显示
  192.168.1.87       192.168.1.87      192.168.1.88       192.168.1.87                   192.168.1.87
  redis ---->rabbitmq------>kafka   一般redis就可以,不能满足的时候
  解耦部分的配置文件,于明天整理发出来。再加前面的all.conf,共三个conf文件,shipper.conf、indexer.conf

  logstash 写入kibana的时间戳是UTC。
  http://192.168.1.87:5601/status 查看kibana状态
  ab -n10000 -c1 http://192.168.1.87/       -n次数   -c 每次并发
  安全解决方案 :search Guard
  生产如何上线ELK
  1、日志分类
  系统日志    rsyslog    logstash   syslog插件
  访问日志    nginx       logstash   codec json
  错误日志    file         logstash   file + mulitline
  运行日志    file         logstash   json
  设备日志    syslog      logstash    syslog插件
  debug日志file         logstash    json or mulitline
  2、日志标准化
  1.路径固定
  2.格式尽量json
  系统日志开始->错误日志->运行日志->访问日志
  

  欢迎打算使用阿里云服务器的小伙伴,加我私聊!!QQ:3533470970或直接领取阿里云幸运券:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=b6h928qb&utm_source=b6h928qb



页: [1]
查看完整版本: ELK日志平台